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

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

Issue 10683005: Remove two deprecated methods from base::Version (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 8 years, 5 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_util.cc » ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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> 5 #include <vector>
6 6
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 ASSERT_EQ(file_util::ReadFile(data_file, data.get(), data_file_size), 69 ASSERT_EQ(file_util::ReadFile(data_file, data.get(), data_file_size),
70 data_file_size); 70 data_file_size);
71 std::string json_string(data.get(), data_file_size); 71 std::string json_string(data.get(), data_file_size);
72 scoped_ptr<GpuBlacklist> blacklist(Create()); 72 scoped_ptr<GpuBlacklist> blacklist(Create());
73 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 73 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
74 json_string, GpuBlacklist::kAllOs)); 74 json_string, GpuBlacklist::kAllOs));
75 EXPECT_FALSE(blacklist->contains_unknown_fields()); 75 EXPECT_FALSE(blacklist->contains_unknown_fields());
76 } 76 }
77 77
78 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) { 78 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) {
79 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 79 Version os_version("10.6.4");
80 scoped_ptr<GpuBlacklist> blacklist(Create()); 80 scoped_ptr<GpuBlacklist> blacklist(Create());
81 // Default blacklist settings: all feature are allowed. 81 // Default blacklist settings: all feature are allowed.
82 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 82 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
83 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 83 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
84 EXPECT_EQ(type, 0); 84 EXPECT_EQ(type, 0);
85 } 85 }
86 86
87 TEST_F(GpuBlacklistTest, EmptyBlacklist) { 87 TEST_F(GpuBlacklistTest, EmptyBlacklist) {
88 // Empty list: all features are allowed. 88 // Empty list: all features are allowed.
89 const std::string empty_list_json = 89 const std::string empty_list_json =
90 "{\n" 90 "{\n"
91 " \"name\": \"gpu blacklist\",\n" 91 " \"name\": \"gpu blacklist\",\n"
92 " \"version\": \"2.5\",\n" 92 " \"version\": \"2.5\",\n"
93 " \"entries\": [\n" 93 " \"entries\": [\n"
94 " ]\n" 94 " ]\n"
95 "}"; 95 "}";
96 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 96 Version os_version("10.6.4");
97 scoped_ptr<GpuBlacklist> blacklist(Create()); 97 scoped_ptr<GpuBlacklist> blacklist(Create());
98 98
99 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 99 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
100 empty_list_json, GpuBlacklist::kAllOs)); 100 empty_list_json, GpuBlacklist::kAllOs));
101 EXPECT_EQ(blacklist->GetVersion(), std::string("2.5")); 101 EXPECT_EQ(blacklist->GetVersion(), std::string("2.5"));
102 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 102 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
103 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 103 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
104 EXPECT_EQ(type, 0); 104 EXPECT_EQ(type, 0);
105 } 105 }
106 106
107 TEST_F(GpuBlacklistTest, DetailedEntryAndInvalidJson) { 107 TEST_F(GpuBlacklistTest, DetailedEntryAndInvalidJson) {
108 // Blacklist accelerated_compositing with exact setting. 108 // Blacklist accelerated_compositing with exact setting.
109 const std::string exact_list_json = 109 const std::string exact_list_json =
110 "{\n" 110 "{\n"
111 " \"name\": \"gpu blacklist\",\n" 111 " \"name\": \"gpu blacklist\",\n"
112 " \"version\": \"0.1\",\n" 112 " \"version\": \"0.1\",\n"
113 " \"entries\": [\n" 113 " \"entries\": [\n"
(...skipping 11 matching lines...) Expand all
125 " \"driver_version\": {\n" 125 " \"driver_version\": {\n"
126 " \"op\": \"=\",\n" 126 " \"op\": \"=\",\n"
127 " \"number\": \"1.6.18\"\n" 127 " \"number\": \"1.6.18\"\n"
128 " },\n" 128 " },\n"
129 " \"blacklist\": [\n" 129 " \"blacklist\": [\n"
130 " \"accelerated_compositing\"\n" 130 " \"accelerated_compositing\"\n"
131 " ]\n" 131 " ]\n"
132 " }\n" 132 " }\n"
133 " ]\n" 133 " ]\n"
134 "}"; 134 "}";
135 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 135 Version os_version("10.6.4");
136 scoped_ptr<GpuBlacklist> blacklist(Create()); 136 scoped_ptr<GpuBlacklist> blacklist(Create());
137 137
138 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 138 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
139 exact_list_json, GpuBlacklist::kAllOs)); 139 exact_list_json, GpuBlacklist::kAllOs));
140 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 140 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
141 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 141 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
142 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); 142 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING);
143 143
144 // Invalid json input should not change the current blacklist settings. 144 // Invalid json input should not change the current blacklist settings.
145 const std::string invalid_json = "invalid"; 145 const std::string invalid_json = "invalid";
146 146
147 EXPECT_FALSE(blacklist->LoadGpuBlacklist( 147 EXPECT_FALSE(blacklist->LoadGpuBlacklist(
148 invalid_json, GpuBlacklist::kAllOs)); 148 invalid_json, GpuBlacklist::kAllOs));
149 type = blacklist->DetermineGpuFeatureType( 149 type = blacklist->DetermineGpuFeatureType(
150 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 150 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
151 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); 151 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING);
152 std::vector<uint32> entries; 152 std::vector<uint32> entries;
153 bool disabled = false; 153 bool disabled = false;
154 blacklist->GetGpuFeatureTypeEntries( 154 blacklist->GetGpuFeatureTypeEntries(
155 content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING, entries, disabled); 155 content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING, entries, disabled);
156 EXPECT_EQ(entries.size(), 1u); 156 EXPECT_EQ(entries.size(), 1u);
157 EXPECT_EQ(entries[0], 5u); 157 EXPECT_EQ(entries[0], 5u);
158 blacklist->GetGpuFeatureTypeEntries( 158 blacklist->GetGpuFeatureTypeEntries(
159 content::GPU_FEATURE_TYPE_ALL, entries, disabled); 159 content::GPU_FEATURE_TYPE_ALL, entries, disabled);
160 EXPECT_EQ(entries.size(), 1u); 160 EXPECT_EQ(entries.size(), 1u);
(...skipping 10 matching lines...) Expand all
171 " \"entries\": [\n" 171 " \"entries\": [\n"
172 " {\n" 172 " {\n"
173 " \"id\": 1,\n" 173 " \"id\": 1,\n"
174 " \"vendor_id\": \"0x10de\",\n" 174 " \"vendor_id\": \"0x10de\",\n"
175 " \"blacklist\": [\n" 175 " \"blacklist\": [\n"
176 " \"webgl\"\n" 176 " \"webgl\"\n"
177 " ]\n" 177 " ]\n"
178 " }\n" 178 " }\n"
179 " ]\n" 179 " ]\n"
180 "}"; 180 "}";
181 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 181 Version os_version("10.6.4");
182 scoped_ptr<GpuBlacklist> blacklist(Create()); 182 scoped_ptr<GpuBlacklist> blacklist(Create());
183 183
184 // Blacklist entries won't be filtered to the current OS only upon loading. 184 // Blacklist entries won't be filtered to the current OS only upon loading.
185 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 185 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
186 vendor_json, GpuBlacklist::kAllOs)); 186 vendor_json, GpuBlacklist::kAllOs));
187 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 187 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
188 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 188 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
189 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 189 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
190 type = blacklist->DetermineGpuFeatureType( 190 type = blacklist->DetermineGpuFeatureType(
191 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 191 GpuBlacklist::kOsWin, &os_version, gpu_info());
192 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 192 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
193 type = blacklist->DetermineGpuFeatureType( 193 type = blacklist->DetermineGpuFeatureType(
194 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 194 GpuBlacklist::kOsLinux, &os_version, gpu_info());
195 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 195 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
196 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \ 196 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \
197 defined(OS_OPENBSD) 197 defined(OS_OPENBSD)
198 // Blacklist entries will be filtered to the current OS only upon loading. 198 // Blacklist entries will be filtered to the current OS only upon loading.
199 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 199 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
200 vendor_json, GpuBlacklist::kCurrentOsOnly)); 200 vendor_json, GpuBlacklist::kCurrentOsOnly));
201 type = blacklist->DetermineGpuFeatureType( 201 type = blacklist->DetermineGpuFeatureType(
202 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 202 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
203 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 203 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
204 type = blacklist->DetermineGpuFeatureType( 204 type = blacklist->DetermineGpuFeatureType(
205 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 205 GpuBlacklist::kOsWin, &os_version, gpu_info());
206 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 206 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
207 type = blacklist->DetermineGpuFeatureType( 207 type = blacklist->DetermineGpuFeatureType(
208 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 208 GpuBlacklist::kOsLinux, &os_version, gpu_info());
209 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 209 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
210 #endif 210 #endif
211 } 211 }
212 212
213 TEST_F(GpuBlacklistTest, VendorOnLinuxEntry) { 213 TEST_F(GpuBlacklistTest, VendorOnLinuxEntry) {
214 // Blacklist a vendor on Linux only. 214 // Blacklist a vendor on Linux only.
215 const std::string vendor_linux_json = 215 const std::string vendor_linux_json =
216 "{\n" 216 "{\n"
217 " \"name\": \"gpu blacklist\",\n" 217 " \"name\": \"gpu blacklist\",\n"
218 " \"version\": \"0.1\",\n" 218 " \"version\": \"0.1\",\n"
219 " \"entries\": [\n" 219 " \"entries\": [\n"
220 " {\n" 220 " {\n"
221 " \"id\": 1,\n" 221 " \"id\": 1,\n"
222 " \"os\": {\n" 222 " \"os\": {\n"
223 " \"type\": \"linux\"\n" 223 " \"type\": \"linux\"\n"
224 " },\n" 224 " },\n"
225 " \"vendor_id\": \"0x10de\",\n" 225 " \"vendor_id\": \"0x10de\",\n"
226 " \"blacklist\": [\n" 226 " \"blacklist\": [\n"
227 " \"accelerated_2d_canvas\"\n" 227 " \"accelerated_2d_canvas\"\n"
228 " ]\n" 228 " ]\n"
229 " }\n" 229 " }\n"
230 " ]\n" 230 " ]\n"
231 "}"; 231 "}";
232 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 232 Version os_version("10.6.4");
233 scoped_ptr<GpuBlacklist> blacklist(Create()); 233 scoped_ptr<GpuBlacklist> blacklist(Create());
234 234
235 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 235 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
236 vendor_linux_json, GpuBlacklist::kAllOs)); 236 vendor_linux_json, GpuBlacklist::kAllOs));
237 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 237 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
238 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 238 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
239 EXPECT_EQ(type, 0); 239 EXPECT_EQ(type, 0);
240 type = blacklist->DetermineGpuFeatureType( 240 type = blacklist->DetermineGpuFeatureType(
241 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 241 GpuBlacklist::kOsWin, &os_version, gpu_info());
242 EXPECT_EQ(type, 0); 242 EXPECT_EQ(type, 0);
243 type = blacklist->DetermineGpuFeatureType( 243 type = blacklist->DetermineGpuFeatureType(
244 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 244 GpuBlacklist::kOsLinux, &os_version, gpu_info());
245 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); 245 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
246 } 246 }
247 247
248 TEST_F(GpuBlacklistTest, AllExceptNVidiaOnLinuxEntry) { 248 TEST_F(GpuBlacklistTest, AllExceptNVidiaOnLinuxEntry) {
249 // Blacklist all cards in Linux except NVIDIA. 249 // Blacklist all cards in Linux except NVIDIA.
250 const std::string linux_except_nvidia_json = 250 const std::string linux_except_nvidia_json =
251 "{\n" 251 "{\n"
252 " \"name\": \"gpu blacklist\",\n" 252 " \"name\": \"gpu blacklist\",\n"
253 " \"version\": \"0.1\",\n" 253 " \"version\": \"0.1\",\n"
254 " \"entries\": [\n" 254 " \"entries\": [\n"
255 " {\n" 255 " {\n"
256 " \"id\": 1,\n" 256 " \"id\": 1,\n"
257 " \"os\": {\n" 257 " \"os\": {\n"
258 " \"type\": \"linux\"\n" 258 " \"type\": \"linux\"\n"
259 " },\n" 259 " },\n"
260 " \"exceptions\": [\n" 260 " \"exceptions\": [\n"
261 " {\n" 261 " {\n"
262 " \"vendor_id\": \"0x10de\"\n" 262 " \"vendor_id\": \"0x10de\"\n"
263 " }\n" 263 " }\n"
264 " ],\n" 264 " ],\n"
265 " \"blacklist\": [\n" 265 " \"blacklist\": [\n"
266 " \"accelerated_2d_canvas\"\n" 266 " \"accelerated_2d_canvas\"\n"
267 " ]\n" 267 " ]\n"
268 " }\n" 268 " }\n"
269 " ]\n" 269 " ]\n"
270 "}"; 270 "}";
271 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 271 Version os_version("10.6.4");
272 scoped_ptr<GpuBlacklist> blacklist(Create()); 272 scoped_ptr<GpuBlacklist> blacklist(Create());
273 273
274 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 274 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
275 linux_except_nvidia_json, GpuBlacklist::kAllOs)); 275 linux_except_nvidia_json, GpuBlacklist::kAllOs));
276 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 276 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
277 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 277 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
278 EXPECT_EQ(type, 0); 278 EXPECT_EQ(type, 0);
279 type = blacklist->DetermineGpuFeatureType( 279 type = blacklist->DetermineGpuFeatureType(
280 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 280 GpuBlacklist::kOsWin, &os_version, gpu_info());
281 EXPECT_EQ(type, 0); 281 EXPECT_EQ(type, 0);
282 type = blacklist->DetermineGpuFeatureType( 282 type = blacklist->DetermineGpuFeatureType(
283 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 283 GpuBlacklist::kOsLinux, &os_version, gpu_info());
284 EXPECT_EQ(type, 0); 284 EXPECT_EQ(type, 0);
285 } 285 }
286 286
287 TEST_F(GpuBlacklistTest, AllExceptIntelOnLinuxEntry) { 287 TEST_F(GpuBlacklistTest, AllExceptIntelOnLinuxEntry) {
288 // Blacklist all cards in Linux except Intel. 288 // Blacklist all cards in Linux except Intel.
289 const std::string linux_except_intel_json = 289 const std::string linux_except_intel_json =
290 "{\n" 290 "{\n"
291 " \"name\": \"gpu blacklist\",\n" 291 " \"name\": \"gpu blacklist\",\n"
292 " \"version\": \"0.1\",\n" 292 " \"version\": \"0.1\",\n"
293 " \"entries\": [\n" 293 " \"entries\": [\n"
294 " {\n" 294 " {\n"
295 " \"id\": 1,\n" 295 " \"id\": 1,\n"
296 " \"os\": {\n" 296 " \"os\": {\n"
297 " \"type\": \"linux\"\n" 297 " \"type\": \"linux\"\n"
298 " },\n" 298 " },\n"
299 " \"exceptions\": [\n" 299 " \"exceptions\": [\n"
300 " {\n" 300 " {\n"
301 " \"vendor_id\": \"0x8086\"\n" 301 " \"vendor_id\": \"0x8086\"\n"
302 " }\n" 302 " }\n"
303 " ],\n" 303 " ],\n"
304 " \"blacklist\": [\n" 304 " \"blacklist\": [\n"
305 " \"accelerated_2d_canvas\"\n" 305 " \"accelerated_2d_canvas\"\n"
306 " ]\n" 306 " ]\n"
307 " }\n" 307 " }\n"
308 " ]\n" 308 " ]\n"
309 "}"; 309 "}";
310 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 310 Version os_version("10.6.4");
311 scoped_ptr<GpuBlacklist> blacklist(Create()); 311 scoped_ptr<GpuBlacklist> blacklist(Create());
312 312
313 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 313 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
314 linux_except_intel_json, GpuBlacklist::kAllOs)); 314 linux_except_intel_json, GpuBlacklist::kAllOs));
315 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 315 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
316 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 316 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
317 EXPECT_EQ(type, 0); 317 EXPECT_EQ(type, 0);
318 type = blacklist->DetermineGpuFeatureType( 318 type = blacklist->DetermineGpuFeatureType(
319 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 319 GpuBlacklist::kOsWin, &os_version, gpu_info());
320 EXPECT_EQ(type, 0); 320 EXPECT_EQ(type, 0);
321 type = blacklist->DetermineGpuFeatureType( 321 type = blacklist->DetermineGpuFeatureType(
322 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 322 GpuBlacklist::kOsLinux, &os_version, gpu_info());
323 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); 323 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
324 } 324 }
325 325
326 TEST_F(GpuBlacklistTest, DateOnWindowsEntry) { 326 TEST_F(GpuBlacklistTest, DateOnWindowsEntry) {
327 // Blacklist all drivers earlier than 2010-01 in Windows. 327 // Blacklist all drivers earlier than 2010-01 in Windows.
328 const std::string date_windows_json = 328 const std::string date_windows_json =
329 "{\n" 329 "{\n"
330 " \"name\": \"gpu blacklist\",\n" 330 " \"name\": \"gpu blacklist\",\n"
331 " \"version\": \"0.1\",\n" 331 " \"version\": \"0.1\",\n"
332 " \"entries\": [\n" 332 " \"entries\": [\n"
333 " {\n" 333 " {\n"
334 " \"id\": 1,\n" 334 " \"id\": 1,\n"
335 " \"os\": {\n" 335 " \"os\": {\n"
336 " \"type\": \"win\"\n" 336 " \"type\": \"win\"\n"
337 " },\n" 337 " },\n"
338 " \"driver_date\": {\n" 338 " \"driver_date\": {\n"
339 " \"op\": \"<\",\n" 339 " \"op\": \"<\",\n"
340 " \"number\": \"2010.1\"\n" 340 " \"number\": \"2010.1\"\n"
341 " },\n" 341 " },\n"
342 " \"blacklist\": [\n" 342 " \"blacklist\": [\n"
343 " \"accelerated_2d_canvas\"\n" 343 " \"accelerated_2d_canvas\"\n"
344 " ]\n" 344 " ]\n"
345 " }\n" 345 " }\n"
346 " ]\n" 346 " ]\n"
347 "}"; 347 "}";
348 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 348 Version os_version("10.6.4");
349 scoped_ptr<GpuBlacklist> blacklist(Create()); 349 scoped_ptr<GpuBlacklist> blacklist(Create());
350 350
351 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 351 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
352 date_windows_json, GpuBlacklist::kAllOs)); 352 date_windows_json, GpuBlacklist::kAllOs));
353 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 353 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
354 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 354 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
355 EXPECT_EQ(type, 0); 355 EXPECT_EQ(type, 0);
356 type = blacklist->DetermineGpuFeatureType( 356 type = blacklist->DetermineGpuFeatureType(
357 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 357 GpuBlacklist::kOsLinux, &os_version, gpu_info());
358 EXPECT_EQ(type, 0); 358 EXPECT_EQ(type, 0);
359 type = blacklist->DetermineGpuFeatureType( 359 type = blacklist->DetermineGpuFeatureType(
360 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 360 GpuBlacklist::kOsWin, &os_version, gpu_info());
361 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); 361 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
362 } 362 }
363 363
364 TEST_F(GpuBlacklistTest, MultipleDevicesEntry) { 364 TEST_F(GpuBlacklistTest, MultipleDevicesEntry) {
365 const std::string devices_json = 365 const std::string devices_json =
366 "{\n" 366 "{\n"
367 " \"name\": \"gpu blacklist\",\n" 367 " \"name\": \"gpu blacklist\",\n"
368 " \"version\": \"0.1\",\n" 368 " \"version\": \"0.1\",\n"
369 " \"entries\": [\n" 369 " \"entries\": [\n"
370 " {\n" 370 " {\n"
371 " \"id\": 1,\n" 371 " \"id\": 1,\n"
372 " \"vendor_id\": \"0x10de\",\n" 372 " \"vendor_id\": \"0x10de\",\n"
373 " \"device_id\": [\"0x1023\", \"0x0640\"],\n" 373 " \"device_id\": [\"0x1023\", \"0x0640\"],\n"
374 " \"blacklist\": [\n" 374 " \"blacklist\": [\n"
375 " \"multisampling\"\n" 375 " \"multisampling\"\n"
376 " ]\n" 376 " ]\n"
377 " }\n" 377 " }\n"
378 " ]\n" 378 " ]\n"
379 "}"; 379 "}";
380 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 380 Version os_version("10.6.4");
381 scoped_ptr<GpuBlacklist> blacklist(Create()); 381 scoped_ptr<GpuBlacklist> blacklist(Create());
382 382
383 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 383 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
384 devices_json, GpuBlacklist::kAllOs)); 384 devices_json, GpuBlacklist::kAllOs));
385 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 385 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
386 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 386 GpuBlacklist::kOsMacosx, &os_version, gpu_info());
387 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); 387 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING);
388 type = blacklist->DetermineGpuFeatureType( 388 type = blacklist->DetermineGpuFeatureType(
389 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 389 GpuBlacklist::kOsWin, &os_version, gpu_info());
390 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); 390 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING);
391 type = blacklist->DetermineGpuFeatureType( 391 type = blacklist->DetermineGpuFeatureType(
392 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 392 GpuBlacklist::kOsLinux, &os_version, gpu_info());
393 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); 393 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING);
394 } 394 }
395 395
396 TEST_F(GpuBlacklistTest, ChromeOSEntry) { 396 TEST_F(GpuBlacklistTest, ChromeOSEntry) {
397 const std::string devices_json = 397 const std::string devices_json =
398 "{\n" 398 "{\n"
399 " \"name\": \"gpu blacklist\",\n" 399 " \"name\": \"gpu blacklist\",\n"
400 " \"version\": \"0.1\",\n" 400 " \"version\": \"0.1\",\n"
401 " \"entries\": [\n" 401 " \"entries\": [\n"
402 " {\n" 402 " {\n"
403 " \"id\": 1,\n" 403 " \"id\": 1,\n"
404 " \"os\": {\n" 404 " \"os\": {\n"
405 " \"type\": \"chromeos\"\n" 405 " \"type\": \"chromeos\"\n"
406 " },\n" 406 " },\n"
407 " \"blacklist\": [\n" 407 " \"blacklist\": [\n"
408 " \"webgl\"\n" 408 " \"webgl\"\n"
409 " ]\n" 409 " ]\n"
410 " }\n" 410 " }\n"
411 " ]\n" 411 " ]\n"
412 "}"; 412 "}";
413 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 413 Version os_version("10.6.4");
414 scoped_ptr<GpuBlacklist> blacklist(Create()); 414 scoped_ptr<GpuBlacklist> blacklist(Create());
415 415
416 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 416 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
417 devices_json, GpuBlacklist::kAllOs)); 417 devices_json, GpuBlacklist::kAllOs));
418 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 418 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
419 GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info()); 419 GpuBlacklist::kOsChromeOS, &os_version, gpu_info());
420 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 420 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
421 type = blacklist->DetermineGpuFeatureType( 421 type = blacklist->DetermineGpuFeatureType(
422 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 422 GpuBlacklist::kOsLinux, &os_version, gpu_info());
423 EXPECT_EQ(type, 0); 423 EXPECT_EQ(type, 0);
424 } 424 }
425 425
426 TEST_F(GpuBlacklistTest, ChromeVersionEntry) { 426 TEST_F(GpuBlacklistTest, ChromeVersionEntry) {
427 const std::string browser_version_json = 427 const std::string browser_version_json =
428 "{\n" 428 "{\n"
429 " \"name\": \"gpu blacklist\",\n" 429 " \"name\": \"gpu blacklist\",\n"
430 " \"version\": \"0.1\",\n" 430 " \"version\": \"0.1\",\n"
431 " \"entries\": [\n" 431 " \"entries\": [\n"
432 " {\n" 432 " {\n"
433 " \"id\": 1,\n" 433 " \"id\": 1,\n"
434 " \"browser_version\": {\n" 434 " \"browser_version\": {\n"
435 " \"op\": \">=\",\n" 435 " \"op\": \">=\",\n"
436 " \"number\": \"10\"\n" 436 " \"number\": \"10\"\n"
437 " },\n" 437 " },\n"
438 " \"blacklist\": [\n" 438 " \"blacklist\": [\n"
439 " \"webgl\"\n" 439 " \"webgl\"\n"
440 " ]\n" 440 " ]\n"
441 " }\n" 441 " }\n"
442 " ]\n" 442 " ]\n"
443 "}"; 443 "}";
444 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 444 Version os_version("10.6.4");
445 445
446 scoped_ptr<GpuBlacklist> blacklist9(Create()); 446 scoped_ptr<GpuBlacklist> blacklist9(Create());
447 EXPECT_TRUE(blacklist9->LoadGpuBlacklist( 447 EXPECT_TRUE(blacklist9->LoadGpuBlacklist(
448 "9.0", browser_version_json, GpuBlacklist::kAllOs)); 448 "9.0", browser_version_json, GpuBlacklist::kAllOs));
449 GpuFeatureType type = blacklist9->DetermineGpuFeatureType( 449 GpuFeatureType type = blacklist9->DetermineGpuFeatureType(
450 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 450 GpuBlacklist::kOsWin, &os_version, gpu_info());
451 EXPECT_EQ(type, 0); 451 EXPECT_EQ(type, 0);
452 452
453 scoped_ptr<GpuBlacklist> blacklist10(Create()); 453 scoped_ptr<GpuBlacklist> blacklist10(Create());
454 EXPECT_TRUE(blacklist10->LoadGpuBlacklist( 454 EXPECT_TRUE(blacklist10->LoadGpuBlacklist(
455 "10.0", browser_version_json, GpuBlacklist::kAllOs)); 455 "10.0", browser_version_json, GpuBlacklist::kAllOs));
456 type = blacklist10->DetermineGpuFeatureType( 456 type = blacklist10->DetermineGpuFeatureType(
457 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 457 GpuBlacklist::kOsWin, &os_version, gpu_info());
458 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 458 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
459 } 459 }
460 460
461 TEST_F(GpuBlacklistTest, MalformedVendor) { 461 TEST_F(GpuBlacklistTest, MalformedVendor) {
462 // vendor_id is defined as list instead of string. 462 // vendor_id is defined as list instead of string.
463 const std::string malformed_vendor_json = 463 const std::string malformed_vendor_json =
464 "{\n" 464 "{\n"
465 " \"name\": \"gpu blacklist\",\n" 465 " \"name\": \"gpu blacklist\",\n"
466 " \"version\": \"0.1\",\n" 466 " \"version\": \"0.1\",\n"
467 " \"entries\": [\n" 467 " \"entries\": [\n"
(...skipping 26 matching lines...) Expand all
494 " ]\n" 494 " ]\n"
495 " },\n" 495 " },\n"
496 " {\n" 496 " {\n"
497 " \"id\": 2,\n" 497 " \"id\": 2,\n"
498 " \"blacklist\": [\n" 498 " \"blacklist\": [\n"
499 " \"webgl\"\n" 499 " \"webgl\"\n"
500 " ]\n" 500 " ]\n"
501 " }\n" 501 " }\n"
502 " ]\n" 502 " ]\n"
503 "}"; 503 "}";
504 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 504 Version os_version("10.6.4");
505 scoped_ptr<GpuBlacklist> blacklist(Create()); 505 scoped_ptr<GpuBlacklist> blacklist(Create());
506 506
507 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 507 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
508 unknown_field_json, GpuBlacklist::kAllOs)); 508 unknown_field_json, GpuBlacklist::kAllOs));
509 EXPECT_EQ(1u, blacklist->num_entries()); 509 EXPECT_EQ(1u, blacklist->num_entries());
510 EXPECT_TRUE(blacklist->contains_unknown_fields()); 510 EXPECT_TRUE(blacklist->contains_unknown_fields());
511 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 511 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
512 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 512 GpuBlacklist::kOsWin, &os_version, gpu_info());
513 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 513 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
514 } 514 }
515 515
516 TEST_F(GpuBlacklistTest, UnknownExceptionField) { 516 TEST_F(GpuBlacklistTest, UnknownExceptionField) {
517 const std::string unknown_exception_field_json = 517 const std::string unknown_exception_field_json =
518 "{\n" 518 "{\n"
519 " \"name\": \"gpu blacklist\",\n" 519 " \"name\": \"gpu blacklist\",\n"
520 " \"version\": \"0.1\",\n" 520 " \"version\": \"0.1\",\n"
521 " \"entries\": [\n" 521 " \"entries\": [\n"
522 " {\n" 522 " {\n"
(...skipping 15 matching lines...) Expand all
538 " ]\n" 538 " ]\n"
539 " },\n" 539 " },\n"
540 " {\n" 540 " {\n"
541 " \"id\": 3,\n" 541 " \"id\": 3,\n"
542 " \"blacklist\": [\n" 542 " \"blacklist\": [\n"
543 " \"webgl\"\n" 543 " \"webgl\"\n"
544 " ]\n" 544 " ]\n"
545 " }\n" 545 " }\n"
546 " ]\n" 546 " ]\n"
547 "}"; 547 "}";
548 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 548 Version os_version("10.6.4");
549 scoped_ptr<GpuBlacklist> blacklist(Create()); 549 scoped_ptr<GpuBlacklist> blacklist(Create());
550 550
551 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 551 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
552 unknown_exception_field_json, GpuBlacklist::kAllOs)); 552 unknown_exception_field_json, GpuBlacklist::kAllOs));
553 EXPECT_EQ(1u, blacklist->num_entries()); 553 EXPECT_EQ(1u, blacklist->num_entries());
554 EXPECT_TRUE(blacklist->contains_unknown_fields()); 554 EXPECT_TRUE(blacklist->contains_unknown_fields());
555 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 555 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
556 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 556 GpuBlacklist::kOsWin, &os_version, gpu_info());
557 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 557 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
558 } 558 }
559 559
560 TEST_F(GpuBlacklistTest, UnknownFeature) { 560 TEST_F(GpuBlacklistTest, UnknownFeature) {
561 const std::string unknown_feature_json = 561 const std::string unknown_feature_json =
562 "{\n" 562 "{\n"
563 " \"name\": \"gpu blacklist\",\n" 563 " \"name\": \"gpu blacklist\",\n"
564 " \"version\": \"0.1\",\n" 564 " \"version\": \"0.1\",\n"
565 " \"entries\": [\n" 565 " \"entries\": [\n"
566 " {\n" 566 " {\n"
567 " \"id\": 1,\n" 567 " \"id\": 1,\n"
568 " \"blacklist\": [\n" 568 " \"blacklist\": [\n"
569 " \"accelerated_something\",\n" 569 " \"accelerated_something\",\n"
570 " \"webgl\"\n" 570 " \"webgl\"\n"
571 " ]\n" 571 " ]\n"
572 " }\n" 572 " }\n"
573 " ]\n" 573 " ]\n"
574 "}"; 574 "}";
575 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 575 Version os_version("10.6.4");
576 scoped_ptr<GpuBlacklist> blacklist(Create()); 576 scoped_ptr<GpuBlacklist> blacklist(Create());
577 577
578 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 578 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
579 unknown_feature_json, GpuBlacklist::kAllOs)); 579 unknown_feature_json, GpuBlacklist::kAllOs));
580 EXPECT_EQ(1u, blacklist->num_entries()); 580 EXPECT_EQ(1u, blacklist->num_entries());
581 EXPECT_TRUE(blacklist->contains_unknown_fields()); 581 EXPECT_TRUE(blacklist->contains_unknown_fields());
582 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 582 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
583 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 583 GpuBlacklist::kOsWin, &os_version, gpu_info());
584 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 584 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
585 } 585 }
586 586
587 TEST_F(GpuBlacklistTest, GlVendor) { 587 TEST_F(GpuBlacklistTest, GlVendor) {
588 const std::string gl_vendor_json = 588 const std::string gl_vendor_json =
589 "{\n" 589 "{\n"
590 " \"name\": \"gpu blacklist\",\n" 590 " \"name\": \"gpu blacklist\",\n"
591 " \"version\": \"0.1\",\n" 591 " \"version\": \"0.1\",\n"
592 " \"entries\": [\n" 592 " \"entries\": [\n"
593 " {\n" 593 " {\n"
594 " \"id\": 1,\n" 594 " \"id\": 1,\n"
595 " \"gl_vendor\": {\n" 595 " \"gl_vendor\": {\n"
596 " \"op\": \"beginwith\",\n" 596 " \"op\": \"beginwith\",\n"
597 " \"value\": \"NVIDIA\"\n" 597 " \"value\": \"NVIDIA\"\n"
598 " },\n" 598 " },\n"
599 " \"blacklist\": [\n" 599 " \"blacklist\": [\n"
600 " \"webgl\"\n" 600 " \"webgl\"\n"
601 " ]\n" 601 " ]\n"
602 " }\n" 602 " }\n"
603 " ]\n" 603 " ]\n"
604 "}"; 604 "}";
605 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 605 Version os_version("10.6.4");
606 606
607 scoped_ptr<GpuBlacklist> blacklist(Create()); 607 scoped_ptr<GpuBlacklist> blacklist(Create());
608 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 608 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
609 gl_vendor_json, GpuBlacklist::kAllOs)); 609 gl_vendor_json, GpuBlacklist::kAllOs));
610 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 610 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
611 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 611 GpuBlacklist::kOsWin, &os_version, gpu_info());
612 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 612 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
613 } 613 }
614 614
615 TEST_F(GpuBlacklistTest, GlRenderer) { 615 TEST_F(GpuBlacklistTest, GlRenderer) {
616 const std::string gl_renderer_json = 616 const std::string gl_renderer_json =
617 "{\n" 617 "{\n"
618 " \"name\": \"gpu blacklist\",\n" 618 " \"name\": \"gpu blacklist\",\n"
619 " \"version\": \"0.1\",\n" 619 " \"version\": \"0.1\",\n"
620 " \"entries\": [\n" 620 " \"entries\": [\n"
621 " {\n" 621 " {\n"
622 " \"id\": 1,\n" 622 " \"id\": 1,\n"
623 " \"gl_renderer\": {\n" 623 " \"gl_renderer\": {\n"
624 " \"op\": \"contains\",\n" 624 " \"op\": \"contains\",\n"
625 " \"value\": \"GeForce\"\n" 625 " \"value\": \"GeForce\"\n"
626 " },\n" 626 " },\n"
627 " \"blacklist\": [\n" 627 " \"blacklist\": [\n"
628 " \"webgl\"\n" 628 " \"webgl\"\n"
629 " ]\n" 629 " ]\n"
630 " }\n" 630 " }\n"
631 " ]\n" 631 " ]\n"
632 "}"; 632 "}";
633 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 633 Version os_version("10.6.4");
634 634
635 scoped_ptr<GpuBlacklist> blacklist(Create()); 635 scoped_ptr<GpuBlacklist> blacklist(Create());
636 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 636 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
637 gl_renderer_json, GpuBlacklist::kAllOs)); 637 gl_renderer_json, GpuBlacklist::kAllOs));
638 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 638 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
639 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 639 GpuBlacklist::kOsWin, &os_version, gpu_info());
640 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 640 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
641 } 641 }
642 642
643 TEST_F(GpuBlacklistTest, PerfGraphics) { 643 TEST_F(GpuBlacklistTest, PerfGraphics) {
644 const std::string json = 644 const std::string json =
645 "{\n" 645 "{\n"
646 " \"name\": \"gpu blacklist\",\n" 646 " \"name\": \"gpu blacklist\",\n"
647 " \"version\": \"0.1\",\n" 647 " \"version\": \"0.1\",\n"
648 " \"entries\": [\n" 648 " \"entries\": [\n"
649 " {\n" 649 " {\n"
650 " \"id\": 1,\n" 650 " \"id\": 1,\n"
651 " \"perf_graphics\": {\n" 651 " \"perf_graphics\": {\n"
652 " \"op\": \"<\",\n" 652 " \"op\": \"<\",\n"
653 " \"value\": \"6.0\"\n" 653 " \"value\": \"6.0\"\n"
654 " },\n" 654 " },\n"
655 " \"blacklist\": [\n" 655 " \"blacklist\": [\n"
656 " \"webgl\"\n" 656 " \"webgl\"\n"
657 " ]\n" 657 " ]\n"
658 " }\n" 658 " }\n"
659 " ]\n" 659 " ]\n"
660 "}"; 660 "}";
661 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 661 Version os_version("10.6.4");
662 662
663 scoped_ptr<GpuBlacklist> blacklist(Create()); 663 scoped_ptr<GpuBlacklist> blacklist(Create());
664 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); 664 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs));
665 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 665 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
666 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 666 GpuBlacklist::kOsWin, &os_version, gpu_info());
667 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 667 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
668 } 668 }
669 669
670 TEST_F(GpuBlacklistTest, PerfGaming) { 670 TEST_F(GpuBlacklistTest, PerfGaming) {
671 const std::string json = 671 const std::string json =
672 "{\n" 672 "{\n"
673 " \"name\": \"gpu blacklist\",\n" 673 " \"name\": \"gpu blacklist\",\n"
674 " \"version\": \"0.1\",\n" 674 " \"version\": \"0.1\",\n"
675 " \"entries\": [\n" 675 " \"entries\": [\n"
676 " {\n" 676 " {\n"
677 " \"id\": 1,\n" 677 " \"id\": 1,\n"
678 " \"perf_gaming\": {\n" 678 " \"perf_gaming\": {\n"
679 " \"op\": \"<=\",\n" 679 " \"op\": \"<=\",\n"
680 " \"value\": \"4.0\"\n" 680 " \"value\": \"4.0\"\n"
681 " },\n" 681 " },\n"
682 " \"blacklist\": [\n" 682 " \"blacklist\": [\n"
683 " \"webgl\"\n" 683 " \"webgl\"\n"
684 " ]\n" 684 " ]\n"
685 " }\n" 685 " }\n"
686 " ]\n" 686 " ]\n"
687 "}"; 687 "}";
688 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 688 Version os_version("10.6.4");
689 689
690 scoped_ptr<GpuBlacklist> blacklist(Create()); 690 scoped_ptr<GpuBlacklist> blacklist(Create());
691 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); 691 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs));
692 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 692 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
693 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 693 GpuBlacklist::kOsWin, &os_version, gpu_info());
694 EXPECT_EQ(type, 0); 694 EXPECT_EQ(type, 0);
695 } 695 }
696 696
697 TEST_F(GpuBlacklistTest, PerfOverall) { 697 TEST_F(GpuBlacklistTest, PerfOverall) {
698 const std::string json = 698 const std::string json =
699 "{\n" 699 "{\n"
700 " \"name\": \"gpu blacklist\",\n" 700 " \"name\": \"gpu blacklist\",\n"
701 " \"version\": \"0.1\",\n" 701 " \"version\": \"0.1\",\n"
702 " \"entries\": [\n" 702 " \"entries\": [\n"
703 " {\n" 703 " {\n"
704 " \"id\": 1,\n" 704 " \"id\": 1,\n"
705 " \"perf_overall\": {\n" 705 " \"perf_overall\": {\n"
706 " \"op\": \"between\",\n" 706 " \"op\": \"between\",\n"
707 " \"value\": \"1.0\",\n" 707 " \"value\": \"1.0\",\n"
708 " \"value2\": \"9.0\"\n" 708 " \"value2\": \"9.0\"\n"
709 " },\n" 709 " },\n"
710 " \"blacklist\": [\n" 710 " \"blacklist\": [\n"
711 " \"webgl\"\n" 711 " \"webgl\"\n"
712 " ]\n" 712 " ]\n"
713 " }\n" 713 " }\n"
714 " ]\n" 714 " ]\n"
715 "}"; 715 "}";
716 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 716 Version os_version("10.6.4");
717 717
718 scoped_ptr<GpuBlacklist> blacklist(Create()); 718 scoped_ptr<GpuBlacklist> blacklist(Create());
719 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); 719 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs));
720 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 720 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
721 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 721 GpuBlacklist::kOsWin, &os_version, gpu_info());
722 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 722 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
723 } 723 }
724 724
725 TEST_F(GpuBlacklistTest, DisabledEntry) { 725 TEST_F(GpuBlacklistTest, DisabledEntry) {
726 const std::string disabled_json = 726 const std::string disabled_json =
727 "{\n" 727 "{\n"
728 " \"name\": \"gpu blacklist\",\n" 728 " \"name\": \"gpu blacklist\",\n"
729 " \"version\": \"0.1\",\n" 729 " \"version\": \"0.1\",\n"
730 " \"entries\": [\n" 730 " \"entries\": [\n"
731 " {\n" 731 " {\n"
732 " \"id\": 1,\n" 732 " \"id\": 1,\n"
733 " \"disabled\": true,\n" 733 " \"disabled\": true,\n"
734 " \"blacklist\": [\n" 734 " \"blacklist\": [\n"
735 " \"webgl\"\n" 735 " \"webgl\"\n"
736 " ]\n" 736 " ]\n"
737 " }\n" 737 " }\n"
738 " ]\n" 738 " ]\n"
739 "}"; 739 "}";
740 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 740 Version os_version("10.6.4");
741 741
742 scoped_ptr<GpuBlacklist> blacklist(Create()); 742 scoped_ptr<GpuBlacklist> blacklist(Create());
743 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 743 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
744 disabled_json, GpuBlacklist::kAllOs)); 744 disabled_json, GpuBlacklist::kAllOs));
745 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 745 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
746 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 746 GpuBlacklist::kOsWin, &os_version, gpu_info());
747 EXPECT_EQ(type, 0); 747 EXPECT_EQ(type, 0);
748 std::vector<uint32> flag_entries; 748 std::vector<uint32> flag_entries;
749 bool disabled = false; 749 bool disabled = false;
750 blacklist->GetGpuFeatureTypeEntries( 750 blacklist->GetGpuFeatureTypeEntries(
751 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled); 751 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled);
752 EXPECT_EQ(flag_entries.size(), 0u); 752 EXPECT_EQ(flag_entries.size(), 0u);
753 disabled = true; 753 disabled = true;
754 blacklist->GetGpuFeatureTypeEntries( 754 blacklist->GetGpuFeatureTypeEntries(
755 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled); 755 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled);
756 EXPECT_EQ(flag_entries.size(), 1u); 756 EXPECT_EQ(flag_entries.size(), 1u);
(...skipping 10 matching lines...) Expand all
767 " \"os\": {\n" 767 " \"os\": {\n"
768 " \"type\": \"linux\"\n" 768 " \"type\": \"linux\"\n"
769 " },\n" 769 " },\n"
770 " \"multi_gpu_style\": \"optimus\",\n" 770 " \"multi_gpu_style\": \"optimus\",\n"
771 " \"blacklist\": [\n" 771 " \"blacklist\": [\n"
772 " \"webgl\"\n" 772 " \"webgl\"\n"
773 " ]\n" 773 " ]\n"
774 " }\n" 774 " }\n"
775 " ]\n" 775 " ]\n"
776 "}"; 776 "}";
777 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 777 Version os_version("10.6.4");
778 778
779 content::GPUInfo gpu_info; 779 content::GPUInfo gpu_info;
780 gpu_info.optimus = true; 780 gpu_info.optimus = true;
781 781
782 scoped_ptr<GpuBlacklist> blacklist(Create()); 782 scoped_ptr<GpuBlacklist> blacklist(Create());
783 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 783 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
784 optimus_json, GpuBlacklist::kAllOs)); 784 optimus_json, GpuBlacklist::kAllOs));
785 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 785 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
786 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); 786 GpuBlacklist::kOsLinux, &os_version, gpu_info);
787 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 787 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
788 } 788 }
789 789
790 TEST_F(GpuBlacklistTest, AMDSwitchable) { 790 TEST_F(GpuBlacklistTest, AMDSwitchable) {
791 const std::string amd_switchable_json = 791 const std::string amd_switchable_json =
792 "{\n" 792 "{\n"
793 " \"name\": \"gpu blacklist\",\n" 793 " \"name\": \"gpu blacklist\",\n"
794 " \"version\": \"0.1\",\n" 794 " \"version\": \"0.1\",\n"
795 " \"entries\": [\n" 795 " \"entries\": [\n"
796 " {\n" 796 " {\n"
797 " \"id\": 1,\n" 797 " \"id\": 1,\n"
798 " \"os\": {\n" 798 " \"os\": {\n"
799 " \"type\": \"macosx\"\n" 799 " \"type\": \"macosx\"\n"
800 " },\n" 800 " },\n"
801 " \"multi_gpu_style\": \"amd_switchable\",\n" 801 " \"multi_gpu_style\": \"amd_switchable\",\n"
802 " \"blacklist\": [\n" 802 " \"blacklist\": [\n"
803 " \"webgl\"\n" 803 " \"webgl\"\n"
804 " ]\n" 804 " ]\n"
805 " }\n" 805 " }\n"
806 " ]\n" 806 " ]\n"
807 "}"; 807 "}";
808 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 808 Version os_version("10.6.4");
809 809
810 content::GPUInfo gpu_info; 810 content::GPUInfo gpu_info;
811 gpu_info.amd_switchable = true; 811 gpu_info.amd_switchable = true;
812 812
813 scoped_ptr<GpuBlacklist> blacklist(Create()); 813 scoped_ptr<GpuBlacklist> blacklist(Create());
814 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 814 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
815 amd_switchable_json, GpuBlacklist::kAllOs)); 815 amd_switchable_json, GpuBlacklist::kAllOs));
816 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 816 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
817 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); 817 GpuBlacklist::kOsMacosx, &os_version, gpu_info);
818 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 818 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
819 } 819 }
820 820
821 TEST_F(GpuBlacklistTest, LexicalDriverVersion) { 821 TEST_F(GpuBlacklistTest, LexicalDriverVersion) {
822 const std::string lexical_json = 822 const std::string lexical_json =
823 "{\n" 823 "{\n"
824 " \"name\": \"gpu blacklist\",\n" 824 " \"name\": \"gpu blacklist\",\n"
825 " \"version\": \"0.1\",\n" 825 " \"version\": \"0.1\",\n"
826 " \"entries\": [\n" 826 " \"entries\": [\n"
827 " {\n" 827 " {\n"
828 " \"id\": 1,\n" 828 " \"id\": 1,\n"
829 " \"os\": {\n" 829 " \"os\": {\n"
830 " \"type\": \"linux\"\n" 830 " \"type\": \"linux\"\n"
831 " },\n" 831 " },\n"
832 " \"vendor_id\": \"0x1002\",\n" 832 " \"vendor_id\": \"0x1002\",\n"
833 " \"driver_version\": {\n" 833 " \"driver_version\": {\n"
834 " \"op\": \"<\",\n" 834 " \"op\": \"<\",\n"
835 " \"style\": \"lexical\",\n" 835 " \"style\": \"lexical\",\n"
836 " \"number\": \"8.201\"\n" 836 " \"number\": \"8.201\"\n"
837 " },\n" 837 " },\n"
838 " \"blacklist\": [\n" 838 " \"blacklist\": [\n"
839 " \"webgl\"\n" 839 " \"webgl\"\n"
840 " ]\n" 840 " ]\n"
841 " }\n" 841 " }\n"
842 " ]\n" 842 " ]\n"
843 "}"; 843 "}";
844 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 844 Version os_version("10.6.4");
845 845
846 content::GPUInfo gpu_info; 846 content::GPUInfo gpu_info;
847 gpu_info.gpu.vendor_id = 0x1002; 847 gpu_info.gpu.vendor_id = 0x1002;
848 848
849 scoped_ptr<GpuBlacklist> blacklist(Create()); 849 scoped_ptr<GpuBlacklist> blacklist(Create());
850 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 850 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
851 lexical_json, GpuBlacklist::kAllOs)); 851 lexical_json, GpuBlacklist::kAllOs));
852 852
853 gpu_info.driver_version = "8.109"; 853 gpu_info.driver_version = "8.109";
854 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 854 GpuFeatureType type = blacklist->DetermineGpuFeatureType(
855 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); 855 GpuBlacklist::kOsLinux, &os_version, gpu_info);
856 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 856 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
857 857
858 gpu_info.driver_version = "8.2"; 858 gpu_info.driver_version = "8.2";
859 type = blacklist->DetermineGpuFeatureType( 859 type = blacklist->DetermineGpuFeatureType(
860 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); 860 GpuBlacklist::kOsLinux, &os_version, gpu_info);
861 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 861 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
862 862
863 gpu_info.driver_version = "8.21"; 863 gpu_info.driver_version = "8.21";
864 type = blacklist->DetermineGpuFeatureType( 864 type = blacklist->DetermineGpuFeatureType(
865 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); 865 GpuBlacklist::kOsLinux, &os_version, gpu_info);
866 EXPECT_EQ(type, 0); 866 EXPECT_EQ(type, 0);
867 867
868 gpu_info.driver_version = "8.2010"; 868 gpu_info.driver_version = "8.2010";
869 type = blacklist->DetermineGpuFeatureType( 869 type = blacklist->DetermineGpuFeatureType(
870 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); 870 GpuBlacklist::kOsLinux, &os_version, gpu_info);
871 EXPECT_EQ(type, 0); 871 EXPECT_EQ(type, 0);
872 } 872 }
873
OLDNEW
« no previous file with comments | « chrome/browser/gpu_blacklist.cc ('k') | chrome/browser/gpu_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698