Index: chrome/browser/gpu_blacklist_unittest.cc |
=================================================================== |
--- chrome/browser/gpu_blacklist_unittest.cc (revision 75653) |
+++ chrome/browser/gpu_blacklist_unittest.cc (working copy) |
@@ -1,176 +0,0 @@ |
-// Copyright (c) 2010 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 <vector> |
- |
-#include "base/version.h" |
-#include "chrome/browser/gpu_blacklist.h" |
-#include "chrome/common/gpu_info.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-TEST(GpuBlacklistTest, BlacklistLogic) { |
- GPUInfo gpu_info; |
- gpu_info.SetVideoCardInfo(0x10de, // Vendor ID |
- 0x0640); // Device ID |
- gpu_info.SetDriverInfo("NVIDIA", // Driver vendor |
- "1.6.18"); // Driver Version |
- gpu_info.SetLevel(GPUInfo::kComplete); |
- scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
- |
- GpuBlacklist blacklist; |
- |
- // Default blacklist settings: all feature are allowed. |
- GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), 0u); |
- |
- // Empty list: all features are allowed. |
- const std::string empty_list_json = |
- "{\n" |
- " \"name\": \"gpu blacklist\",\n" |
- " \"version\": \"2.5\",\n" |
- " \"entries\": [\n" |
- " ]\n" |
- "}"; |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json, false)); |
- uint16 major, minor; |
- EXPECT_TRUE(blacklist.GetVersion(&major, &minor)); |
- EXPECT_EQ(major, 2u); |
- EXPECT_EQ(minor, 5u); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), 0u); |
- |
- // Blacklist accelerated_compositing with exact setting. |
- const std::string exact_list_json = |
- "{\n" |
- " \"name\": \"gpu blacklist\",\n" |
- " \"version\": \"0.1\",\n" |
- " \"entries\": [\n" |
- " {\n" |
- " \"id\": \"5\",\n" |
- " \"os\": {\n" |
- " \"type\": \"macosx\",\n" |
- " \"version\": {\n" |
- " \"op\": \"=\",\n" |
- " \"number\": \"10.6.4\"\n" |
- " }\n" |
- " },\n" |
- " \"vendor_id\": \"0x10de\",\n" |
- " \"device_id\": \"0x0640\",\n" |
- " \"driver_version\": {\n" |
- " \"op\": \"=\",\n" |
- " \"number\": \"1.6.18\"\n" |
- " },\n" |
- " \"blacklist\": [\n" |
- " \"accelerated_compositing\"\n" |
- " ]\n" |
- " }\n" |
- " ]\n" |
- "}"; |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(exact_list_json, false)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); |
- EXPECT_EQ( |
- flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)); |
- |
- // Invalid json input should not change the current blacklist settings. |
- const std::string invalid_json = "invalid"; |
- EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, false)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); |
- EXPECT_EQ( |
- flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)); |
- std::vector<uint32> entries; |
- blacklist.GetGpuFeatureFlagEntries( |
- GpuFeatureFlags::kGpuFeatureAcceleratedCompositing, entries); |
- EXPECT_EQ(entries.size(), 1u); |
- EXPECT_EQ(entries[0], 5u); |
- blacklist.GetGpuFeatureFlagEntries( |
- GpuFeatureFlags::kGpuFeatureAll, entries); |
- EXPECT_EQ(entries.size(), 1u); |
- EXPECT_EQ(entries[0], 5u); |
- EXPECT_EQ(blacklist.max_entry_id(), 5u); |
- |
- // Blacklist a vendor on all OS. |
- const std::string vendor_json = |
- "{\n" |
- " \"name\": \"gpu blacklist\",\n" |
- " \"version\": \"0.1\",\n" |
- " \"entries\": [\n" |
- " {\n" |
- " \"id\": \"1\",\n" |
- " \"vendor_id\": \"0x10de\",\n" |
- " \"blacklist\": [\n" |
- " \"webgl\"\n" |
- " ]\n" |
- " }\n" |
- " ]\n" |
- "}"; |
- // Blacklist entries won't be filtered to the current OS only upon loading. |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsWin, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsLinux, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) |
- // Blacklist entries will be filtered to the current OS only upon loading. |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, true)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsWin, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsLinux, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
-#endif |
- |
- |
- // Blacklist a vendor on Linux only. |
- const std::string vendor_linux_json = |
- "{\n" |
- " \"name\": \"gpu blacklist\",\n" |
- " \"version\": \"0.1\",\n" |
- " \"entries\": [\n" |
- " {\n" |
- " \"id\": \"1\",\n" |
- " \"os\": {\n" |
- " \"type\": \"linux\"\n" |
- " },\n" |
- " \"vendor_id\": \"0x10de\",\n" |
- " \"blacklist\": [\n" |
- " \"accelerated_2d_canvas\"\n" |
- " ]\n" |
- " }\n" |
- " ]\n" |
- "}"; |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false)); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), 0u); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsWin, os_version.get(), gpu_info); |
- EXPECT_EQ(flags.flags(), 0u); |
- flags = blacklist.DetermineGpuFeatureFlags( |
- GpuBlacklist::kOsLinux, os_version.get(), gpu_info); |
- EXPECT_EQ( |
- flags.flags(), |
- static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas)); |
-} |
- |