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

Side by Side Diff: content/browser/gpu/gpu_blacklist_unittest.cc

Issue 8670004: Move GPU preliminary info collection back to UI thread. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years 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 | « content/browser/gpu/gpu_blacklist.cc ('k') | content/gpu/gpu_info_collector_linux.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 .Append(FILE_PATH_LITERAL("software_rendering_list")) 52 .Append(FILE_PATH_LITERAL("software_rendering_list"))
53 .Append(FILE_PATH_LITERAL("software_rendering_list.json")); 53 .Append(FILE_PATH_LITERAL("software_rendering_list.json"));
54 ASSERT_TRUE(file_util::PathExists(data_file)); 54 ASSERT_TRUE(file_util::PathExists(data_file));
55 int64 data_file_size64 = 0; 55 int64 data_file_size64 = 0;
56 ASSERT_TRUE(file_util::GetFileSize(data_file, &data_file_size64)); 56 ASSERT_TRUE(file_util::GetFileSize(data_file, &data_file_size64));
57 int data_file_size = static_cast<int>(data_file_size64); 57 int data_file_size = static_cast<int>(data_file_size64);
58 scoped_array<char> data(new char[data_file_size]); 58 scoped_array<char> data(new char[data_file_size]);
59 ASSERT_EQ(file_util::ReadFile(data_file, data.get(), data_file_size), 59 ASSERT_EQ(file_util::ReadFile(data_file, data.get(), data_file_size),
60 data_file_size); 60 data_file_size);
61 std::string json_string(data.get(), data_file_size); 61 std::string json_string(data.get(), data_file_size);
62 GpuBlacklist blacklist("1.0 unknown"); 62 GpuBlacklist blacklist("1.0");
63 EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, GpuBlacklist::kAllOs)); 63 EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, GpuBlacklist::kAllOs));
64 EXPECT_FALSE(blacklist.contains_unknown_fields()); 64 EXPECT_FALSE(blacklist.contains_unknown_fields());
65 } 65 }
66 66
67 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) { 67 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) {
68 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 68 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
69 GpuBlacklist blacklist("1.0 unknown"); 69 GpuBlacklist blacklist("1.0");
70 // Default blacklist settings: all feature are allowed. 70 // Default blacklist settings: all feature are allowed.
71 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 71 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
72 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 72 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
73 EXPECT_EQ(flags.flags(), 0u); 73 EXPECT_EQ(flags.flags(), 0u);
74 } 74 }
75 75
76 TEST_F(GpuBlacklistTest, EmptyBlacklist) { 76 TEST_F(GpuBlacklistTest, EmptyBlacklist) {
77 // Empty list: all features are allowed. 77 // Empty list: all features are allowed.
78 const std::string empty_list_json = 78 const std::string empty_list_json =
79 "{\n" 79 "{\n"
80 " \"name\": \"gpu blacklist\",\n" 80 " \"name\": \"gpu blacklist\",\n"
81 " \"version\": \"2.5\",\n" 81 " \"version\": \"2.5\",\n"
82 " \"entries\": [\n" 82 " \"entries\": [\n"
83 " ]\n" 83 " ]\n"
84 "}"; 84 "}";
85 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 85 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
86 GpuBlacklist blacklist("1.0 unknown"); 86 GpuBlacklist blacklist("1.0");
87 87
88 EXPECT_TRUE( 88 EXPECT_TRUE(
89 blacklist.LoadGpuBlacklist(empty_list_json, GpuBlacklist::kAllOs)); 89 blacklist.LoadGpuBlacklist(empty_list_json, GpuBlacklist::kAllOs));
90 uint16 major, minor; 90 uint16 major, minor;
91 EXPECT_TRUE(blacklist.GetVersion(&major, &minor)); 91 EXPECT_TRUE(blacklist.GetVersion(&major, &minor));
92 EXPECT_EQ(major, 2u); 92 EXPECT_EQ(major, 2u);
93 EXPECT_EQ(minor, 5u); 93 EXPECT_EQ(minor, 5u);
94 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 94 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
95 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 95 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
96 EXPECT_EQ(flags.flags(), 0u); 96 EXPECT_EQ(flags.flags(), 0u);
(...skipping 21 matching lines...) Expand all
118 " \"op\": \"=\",\n" 118 " \"op\": \"=\",\n"
119 " \"number\": \"1.6.18\"\n" 119 " \"number\": \"1.6.18\"\n"
120 " },\n" 120 " },\n"
121 " \"blacklist\": [\n" 121 " \"blacklist\": [\n"
122 " \"accelerated_compositing\"\n" 122 " \"accelerated_compositing\"\n"
123 " ]\n" 123 " ]\n"
124 " }\n" 124 " }\n"
125 " ]\n" 125 " ]\n"
126 "}"; 126 "}";
127 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 127 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
128 GpuBlacklist blacklist("1.0 unknown"); 128 GpuBlacklist blacklist("1.0");
129 129
130 EXPECT_TRUE( 130 EXPECT_TRUE(
131 blacklist.LoadGpuBlacklist(exact_list_json, GpuBlacklist::kAllOs)); 131 blacklist.LoadGpuBlacklist(exact_list_json, GpuBlacklist::kAllOs));
132 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 132 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
133 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 133 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
134 EXPECT_EQ( 134 EXPECT_EQ(
135 flags.flags(), 135 flags.flags(),
136 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)); 136 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing));
137 137
138 // Invalid json input should not change the current blacklist settings. 138 // Invalid json input should not change the current blacklist settings.
(...skipping 28 matching lines...) Expand all
167 " {\n" 167 " {\n"
168 " \"id\": 1,\n" 168 " \"id\": 1,\n"
169 " \"vendor_id\": \"0x10de\",\n" 169 " \"vendor_id\": \"0x10de\",\n"
170 " \"blacklist\": [\n" 170 " \"blacklist\": [\n"
171 " \"webgl\"\n" 171 " \"webgl\"\n"
172 " ]\n" 172 " ]\n"
173 " }\n" 173 " }\n"
174 " ]\n" 174 " ]\n"
175 "}"; 175 "}";
176 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 176 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
177 GpuBlacklist blacklist("1.0 unknown"); 177 GpuBlacklist blacklist("1.0");
178 178
179 // Blacklist entries won't be filtered to the current OS only upon loading. 179 // Blacklist entries won't be filtered to the current OS only upon loading.
180 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kAllOs)); 180 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kAllOs));
181 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 181 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
182 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 182 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
183 EXPECT_EQ(flags.flags(), 183 EXPECT_EQ(flags.flags(),
184 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 184 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
185 flags = blacklist.DetermineGpuFeatureFlags( 185 flags = blacklist.DetermineGpuFeatureFlags(
186 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 186 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
187 EXPECT_EQ(flags.flags(), 187 EXPECT_EQ(flags.flags(),
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
233 GpuBlacklist blacklist("1.0 unknown"); 233 GpuBlacklist blacklist("1.0");
234 234
235 EXPECT_TRUE( 235 EXPECT_TRUE(
236 blacklist.LoadGpuBlacklist(vendor_linux_json, GpuBlacklist::kAllOs)); 236 blacklist.LoadGpuBlacklist(vendor_linux_json, GpuBlacklist::kAllOs));
237 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 237 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
238 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 238 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
239 EXPECT_EQ(flags.flags(), 0u); 239 EXPECT_EQ(flags.flags(), 0u);
240 flags = blacklist.DetermineGpuFeatureFlags( 240 flags = blacklist.DetermineGpuFeatureFlags(
241 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 241 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
242 EXPECT_EQ(flags.flags(), 0u); 242 EXPECT_EQ(flags.flags(), 0u);
243 flags = blacklist.DetermineGpuFeatureFlags( 243 flags = blacklist.DetermineGpuFeatureFlags(
(...skipping 20 matching lines...) Expand all
264 " \"vendor_id\": \"0x10de\"\n" 264 " \"vendor_id\": \"0x10de\"\n"
265 " }\n" 265 " }\n"
266 " ],\n" 266 " ],\n"
267 " \"blacklist\": [\n" 267 " \"blacklist\": [\n"
268 " \"accelerated_2d_canvas\"\n" 268 " \"accelerated_2d_canvas\"\n"
269 " ]\n" 269 " ]\n"
270 " }\n" 270 " }\n"
271 " ]\n" 271 " ]\n"
272 "}"; 272 "}";
273 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 273 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
274 GpuBlacklist blacklist("1.0 unknown"); 274 GpuBlacklist blacklist("1.0");
275 275
276 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, 276 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json,
277 GpuBlacklist::kAllOs)); 277 GpuBlacklist::kAllOs));
278 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 278 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
279 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 279 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
280 EXPECT_EQ(flags.flags(), 0u); 280 EXPECT_EQ(flags.flags(), 0u);
281 flags = blacklist.DetermineGpuFeatureFlags( 281 flags = blacklist.DetermineGpuFeatureFlags(
282 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 282 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
283 EXPECT_EQ(flags.flags(), 0u); 283 EXPECT_EQ(flags.flags(), 0u);
284 flags = blacklist.DetermineGpuFeatureFlags( 284 flags = blacklist.DetermineGpuFeatureFlags(
(...skipping 18 matching lines...) Expand all
303 " \"vendor_id\": \"0x8086\"\n" 303 " \"vendor_id\": \"0x8086\"\n"
304 " }\n" 304 " }\n"
305 " ],\n" 305 " ],\n"
306 " \"blacklist\": [\n" 306 " \"blacklist\": [\n"
307 " \"accelerated_2d_canvas\"\n" 307 " \"accelerated_2d_canvas\"\n"
308 " ]\n" 308 " ]\n"
309 " }\n" 309 " }\n"
310 " ]\n" 310 " ]\n"
311 "}"; 311 "}";
312 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 312 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
313 GpuBlacklist blacklist("1.0 unknown"); 313 GpuBlacklist blacklist("1.0");
314 314
315 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, 315 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json,
316 GpuBlacklist::kAllOs)); 316 GpuBlacklist::kAllOs));
317 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 317 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
318 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 318 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
319 EXPECT_EQ(flags.flags(), 0u); 319 EXPECT_EQ(flags.flags(), 0u);
320 flags = blacklist.DetermineGpuFeatureFlags( 320 flags = blacklist.DetermineGpuFeatureFlags(
321 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 321 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
322 EXPECT_EQ(flags.flags(), 0u); 322 EXPECT_EQ(flags.flags(), 0u);
323 flags = blacklist.DetermineGpuFeatureFlags( 323 flags = blacklist.DetermineGpuFeatureFlags(
(...skipping 19 matching lines...) Expand all
343 " \"op\": \"<\",\n" 343 " \"op\": \"<\",\n"
344 " \"number\": \"2010.1\"\n" 344 " \"number\": \"2010.1\"\n"
345 " },\n" 345 " },\n"
346 " \"blacklist\": [\n" 346 " \"blacklist\": [\n"
347 " \"accelerated_2d_canvas\"\n" 347 " \"accelerated_2d_canvas\"\n"
348 " ]\n" 348 " ]\n"
349 " }\n" 349 " }\n"
350 " ]\n" 350 " ]\n"
351 "}"; 351 "}";
352 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 352 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
353 GpuBlacklist blacklist("1.0 unknown"); 353 GpuBlacklist blacklist("1.0");
354 354
355 EXPECT_TRUE( 355 EXPECT_TRUE(
356 blacklist.LoadGpuBlacklist(date_windows_json, GpuBlacklist::kAllOs)); 356 blacklist.LoadGpuBlacklist(date_windows_json, GpuBlacklist::kAllOs));
357 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 357 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
358 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 358 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
359 EXPECT_EQ(flags.flags(), 0u); 359 EXPECT_EQ(flags.flags(), 0u);
360 flags = blacklist.DetermineGpuFeatureFlags( 360 flags = blacklist.DetermineGpuFeatureFlags(
361 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 361 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
362 EXPECT_EQ(flags.flags(), 0u); 362 EXPECT_EQ(flags.flags(), 0u);
363 flags = blacklist.DetermineGpuFeatureFlags( 363 flags = blacklist.DetermineGpuFeatureFlags(
(...skipping 13 matching lines...) Expand all
377 " \"id\": 1,\n" 377 " \"id\": 1,\n"
378 " \"vendor_id\": \"0x10de\",\n" 378 " \"vendor_id\": \"0x10de\",\n"
379 " \"device_id\": [\"0x1023\", \"0x0640\"],\n" 379 " \"device_id\": [\"0x1023\", \"0x0640\"],\n"
380 " \"blacklist\": [\n" 380 " \"blacklist\": [\n"
381 " \"multisampling\"\n" 381 " \"multisampling\"\n"
382 " ]\n" 382 " ]\n"
383 " }\n" 383 " }\n"
384 " ]\n" 384 " ]\n"
385 "}"; 385 "}";
386 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 386 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
387 GpuBlacklist blacklist("1.0 unknown"); 387 GpuBlacklist blacklist("1.0");
388 388
389 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs)); 389 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs));
390 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 390 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
391 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 391 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
392 EXPECT_EQ(flags.flags(), 392 EXPECT_EQ(flags.flags(),
393 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling)); 393 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling));
394 flags = blacklist.DetermineGpuFeatureFlags( 394 flags = blacklist.DetermineGpuFeatureFlags(
395 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 395 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
396 EXPECT_EQ(flags.flags(), 396 EXPECT_EQ(flags.flags(),
397 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling)); 397 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling));
(...skipping 14 matching lines...) Expand all
412 " \"os\": {\n" 412 " \"os\": {\n"
413 " \"type\": \"chromeos\"\n" 413 " \"type\": \"chromeos\"\n"
414 " },\n" 414 " },\n"
415 " \"blacklist\": [\n" 415 " \"blacklist\": [\n"
416 " \"webgl\"\n" 416 " \"webgl\"\n"
417 " ]\n" 417 " ]\n"
418 " }\n" 418 " }\n"
419 " ]\n" 419 " ]\n"
420 "}"; 420 "}";
421 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 421 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
422 GpuBlacklist blacklist("1.0 unknown"); 422 GpuBlacklist blacklist("1.0");
423 423
424 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs)); 424 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs));
425 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 425 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
426 GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info()); 426 GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info());
427 EXPECT_EQ(flags.flags(), 427 EXPECT_EQ(flags.flags(),
428 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 428 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
429 flags = blacklist.DetermineGpuFeatureFlags( 429 flags = blacklist.DetermineGpuFeatureFlags(
430 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 430 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
431 EXPECT_EQ(flags.flags(), 0u); 431 EXPECT_EQ(flags.flags(), 0u);
432 } 432 }
(...skipping 11 matching lines...) Expand all
444 " \"number\": \"10\"\n" 444 " \"number\": \"10\"\n"
445 " },\n" 445 " },\n"
446 " \"blacklist\": [\n" 446 " \"blacklist\": [\n"
447 " \"webgl\"\n" 447 " \"webgl\"\n"
448 " ]\n" 448 " ]\n"
449 " }\n" 449 " }\n"
450 " ]\n" 450 " ]\n"
451 "}"; 451 "}";
452 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 452 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
453 453
454 GpuBlacklist blacklist9("9.0 unknown"); 454 GpuBlacklist blacklist9("9.0");
455 EXPECT_TRUE( 455 EXPECT_TRUE(
456 blacklist9.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs)); 456 blacklist9.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs));
457 GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags( 457 GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags(
458 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 458 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
459 EXPECT_EQ(flags.flags(), 0u); 459 EXPECT_EQ(flags.flags(), 0u);
460 460
461 GpuBlacklist blacklist10("10.0 unknown"); 461 GpuBlacklist blacklist10("10.0");
462 EXPECT_TRUE( 462 EXPECT_TRUE(
463 blacklist10.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs)); 463 blacklist10.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs));
464 flags = blacklist10.DetermineGpuFeatureFlags( 464 flags = blacklist10.DetermineGpuFeatureFlags(
465 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 465 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
466 EXPECT_EQ(flags.flags(), 466 EXPECT_EQ(flags.flags(),
467 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 467 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
468 } 468 }
469 469
470 TEST_F(GpuBlacklistTest, MalformedVendor) { 470 TEST_F(GpuBlacklistTest, MalformedVendor) {
471 // vendor_id is defined as list instead of string. 471 // vendor_id is defined as list instead of string.
472 const std::string malformed_vendor_json = 472 const std::string malformed_vendor_json =
473 "{\n" 473 "{\n"
474 " \"name\": \"gpu blacklist\",\n" 474 " \"name\": \"gpu blacklist\",\n"
475 " \"version\": \"0.1\",\n" 475 " \"version\": \"0.1\",\n"
476 " \"entries\": [\n" 476 " \"entries\": [\n"
477 " {\n" 477 " {\n"
478 " \"id\": 1,\n" 478 " \"id\": 1,\n"
479 " \"vendor_id\": \"[0x10de]\",\n" 479 " \"vendor_id\": \"[0x10de]\",\n"
480 " \"blacklist\": [\n" 480 " \"blacklist\": [\n"
481 " \"accelerated_2d_canvas\"\n" 481 " \"accelerated_2d_canvas\"\n"
482 " ]\n" 482 " ]\n"
483 " }\n" 483 " }\n"
484 " ]\n" 484 " ]\n"
485 "}"; 485 "}";
486 GpuBlacklist blacklist("1.0 unknown"); 486 GpuBlacklist blacklist("1.0");
487 487
488 EXPECT_FALSE( 488 EXPECT_FALSE(
489 blacklist.LoadGpuBlacklist(malformed_vendor_json, GpuBlacklist::kAllOs)); 489 blacklist.LoadGpuBlacklist(malformed_vendor_json, GpuBlacklist::kAllOs));
490 } 490 }
491 491
492 TEST_F(GpuBlacklistTest, UnknownField) { 492 TEST_F(GpuBlacklistTest, UnknownField) {
493 const std::string unknown_field_json = 493 const std::string unknown_field_json =
494 "{\n" 494 "{\n"
495 " \"name\": \"gpu blacklist\",\n" 495 " \"name\": \"gpu blacklist\",\n"
496 " \"version\": \"0.1\",\n" 496 " \"version\": \"0.1\",\n"
497 " \"entries\": [\n" 497 " \"entries\": [\n"
498 " {\n" 498 " {\n"
499 " \"id\": 1,\n" 499 " \"id\": 1,\n"
500 " \"unknown_field\": 0,\n" 500 " \"unknown_field\": 0,\n"
501 " \"blacklist\": [\n" 501 " \"blacklist\": [\n"
502 " \"accelerated_2d_canvas\"\n" 502 " \"accelerated_2d_canvas\"\n"
503 " ]\n" 503 " ]\n"
504 " },\n" 504 " },\n"
505 " {\n" 505 " {\n"
506 " \"id\": 2,\n" 506 " \"id\": 2,\n"
507 " \"blacklist\": [\n" 507 " \"blacklist\": [\n"
508 " \"webgl\"\n" 508 " \"webgl\"\n"
509 " ]\n" 509 " ]\n"
510 " }\n" 510 " }\n"
511 " ]\n" 511 " ]\n"
512 "}"; 512 "}";
513 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 513 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
514 GpuBlacklist blacklist("1.0 unknown"); 514 GpuBlacklist blacklist("1.0");
515 515
516 EXPECT_TRUE( 516 EXPECT_TRUE(
517 blacklist.LoadGpuBlacklist(unknown_field_json, GpuBlacklist::kAllOs)); 517 blacklist.LoadGpuBlacklist(unknown_field_json, GpuBlacklist::kAllOs));
518 EXPECT_EQ(1u, blacklist.num_entries()); 518 EXPECT_EQ(1u, blacklist.num_entries());
519 EXPECT_TRUE(blacklist.contains_unknown_fields()); 519 EXPECT_TRUE(blacklist.contains_unknown_fields());
520 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 520 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
521 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 521 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
522 EXPECT_EQ(flags.flags(), 522 EXPECT_EQ(flags.flags(),
523 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 523 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
524 } 524 }
(...skipping 24 matching lines...) Expand all
549 " },\n" 549 " },\n"
550 " {\n" 550 " {\n"
551 " \"id\": 3,\n" 551 " \"id\": 3,\n"
552 " \"blacklist\": [\n" 552 " \"blacklist\": [\n"
553 " \"webgl\"\n" 553 " \"webgl\"\n"
554 " ]\n" 554 " ]\n"
555 " }\n" 555 " }\n"
556 " ]\n" 556 " ]\n"
557 "}"; 557 "}";
558 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 558 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
559 GpuBlacklist blacklist("1.0 unknown"); 559 GpuBlacklist blacklist("1.0");
560 560
561 EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json, 561 EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
562 GpuBlacklist::kAllOs)); 562 GpuBlacklist::kAllOs));
563 EXPECT_EQ(1u, blacklist.num_entries()); 563 EXPECT_EQ(1u, blacklist.num_entries());
564 EXPECT_TRUE(blacklist.contains_unknown_fields()); 564 EXPECT_TRUE(blacklist.contains_unknown_fields());
565 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 565 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
566 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 566 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
567 EXPECT_EQ(flags.flags(), 567 EXPECT_EQ(flags.flags(),
568 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 568 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
569 } 569 }
570 570
571 TEST_F(GpuBlacklistTest, UnknownFeature) { 571 TEST_F(GpuBlacklistTest, UnknownFeature) {
572 const std::string unknown_feature_json = 572 const std::string unknown_feature_json =
573 "{\n" 573 "{\n"
574 " \"name\": \"gpu blacklist\",\n" 574 " \"name\": \"gpu blacklist\",\n"
575 " \"version\": \"0.1\",\n" 575 " \"version\": \"0.1\",\n"
576 " \"entries\": [\n" 576 " \"entries\": [\n"
577 " {\n" 577 " {\n"
578 " \"id\": 1,\n" 578 " \"id\": 1,\n"
579 " \"blacklist\": [\n" 579 " \"blacklist\": [\n"
580 " \"accelerated_something\",\n" 580 " \"accelerated_something\",\n"
581 " \"webgl\"\n" 581 " \"webgl\"\n"
582 " ]\n" 582 " ]\n"
583 " }\n" 583 " }\n"
584 " ]\n" 584 " ]\n"
585 "}"; 585 "}";
586 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 586 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
587 GpuBlacklist blacklist("1.0 unknown"); 587 GpuBlacklist blacklist("1.0");
588 588
589 EXPECT_TRUE( 589 EXPECT_TRUE(
590 blacklist.LoadGpuBlacklist(unknown_feature_json, GpuBlacklist::kAllOs)); 590 blacklist.LoadGpuBlacklist(unknown_feature_json, GpuBlacklist::kAllOs));
591 EXPECT_EQ(1u, blacklist.num_entries()); 591 EXPECT_EQ(1u, blacklist.num_entries());
592 EXPECT_TRUE(blacklist.contains_unknown_fields()); 592 EXPECT_TRUE(blacklist.contains_unknown_fields());
593 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 593 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
594 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 594 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
595 EXPECT_EQ(flags.flags(), 595 EXPECT_EQ(flags.flags(),
596 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 596 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
597 } 597 }
598 598
599 TEST_F(GpuBlacklistTest, BrowserChannels) {
600 const std::string browser_channels_json =
601 "{\n"
602 " \"name\": \"gpu blacklist\",\n"
603 " \"version\": \"0.1\",\n"
604 " \"entries\": [\n"
605 " {\n"
606 " \"id\": 1,\n"
607 " \"browser_channels\": [\n"
608 " \"canary\""
609 " ],\n"
610 " \"blacklist\": [\n"
611 " \"webgl\"\n"
612 " ]\n"
613 " }\n"
614 " ]\n"
615 "}";
616 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
617
618 GpuBlacklist blacklist_canary("1.0 canary");
619 EXPECT_TRUE(blacklist_canary.LoadGpuBlacklist(browser_channels_json,
620 GpuBlacklist::kAllOs));
621 GpuFeatureFlags flags_canary = blacklist_canary.DetermineGpuFeatureFlags(
622 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
623 EXPECT_EQ(flags_canary.flags(),
624 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
625
626 GpuBlacklist blacklist_dev("1.0 dev");
627 EXPECT_TRUE(blacklist_dev.LoadGpuBlacklist(browser_channels_json,
628 GpuBlacklist::kAllOs));
629 GpuFeatureFlags flags_dev = blacklist_dev.DetermineGpuFeatureFlags(
630 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
631 EXPECT_EQ(flags_dev.flags(), 0u);
632 }
633
634 TEST_F(GpuBlacklistTest, BrowserChannelsInException) {
635 const std::string browser_channels_json =
636 "{\n"
637 " \"name\": \"gpu blacklist\",\n"
638 " \"version\": \"0.1\",\n"
639 " \"entries\": [\n"
640 " {\n"
641 " \"id\": 1,\n"
642 " \"exceptions\": [\n"
643 " {\n"
644 " \"browser_channels\": [\n"
645 " \"canary\""
646 " ]\n"
647 " }\n"
648 " ],\n"
649 " \"blacklist\": [\n"
650 " \"webgl\"\n"
651 " ]\n"
652 " }\n"
653 " ]\n"
654 "}";
655 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
656
657 GpuBlacklist blacklist_canary("1.0 canary");
658 EXPECT_TRUE(blacklist_canary.LoadGpuBlacklist(browser_channels_json,
659 GpuBlacklist::kAllOs));
660 GpuFeatureFlags flags_canary = blacklist_canary.DetermineGpuFeatureFlags(
661 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
662 EXPECT_EQ(flags_canary.flags(), 0u);
663
664 GpuBlacklist blacklist_dev("1.0 dev");
665 EXPECT_TRUE(blacklist_dev.LoadGpuBlacklist(browser_channels_json,
666 GpuBlacklist::kAllOs));
667 GpuFeatureFlags flags_dev = blacklist_dev.DetermineGpuFeatureFlags(
668 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
669 EXPECT_EQ(flags_dev.flags(),
670 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
671 }
672
673 TEST_F(GpuBlacklistTest, GlVendor) { 599 TEST_F(GpuBlacklistTest, GlVendor) {
674 const std::string gl_vendor_json = 600 const std::string gl_vendor_json =
675 "{\n" 601 "{\n"
676 " \"name\": \"gpu blacklist\",\n" 602 " \"name\": \"gpu blacklist\",\n"
677 " \"version\": \"0.1\",\n" 603 " \"version\": \"0.1\",\n"
678 " \"entries\": [\n" 604 " \"entries\": [\n"
679 " {\n" 605 " {\n"
680 " \"id\": 1,\n" 606 " \"id\": 1,\n"
681 " \"gl_vendor\": {\n" 607 " \"gl_vendor\": {\n"
682 " \"op\": \"beginwith\",\n" 608 " \"op\": \"beginwith\",\n"
683 " \"value\": \"NVIDIA\"\n" 609 " \"value\": \"NVIDIA\"\n"
684 " },\n" 610 " },\n"
685 " \"blacklist\": [\n" 611 " \"blacklist\": [\n"
686 " \"webgl\"\n" 612 " \"webgl\"\n"
687 " ]\n" 613 " ]\n"
688 " }\n" 614 " }\n"
689 " ]\n" 615 " ]\n"
690 "}"; 616 "}";
691 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 617 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
692 618
693 GpuBlacklist blacklist("1.0 unknown"); 619 GpuBlacklist blacklist("1.0");
694 EXPECT_TRUE( 620 EXPECT_TRUE(
695 blacklist.LoadGpuBlacklist(gl_vendor_json, GpuBlacklist::kAllOs)); 621 blacklist.LoadGpuBlacklist(gl_vendor_json, GpuBlacklist::kAllOs));
696 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 622 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
697 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 623 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
698 EXPECT_EQ(flags.flags(), 624 EXPECT_EQ(flags.flags(),
699 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 625 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
700 } 626 }
701 627
702 TEST_F(GpuBlacklistTest, GlRenderer) { 628 TEST_F(GpuBlacklistTest, GlRenderer) {
703 const std::string gl_renderer_json = 629 const std::string gl_renderer_json =
704 "{\n" 630 "{\n"
705 " \"name\": \"gpu blacklist\",\n" 631 " \"name\": \"gpu blacklist\",\n"
706 " \"version\": \"0.1\",\n" 632 " \"version\": \"0.1\",\n"
707 " \"entries\": [\n" 633 " \"entries\": [\n"
708 " {\n" 634 " {\n"
709 " \"id\": 1,\n" 635 " \"id\": 1,\n"
710 " \"gl_renderer\": {\n" 636 " \"gl_renderer\": {\n"
711 " \"op\": \"contains\",\n" 637 " \"op\": \"contains\",\n"
712 " \"value\": \"GeForce\"\n" 638 " \"value\": \"GeForce\"\n"
713 " },\n" 639 " },\n"
714 " \"blacklist\": [\n" 640 " \"blacklist\": [\n"
715 " \"webgl\"\n" 641 " \"webgl\"\n"
716 " ]\n" 642 " ]\n"
717 " }\n" 643 " }\n"
718 " ]\n" 644 " ]\n"
719 "}"; 645 "}";
720 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 646 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
721 647
722 GpuBlacklist blacklist("1.0 unknown"); 648 GpuBlacklist blacklist("1.0");
723 EXPECT_TRUE( 649 EXPECT_TRUE(
724 blacklist.LoadGpuBlacklist(gl_renderer_json, GpuBlacklist::kAllOs)); 650 blacklist.LoadGpuBlacklist(gl_renderer_json, GpuBlacklist::kAllOs));
725 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 651 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
726 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 652 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
727 EXPECT_EQ(flags.flags(), 653 EXPECT_EQ(flags.flags(),
728 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 654 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
729 } 655 }
730 656
731 TEST_F(GpuBlacklistTest, DisabledEntry) { 657 TEST_F(GpuBlacklistTest, DisabledEntry) {
732 const std::string disabled_json = 658 const std::string disabled_json =
733 "{\n" 659 "{\n"
734 " \"name\": \"gpu blacklist\",\n" 660 " \"name\": \"gpu blacklist\",\n"
735 " \"version\": \"0.1\",\n" 661 " \"version\": \"0.1\",\n"
736 " \"entries\": [\n" 662 " \"entries\": [\n"
737 " {\n" 663 " {\n"
738 " \"id\": 1,\n" 664 " \"id\": 1,\n"
739 " \"disabled\": true,\n" 665 " \"disabled\": true,\n"
740 " \"blacklist\": [\n" 666 " \"blacklist\": [\n"
741 " \"webgl\"\n" 667 " \"webgl\"\n"
742 " ]\n" 668 " ]\n"
743 " }\n" 669 " }\n"
744 " ]\n" 670 " ]\n"
745 "}"; 671 "}";
746 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 672 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
747 673
748 GpuBlacklist blacklist("1.0 unknown"); 674 GpuBlacklist blacklist("1.0");
749 EXPECT_TRUE( 675 EXPECT_TRUE(
750 blacklist.LoadGpuBlacklist(disabled_json, GpuBlacklist::kAllOs)); 676 blacklist.LoadGpuBlacklist(disabled_json, GpuBlacklist::kAllOs));
751 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 677 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
752 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 678 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
753 EXPECT_EQ(flags.flags(), 0u); 679 EXPECT_EQ(flags.flags(), 0u);
754 std::vector<uint32> flag_entries; 680 std::vector<uint32> flag_entries;
755 bool disabled = false; 681 bool disabled = false;
756 blacklist.GetGpuFeatureFlagEntries( 682 blacklist.GetGpuFeatureFlagEntries(
757 GpuFeatureFlags::kGpuFeatureAll, flag_entries, disabled); 683 GpuFeatureFlags::kGpuFeatureAll, flag_entries, disabled);
758 EXPECT_EQ(flag_entries.size(), 0u); 684 EXPECT_EQ(flag_entries.size(), 0u);
759 disabled = true; 685 disabled = true;
760 blacklist.GetGpuFeatureFlagEntries( 686 blacklist.GetGpuFeatureFlagEntries(
761 GpuFeatureFlags::kGpuFeatureAll, flag_entries, disabled); 687 GpuFeatureFlags::kGpuFeatureAll, flag_entries, disabled);
762 EXPECT_EQ(flag_entries.size(), 1u); 688 EXPECT_EQ(flag_entries.size(), 1u);
763 } 689 }
764 690
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_blacklist.cc ('k') | content/gpu/gpu_info_collector_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698