Index: content/test/gpu/gpu_test_config.cc |
=================================================================== |
--- content/test/gpu/gpu_test_config.cc (revision 202179) |
+++ content/test/gpu/gpu_test_config.cc (working copy) |
@@ -1,268 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "content/test/gpu/gpu_test_config.h" |
- |
-#include "base/logging.h" |
-#include "base/sys_info.h" |
-#include "content/test/gpu/gpu_test_expectations_parser.h" |
-#include "gpu/config/gpu_info.h" |
-#include "gpu/config/gpu_info_collector.h" |
- |
-namespace { |
- |
-GPUTestConfig::OS GetCurrentOS() { |
-#if defined(OS_CHROMEOS) |
- return GPUTestConfig::kOsChromeOS; |
-#elif defined(OS_LINUX) || defined(OS_OPENBSD) |
- return GPUTestConfig::kOsLinux; |
-#elif defined(OS_WIN) |
- int32 major_version = 0; |
- int32 minor_version = 0; |
- int32 bugfix_version = 0; |
- base::SysInfo::OperatingSystemVersionNumbers( |
- &major_version, &minor_version, &bugfix_version); |
- if (major_version == 5) |
- return GPUTestConfig::kOsWinXP; |
- if (major_version == 6 && minor_version == 0) |
- return GPUTestConfig::kOsWinVista; |
- if (major_version == 6 && minor_version == 1) |
- return GPUTestConfig::kOsWin7; |
- if (major_version == 6 && minor_version == 2) |
- return GPUTestConfig::kOsWin8; |
-#elif defined(OS_MACOSX) |
- int32 major_version = 0; |
- int32 minor_version = 0; |
- int32 bugfix_version = 0; |
- base::SysInfo::OperatingSystemVersionNumbers( |
- &major_version, &minor_version, &bugfix_version); |
- if (major_version == 10) { |
- switch (minor_version) { |
- case 5: |
- return GPUTestConfig::kOsMacLeopard; |
- case 6: |
- return GPUTestConfig::kOsMacSnowLeopard; |
- case 7: |
- return GPUTestConfig::kOsMacLion; |
- case 8: |
- return GPUTestConfig::kOsMacMountainLion; |
- } |
- } |
-#elif defined(OS_ANDROID) |
- return GPUTestConfig::kOsAndroid; |
-#endif |
- return GPUTestConfig::kOsUnknown; |
-} |
- |
-} // namespace anonymous |
- |
-GPUTestConfig::GPUTestConfig() |
- : validate_gpu_info_(true), |
- os_(kOsUnknown), |
- gpu_device_id_(0), |
- build_type_(kBuildTypeUnknown) { |
-} |
- |
-GPUTestConfig::~GPUTestConfig() { |
-} |
- |
-void GPUTestConfig::set_os(int32 os) { |
- DCHECK_EQ(0, os & ~(kOsAndroid | kOsWin | kOsMac | kOsLinux | kOsChromeOS)); |
- os_ = os; |
-} |
- |
-void GPUTestConfig::AddGPUVendor(uint32 gpu_vendor) { |
- DCHECK_NE(0u, gpu_vendor); |
- for (size_t i = 0; i < gpu_vendor_.size(); ++i) |
- DCHECK_NE(gpu_vendor_[i], gpu_vendor); |
- gpu_vendor_.push_back(gpu_vendor); |
-} |
- |
-void GPUTestConfig::set_gpu_device_id(uint32 id) { |
- gpu_device_id_ = id; |
-} |
- |
-void GPUTestConfig::set_build_type(int32 build_type) { |
- DCHECK_EQ(0, build_type & ~(kBuildTypeRelease | kBuildTypeDebug)); |
- build_type_ = build_type; |
-} |
- |
-bool GPUTestConfig::IsValid() const { |
- if (!validate_gpu_info_) |
- return true; |
- if (gpu_device_id_ != 0 && (gpu_vendor_.size() != 1 || gpu_vendor_[0] == 0)) |
- return false; |
- return true; |
-} |
- |
-bool GPUTestConfig::OverlapsWith(const GPUTestConfig& config) const { |
- DCHECK(IsValid()); |
- DCHECK(config.IsValid()); |
- if (config.os_ != kOsUnknown && os_ != kOsUnknown && |
- (os_ & config.os_) == 0) |
- return false; |
- if (config.gpu_vendor_.size() > 0 && gpu_vendor_.size() > 0) { |
- bool shared = false; |
- for (size_t i = 0; i < config.gpu_vendor_.size() && !shared; ++i) { |
- for (size_t j = 0; j < gpu_vendor_.size(); ++j) { |
- if (config.gpu_vendor_[i] == gpu_vendor_[j]) { |
- shared = true; |
- break; |
- } |
- } |
- } |
- if (!shared) |
- return false; |
- } |
- if (config.gpu_device_id_ != 0 && gpu_device_id_ != 0 && |
- gpu_device_id_ != config.gpu_device_id_) |
- return false; |
- if (config.build_type_ != kBuildTypeUnknown && |
- build_type_ != kBuildTypeUnknown && |
- (build_type_ & config.build_type_) == 0) |
- return false; |
- return true; |
-} |
- |
-void GPUTestConfig::DisableGPUInfoValidation() { |
- validate_gpu_info_ = false; |
-} |
- |
-void GPUTestConfig::ClearGPUVendor() { |
- gpu_vendor_.clear(); |
-} |
- |
-GPUTestBotConfig::~GPUTestBotConfig() { |
-} |
- |
-void GPUTestBotConfig::AddGPUVendor(uint32 gpu_vendor) { |
- DCHECK_EQ(0u, GPUTestConfig::gpu_vendor().size()); |
- GPUTestConfig::AddGPUVendor(gpu_vendor); |
-} |
- |
-bool GPUTestBotConfig::SetGPUInfo(const gpu::GPUInfo& gpu_info) { |
- DCHECK(validate_gpu_info_); |
- if (gpu_info.gpu.device_id == 0 || gpu_info.gpu.vendor_id == 0) |
- return false; |
- ClearGPUVendor(); |
- AddGPUVendor(gpu_info.gpu.vendor_id); |
- set_gpu_device_id(gpu_info.gpu.device_id); |
- return true; |
-} |
- |
-bool GPUTestBotConfig::IsValid() const { |
- switch (os()) { |
- case kOsWinXP: |
- case kOsWinVista: |
- case kOsWin7: |
- case kOsWin8: |
- case kOsMacLeopard: |
- case kOsMacSnowLeopard: |
- case kOsMacLion: |
- case kOsMacMountainLion: |
- case kOsLinux: |
- case kOsChromeOS: |
- case kOsAndroid: |
- break; |
- default: |
- return false; |
- } |
- if (validate_gpu_info_) { |
- if (gpu_vendor().size() != 1 || gpu_vendor()[0] == 0) |
- return false; |
- if (gpu_device_id() == 0) |
- return false; |
- } |
- switch (build_type()) { |
- case kBuildTypeRelease: |
- case kBuildTypeDebug: |
- break; |
- default: |
- return false; |
- } |
- return true; |
-} |
- |
-bool GPUTestBotConfig::Matches(const GPUTestConfig& config) const { |
- DCHECK(IsValid()); |
- DCHECK(config.IsValid()); |
- if (config.os() != kOsUnknown && (os() & config.os()) == 0) |
- return false; |
- if (config.gpu_vendor().size() > 0) { |
- bool contained = false; |
- for (size_t i = 0; i < config.gpu_vendor().size(); ++i) { |
- if (config.gpu_vendor()[i] == gpu_vendor()[0]) { |
- contained = true; |
- break; |
- } |
- } |
- if (!contained) |
- return false; |
- } |
- if (config.gpu_device_id() != 0 && |
- gpu_device_id() != config.gpu_device_id()) |
- return false; |
- if (config.build_type() != kBuildTypeUnknown && |
- (build_type() & config.build_type()) == 0) |
- return false; |
- return true; |
-} |
- |
-bool GPUTestBotConfig::Matches(const std::string& config_data) const { |
- GPUTestExpectationsParser parser; |
- GPUTestConfig config; |
- |
- if (!parser.ParseConfig(config_data, &config)) |
- return false; |
- return Matches(config); |
-} |
- |
-bool GPUTestBotConfig::LoadCurrentConfig(const gpu::GPUInfo* gpu_info) { |
- bool rt; |
- if (gpu_info == NULL) { |
- gpu::GPUInfo my_gpu_info; |
- gpu::GpuIDResult result; |
- result = gpu::CollectGpuID(&my_gpu_info.gpu.vendor_id, |
- &my_gpu_info.gpu.device_id); |
- if (result == gpu::kGpuIDNotSupported) { |
- DisableGPUInfoValidation(); |
- rt = true; |
- } else { |
- rt = SetGPUInfo(my_gpu_info); |
- } |
- } else { |
- rt = SetGPUInfo(*gpu_info); |
- } |
- set_os(GetCurrentOS()); |
- if (os() == kOsUnknown) |
- rt = false; |
-#if defined(NDEBUG) |
- set_build_type(kBuildTypeRelease); |
-#else |
- set_build_type(kBuildTypeDebug); |
-#endif |
- return rt; |
-} |
- |
-// static |
-bool GPUTestBotConfig::CurrentConfigMatches(const std::string& config_data) { |
- GPUTestBotConfig my_config; |
- if (!my_config.LoadCurrentConfig(NULL)) |
- return false; |
- return my_config.Matches(config_data); |
-} |
- |
-// static |
-bool GPUTestBotConfig::CurrentConfigMatches( |
- const std::vector<std::string>& configs) { |
- GPUTestBotConfig my_config; |
- if (!my_config.LoadCurrentConfig(NULL)) |
- return false; |
- for (size_t i = 0 ; i < configs.size(); ++i) { |
- if (my_config.Matches(configs[i])) |
- return true; |
- } |
- return false; |
-} |
- |