Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: chrome/browser/gpu_blacklist_unittest.cc

Issue 6352011: Improve blacklist logic: use more fields (driver_vendor, gl_renderer, ect) fo... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/gpu_blacklist.cc ('k') | chrome/browser/gpu_process_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector>
6
5 #include "base/version.h" 7 #include "base/version.h"
6 #include "chrome/browser/gpu_blacklist.h" 8 #include "chrome/browser/gpu_blacklist.h"
7 #include "chrome/common/gpu_info.h" 9 #include "chrome/common/gpu_info.h"
8 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
9 11
10 TEST(GpuBlacklistTest, BlacklistLogic) { 12 TEST(GpuBlacklistTest, BlacklistLogic) {
11 GPUInfo gpu_info; 13 GPUInfo gpu_info;
12 gpu_info.SetVideoCardInfo(0x10de, // Vendor ID 14 gpu_info.SetVideoCardInfo(0x10de, // Vendor ID
13 0x0640); // Device ID 15 0x0640); // Device ID
14 gpu_info.SetDriverInfo("NVIDIA", // Driver vendor 16 gpu_info.SetDriverInfo("NVIDIA", // Driver vendor
15 "1.6.18"); // Driver Version 17 "1.6.18"); // Driver Version
16 gpu_info.SetProgress(GPUInfo::kComplete); 18 gpu_info.SetProgress(GPUInfo::kComplete);
17 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 19 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
18 20
19 GpuBlacklist blacklist; 21 GpuBlacklist blacklist;
20 22
21 // Default blacklist settings: all feature are allowed. 23 // Default blacklist settings: all feature are allowed.
22 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 24 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
23 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); 25 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
24 EXPECT_EQ(flags.flags(), 0u); 26 EXPECT_EQ(flags.flags(), 0u);
25 27
26 // Empty list: all features are allowed. 28 // Empty list: all features are allowed.
27 const std::string empty_list_json = 29 const std::string empty_list_json =
28 "{\n" 30 "{\n"
29 " \"name\": \"gpu blacklist\",\n" 31 " \"name\": \"gpu blacklist\",\n"
30 " \"version\": \"0.0\",\n" 32 " \"version\": \"2.5\",\n"
31 " \"entries\": [\n" 33 " \"entries\": [\n"
32 " ]\n" 34 " ]\n"
33 "}"; 35 "}";
34 EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json, false)); 36 EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json, false));
37 uint16 major, minor;
38 EXPECT_TRUE(blacklist.GetVersion(&major, &minor));
39 EXPECT_EQ(major, 2u);
40 EXPECT_EQ(minor, 5u);
35 flags = blacklist.DetermineGpuFeatureFlags( 41 flags = blacklist.DetermineGpuFeatureFlags(
36 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); 42 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
37 EXPECT_EQ(flags.flags(), 0u); 43 EXPECT_EQ(flags.flags(), 0u);
38 44
39 // Blacklist accelerated_compositing with exact setting. 45 // Blacklist accelerated_compositing with exact setting.
40 const std::string exact_list_json = 46 const std::string exact_list_json =
41 "{\n" 47 "{\n"
42 " \"name\": \"gpu blacklist\",\n" 48 " \"name\": \"gpu blacklist\",\n"
43 " \"version\": \"0.1\",\n" 49 " \"version\": \"0.1\",\n"
44 " \"entries\": [\n" 50 " \"entries\": [\n"
45 " {\n" 51 " {\n"
52 " \"id\": \"5\",\n"
46 " \"os\": {\n" 53 " \"os\": {\n"
47 " \"type\": \"macosx\",\n" 54 " \"type\": \"macosx\",\n"
48 " \"version\": {\n" 55 " \"version\": {\n"
49 " \"op\": \"=\",\n" 56 " \"op\": \"=\",\n"
50 " \"number\": \"10.6.4\"\n" 57 " \"number\": \"10.6.4\"\n"
51 " }\n" 58 " }\n"
52 " },\n" 59 " },\n"
53 " \"vendor_id\": \"0x10de\",\n" 60 " \"vendor_id\": \"0x10de\",\n"
54 " \"device_id\": \"0x0640\",\n" 61 " \"device_id\": \"0x0640\",\n"
55 " \"driver_version\": {\n" 62 " \"driver_version\": {\n"
(...skipping 14 matching lines...) Expand all
70 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)); 77 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing));
71 78
72 // Invalid json input should not change the current blacklist settings. 79 // Invalid json input should not change the current blacklist settings.
73 const std::string invalid_json = "invalid"; 80 const std::string invalid_json = "invalid";
74 EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, false)); 81 EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, false));
75 flags = blacklist.DetermineGpuFeatureFlags( 82 flags = blacklist.DetermineGpuFeatureFlags(
76 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); 83 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
77 EXPECT_EQ( 84 EXPECT_EQ(
78 flags.flags(), 85 flags.flags(),
79 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)); 86 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing));
87 std::vector<uint32> entries;
88 blacklist.GetGpuFeatureFlagEntries(
89 GpuFeatureFlags::kGpuFeatureAcceleratedCompositing, entries);
90 EXPECT_EQ(entries.size(), 1u);
91 EXPECT_EQ(entries[0], 5u);
92 blacklist.GetGpuFeatureFlagEntries(
93 GpuFeatureFlags::kGpuFeatureAll, entries);
94 EXPECT_EQ(entries.size(), 1u);
95 EXPECT_EQ(entries[0], 5u);
96 EXPECT_EQ(blacklist.max_entry_id(), 5u);
80 97
81 // Blacklist a vendor on all OS. 98 // Blacklist a vendor on all OS.
82 const std::string vendor_json = 99 const std::string vendor_json =
83 "{\n" 100 "{\n"
84 " \"name\": \"gpu blacklist\",\n" 101 " \"name\": \"gpu blacklist\",\n"
85 " \"version\": \"0.1\",\n" 102 " \"version\": \"0.1\",\n"
86 " \"entries\": [\n" 103 " \"entries\": [\n"
87 " {\n" 104 " {\n"
105 " \"id\": \"1\",\n"
88 " \"vendor_id\": \"0x10de\",\n" 106 " \"vendor_id\": \"0x10de\",\n"
89 " \"blacklist\": [\n" 107 " \"blacklist\": [\n"
90 " \"webgl\"\n" 108 " \"webgl\"\n"
91 " ]\n" 109 " ]\n"
92 " }\n" 110 " }\n"
93 " ]\n" 111 " ]\n"
94 "}"; 112 "}";
95 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false)); 113 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false));
96 flags = blacklist.DetermineGpuFeatureFlags( 114 flags = blacklist.DetermineGpuFeatureFlags(
97 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); 115 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
98 EXPECT_EQ(flags.flags(), 116 EXPECT_EQ(flags.flags(),
99 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 117 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
100 flags = blacklist.DetermineGpuFeatureFlags( 118 flags = blacklist.DetermineGpuFeatureFlags(
101 GpuBlacklist::kOsWin, os_version.get(), gpu_info); 119 GpuBlacklist::kOsWin, os_version.get(), gpu_info);
102 EXPECT_EQ(flags.flags(), 120 EXPECT_EQ(flags.flags(),
103 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 121 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
104 flags = blacklist.DetermineGpuFeatureFlags( 122 flags = blacklist.DetermineGpuFeatureFlags(
105 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); 123 GpuBlacklist::kOsLinux, os_version.get(), gpu_info);
106 EXPECT_EQ(flags.flags(), 124 EXPECT_EQ(flags.flags(),
107 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 125 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
108 126
109 // Blacklist a vendor on Linux only. 127 // Blacklist a vendor on Linux only.
110 const std::string vendor_linux_json = 128 const std::string vendor_linux_json =
111 "{\n" 129 "{\n"
112 " \"name\": \"gpu blacklist\",\n" 130 " \"name\": \"gpu blacklist\",\n"
113 " \"version\": \"0.1\",\n" 131 " \"version\": \"0.1\",\n"
114 " \"entries\": [\n" 132 " \"entries\": [\n"
115 " {\n" 133 " {\n"
134 " \"id\": \"1\",\n"
116 " \"os\": {\n" 135 " \"os\": {\n"
117 " \"type\": \"linux\"\n" 136 " \"type\": \"linux\"\n"
118 " },\n" 137 " },\n"
119 " \"vendor_id\": \"0x10de\",\n" 138 " \"vendor_id\": \"0x10de\",\n"
120 " \"blacklist\": [\n" 139 " \"blacklist\": [\n"
121 " \"accelerated_2d_canvas\"\n" 140 " \"accelerated_2d_canvas\"\n"
122 " ]\n" 141 " ]\n"
123 " }\n" 142 " }\n"
124 " ]\n" 143 " ]\n"
125 "}"; 144 "}";
126 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false)); 145 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false));
127 flags = blacklist.DetermineGpuFeatureFlags( 146 flags = blacklist.DetermineGpuFeatureFlags(
128 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); 147 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
129 EXPECT_EQ(flags.flags(), 0u); 148 EXPECT_EQ(flags.flags(), 0u);
130 flags = blacklist.DetermineGpuFeatureFlags( 149 flags = blacklist.DetermineGpuFeatureFlags(
131 GpuBlacklist::kOsWin, os_version.get(), gpu_info); 150 GpuBlacklist::kOsWin, os_version.get(), gpu_info);
132 EXPECT_EQ(flags.flags(), 0u); 151 EXPECT_EQ(flags.flags(), 0u);
133 flags = blacklist.DetermineGpuFeatureFlags( 152 flags = blacklist.DetermineGpuFeatureFlags(
134 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); 153 GpuBlacklist::kOsLinux, os_version.get(), gpu_info);
135 EXPECT_EQ( 154 EXPECT_EQ(
136 flags.flags(), 155 flags.flags(),
137 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas)); 156 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas));
138 } 157 }
139 158
OLDNEW
« no previous file with comments | « chrome/browser/gpu_blacklist.cc ('k') | chrome/browser/gpu_process_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698