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

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

Issue 7633038: Relax software rendering list parsing. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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
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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 .Append(FILE_PATH_LITERAL("software_rendering_list.json")); 50 .Append(FILE_PATH_LITERAL("software_rendering_list.json"));
51 ASSERT_TRUE(file_util::PathExists(data_file)); 51 ASSERT_TRUE(file_util::PathExists(data_file));
52 int64 data_file_size64 = 0; 52 int64 data_file_size64 = 0;
53 ASSERT_TRUE(file_util::GetFileSize(data_file, &data_file_size64)); 53 ASSERT_TRUE(file_util::GetFileSize(data_file, &data_file_size64));
54 int data_file_size = static_cast<int>(data_file_size64); 54 int data_file_size = static_cast<int>(data_file_size64);
55 scoped_array<char> data(new char[data_file_size]); 55 scoped_array<char> data(new char[data_file_size]);
56 ASSERT_EQ(file_util::ReadFile(data_file, data.get(), data_file_size), 56 ASSERT_EQ(file_util::ReadFile(data_file, data.get(), data_file_size),
57 data_file_size); 57 data_file_size);
58 std::string json_string(data.get(), data_file_size); 58 std::string json_string(data.get(), data_file_size);
59 GpuBlacklist blacklist("1.0"); 59 GpuBlacklist blacklist("1.0");
60 EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, true)); 60 EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string,
61 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
61 } 62 }
62 63
63 TEST_F(GpuBlacklistTest, DeafaultBlacklistSettings) { 64 TEST_F(GpuBlacklistTest, DeafaultBlacklistSettings) {
64 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 65 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
65 GpuBlacklist blacklist("1.0"); 66 GpuBlacklist blacklist("1.0");
66 // Default blacklist settings: all feature are allowed. 67 // Default blacklist settings: all feature are allowed.
67 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 68 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
68 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 69 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
69 EXPECT_EQ(flags.flags(), 0u); 70 EXPECT_EQ(flags.flags(), 0u);
70 } 71 }
71 72
72 TEST_F(GpuBlacklistTest, EmptyBlacklist) { 73 TEST_F(GpuBlacklistTest, EmptyBlacklist) {
73 // Empty list: all features are allowed. 74 // Empty list: all features are allowed.
74 const std::string empty_list_json = 75 const std::string empty_list_json =
75 "{\n" 76 "{\n"
76 " \"name\": \"gpu blacklist\",\n" 77 " \"name\": \"gpu blacklist\",\n"
77 " \"version\": \"2.5\",\n" 78 " \"version\": \"2.5\",\n"
78 " \"entries\": [\n" 79 " \"entries\": [\n"
79 " ]\n" 80 " ]\n"
80 "}"; 81 "}";
81 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 82 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
82 GpuBlacklist blacklist("1.0"); 83 GpuBlacklist blacklist("1.0");
83 84
84 EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json, false)); 85 EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json,
86 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
85 uint16 major, minor; 87 uint16 major, minor;
86 EXPECT_TRUE(blacklist.GetVersion(&major, &minor)); 88 EXPECT_TRUE(blacklist.GetVersion(&major, &minor));
87 EXPECT_EQ(major, 2u); 89 EXPECT_EQ(major, 2u);
88 EXPECT_EQ(minor, 5u); 90 EXPECT_EQ(minor, 5u);
89 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 91 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
90 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 92 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
91 EXPECT_EQ(flags.flags(), 0u); 93 EXPECT_EQ(flags.flags(), 0u);
92 } 94 }
93 95
94 TEST_F(GpuBlacklistTest, DetailedEntryAndInvalidJson) { 96 TEST_F(GpuBlacklistTest, DetailedEntryAndInvalidJson) {
(...skipping 20 matching lines...) Expand all
115 " },\n" 117 " },\n"
116 " \"blacklist\": [\n" 118 " \"blacklist\": [\n"
117 " \"accelerated_compositing\"\n" 119 " \"accelerated_compositing\"\n"
118 " ]\n" 120 " ]\n"
119 " }\n" 121 " }\n"
120 " ]\n" 122 " ]\n"
121 "}"; 123 "}";
122 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 124 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
123 GpuBlacklist blacklist("1.0"); 125 GpuBlacklist blacklist("1.0");
124 126
125 EXPECT_TRUE(blacklist.LoadGpuBlacklist(exact_list_json, false)); 127 EXPECT_TRUE(blacklist.LoadGpuBlacklist(exact_list_json,
128 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
126 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 129 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
127 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 130 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
128 EXPECT_EQ( 131 EXPECT_EQ(
129 flags.flags(), 132 flags.flags(),
130 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)); 133 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing));
131 134
132 // Invalid json input should not change the current blacklist settings. 135 // Invalid json input should not change the current blacklist settings.
133 const std::string invalid_json = "invalid"; 136 const std::string invalid_json = "invalid";
134 137
135 EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, false)); 138 EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json,
139 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
136 flags = blacklist.DetermineGpuFeatureFlags( 140 flags = blacklist.DetermineGpuFeatureFlags(
137 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 141 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
138 EXPECT_EQ( 142 EXPECT_EQ(
139 flags.flags(), 143 flags.flags(),
140 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)); 144 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing));
141 std::vector<uint32> entries; 145 std::vector<uint32> entries;
142 blacklist.GetGpuFeatureFlagEntries( 146 blacklist.GetGpuFeatureFlagEntries(
143 GpuFeatureFlags::kGpuFeatureAcceleratedCompositing, entries); 147 GpuFeatureFlags::kGpuFeatureAcceleratedCompositing, entries);
144 EXPECT_EQ(entries.size(), 1u); 148 EXPECT_EQ(entries.size(), 1u);
145 EXPECT_EQ(entries[0], 5u); 149 EXPECT_EQ(entries[0], 5u);
(...skipping 17 matching lines...) Expand all
163 " \"blacklist\": [\n" 167 " \"blacklist\": [\n"
164 " \"webgl\"\n" 168 " \"webgl\"\n"
165 " ]\n" 169 " ]\n"
166 " }\n" 170 " }\n"
167 " ]\n" 171 " ]\n"
168 "}"; 172 "}";
169 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 173 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
170 GpuBlacklist blacklist("1.0"); 174 GpuBlacklist blacklist("1.0");
171 175
172 // Blacklist entries won't be filtered to the current OS only upon loading. 176 // Blacklist entries won't be filtered to the current OS only upon loading.
173 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false)); 177 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json,
178 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
174 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 179 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
175 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 180 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
176 EXPECT_EQ(flags.flags(), 181 EXPECT_EQ(flags.flags(),
177 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 182 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
178 flags = blacklist.DetermineGpuFeatureFlags( 183 flags = blacklist.DetermineGpuFeatureFlags(
179 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 184 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
180 EXPECT_EQ(flags.flags(), 185 EXPECT_EQ(flags.flags(),
181 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 186 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
182 flags = blacklist.DetermineGpuFeatureFlags( 187 flags = blacklist.DetermineGpuFeatureFlags(
183 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 188 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
184 EXPECT_EQ(flags.flags(), 189 EXPECT_EQ(flags.flags(),
185 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 190 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
186 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) 191 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
187 // Blacklist entries will be filtered to the current OS only upon loading. 192 // Blacklist entries will be filtered to the current OS only upon loading.
188 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, true)); 193 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json,
194 GpuBlacklist::kCurrentOsOnly, GpuBlacklist::kFailOnUnknownField));
189 flags = blacklist.DetermineGpuFeatureFlags( 195 flags = blacklist.DetermineGpuFeatureFlags(
190 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 196 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
191 EXPECT_EQ(flags.flags(), 197 EXPECT_EQ(flags.flags(),
192 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 198 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
193 flags = blacklist.DetermineGpuFeatureFlags( 199 flags = blacklist.DetermineGpuFeatureFlags(
194 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 200 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
195 EXPECT_EQ(flags.flags(), 201 EXPECT_EQ(flags.flags(),
196 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 202 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
197 flags = blacklist.DetermineGpuFeatureFlags( 203 flags = blacklist.DetermineGpuFeatureFlags(
198 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 204 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
(...skipping 17 matching lines...) Expand all
216 " \"vendor_id\": \"0x10de\",\n" 222 " \"vendor_id\": \"0x10de\",\n"
217 " \"blacklist\": [\n" 223 " \"blacklist\": [\n"
218 " \"accelerated_2d_canvas\"\n" 224 " \"accelerated_2d_canvas\"\n"
219 " ]\n" 225 " ]\n"
220 " }\n" 226 " }\n"
221 " ]\n" 227 " ]\n"
222 "}"; 228 "}";
223 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 229 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
224 GpuBlacklist blacklist("1.0"); 230 GpuBlacklist blacklist("1.0");
225 231
226 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false)); 232 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json,
233 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
227 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 234 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
228 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 235 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
229 EXPECT_EQ(flags.flags(), 0u); 236 EXPECT_EQ(flags.flags(), 0u);
230 flags = blacklist.DetermineGpuFeatureFlags( 237 flags = blacklist.DetermineGpuFeatureFlags(
231 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 238 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
232 EXPECT_EQ(flags.flags(), 0u); 239 EXPECT_EQ(flags.flags(), 0u);
233 flags = blacklist.DetermineGpuFeatureFlags( 240 flags = blacklist.DetermineGpuFeatureFlags(
234 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 241 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
235 EXPECT_EQ( 242 EXPECT_EQ(
236 flags.flags(), 243 flags.flags(),
(...skipping 19 matching lines...) Expand all
256 " ],\n" 263 " ],\n"
257 " \"blacklist\": [\n" 264 " \"blacklist\": [\n"
258 " \"accelerated_2d_canvas\"\n" 265 " \"accelerated_2d_canvas\"\n"
259 " ]\n" 266 " ]\n"
260 " }\n" 267 " }\n"
261 " ]\n" 268 " ]\n"
262 "}"; 269 "}";
263 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 270 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
264 GpuBlacklist blacklist("1.0"); 271 GpuBlacklist blacklist("1.0");
265 272
266 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, false)); 273 EXPECT_TRUE(
274 blacklist.LoadGpuBlacklist(linux_except_nvidia_json,
275 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
267 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 276 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
268 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 277 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
269 EXPECT_EQ(flags.flags(), 0u); 278 EXPECT_EQ(flags.flags(), 0u);
270 flags = blacklist.DetermineGpuFeatureFlags( 279 flags = blacklist.DetermineGpuFeatureFlags(
271 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 280 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
272 EXPECT_EQ(flags.flags(), 0u); 281 EXPECT_EQ(flags.flags(), 0u);
273 flags = blacklist.DetermineGpuFeatureFlags( 282 flags = blacklist.DetermineGpuFeatureFlags(
274 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 283 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
275 EXPECT_EQ(flags.flags(), 0u); 284 EXPECT_EQ(flags.flags(), 0u);
276 } 285 }
(...skipping 17 matching lines...) Expand all
294 " ],\n" 303 " ],\n"
295 " \"blacklist\": [\n" 304 " \"blacklist\": [\n"
296 " \"accelerated_2d_canvas\"\n" 305 " \"accelerated_2d_canvas\"\n"
297 " ]\n" 306 " ]\n"
298 " }\n" 307 " }\n"
299 " ]\n" 308 " ]\n"
300 "}"; 309 "}";
301 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 310 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
302 GpuBlacklist blacklist("1.0"); 311 GpuBlacklist blacklist("1.0");
303 312
304 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, false)); 313 EXPECT_TRUE(
314 blacklist.LoadGpuBlacklist(linux_except_intel_json,
315 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
305 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 316 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
306 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 317 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
307 EXPECT_EQ(flags.flags(), 0u); 318 EXPECT_EQ(flags.flags(), 0u);
308 flags = blacklist.DetermineGpuFeatureFlags( 319 flags = blacklist.DetermineGpuFeatureFlags(
309 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 320 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
310 EXPECT_EQ(flags.flags(), 0u); 321 EXPECT_EQ(flags.flags(), 0u);
311 flags = blacklist.DetermineGpuFeatureFlags( 322 flags = blacklist.DetermineGpuFeatureFlags(
312 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 323 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
313 EXPECT_EQ( 324 EXPECT_EQ(
314 flags.flags(), 325 flags.flags(),
(...skipping 18 matching lines...) Expand all
333 " },\n" 344 " },\n"
334 " \"blacklist\": [\n" 345 " \"blacklist\": [\n"
335 " \"accelerated_2d_canvas\"\n" 346 " \"accelerated_2d_canvas\"\n"
336 " ]\n" 347 " ]\n"
337 " }\n" 348 " }\n"
338 " ]\n" 349 " ]\n"
339 "}"; 350 "}";
340 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 351 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
341 GpuBlacklist blacklist("1.0"); 352 GpuBlacklist blacklist("1.0");
342 353
343 EXPECT_TRUE(blacklist.LoadGpuBlacklist(date_windows_json, false)); 354 EXPECT_TRUE(blacklist.LoadGpuBlacklist(date_windows_json,
355 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
344 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 356 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
345 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 357 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
346 EXPECT_EQ(flags.flags(), 0u); 358 EXPECT_EQ(flags.flags(), 0u);
347 flags = blacklist.DetermineGpuFeatureFlags( 359 flags = blacklist.DetermineGpuFeatureFlags(
348 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 360 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
349 EXPECT_EQ(flags.flags(), 0u); 361 EXPECT_EQ(flags.flags(), 0u);
350 flags = blacklist.DetermineGpuFeatureFlags( 362 flags = blacklist.DetermineGpuFeatureFlags(
351 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 363 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
352 EXPECT_EQ( 364 EXPECT_EQ(
353 flags.flags(), 365 flags.flags(),
(...skipping 12 matching lines...) Expand all
366 " \"device_id\": [\"0x1023\", \"0x0640\"],\n" 378 " \"device_id\": [\"0x1023\", \"0x0640\"],\n"
367 " \"blacklist\": [\n" 379 " \"blacklist\": [\n"
368 " \"multisampling\"\n" 380 " \"multisampling\"\n"
369 " ]\n" 381 " ]\n"
370 " }\n" 382 " }\n"
371 " ]\n" 383 " ]\n"
372 "}"; 384 "}";
373 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 385 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
374 GpuBlacklist blacklist("1.0"); 386 GpuBlacklist blacklist("1.0");
375 387
376 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false)); 388 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json,
389 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
377 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 390 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
378 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 391 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
379 EXPECT_EQ(flags.flags(), 392 EXPECT_EQ(flags.flags(),
380 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling)); 393 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling));
381 flags = blacklist.DetermineGpuFeatureFlags( 394 flags = blacklist.DetermineGpuFeatureFlags(
382 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 395 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
383 EXPECT_EQ(flags.flags(), 396 EXPECT_EQ(flags.flags(),
384 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling)); 397 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling));
385 flags = blacklist.DetermineGpuFeatureFlags( 398 flags = blacklist.DetermineGpuFeatureFlags(
386 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 399 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
(...skipping 14 matching lines...) Expand all
401 " },\n" 414 " },\n"
402 " \"blacklist\": [\n" 415 " \"blacklist\": [\n"
403 " \"webgl\"\n" 416 " \"webgl\"\n"
404 " ]\n" 417 " ]\n"
405 " }\n" 418 " }\n"
406 " ]\n" 419 " ]\n"
407 "}"; 420 "}";
408 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 421 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
409 GpuBlacklist blacklist("1.0"); 422 GpuBlacklist blacklist("1.0");
410 423
411 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false)); 424 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json,
425 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
412 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 426 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
413 GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info()); 427 GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info());
414 EXPECT_EQ(flags.flags(), 428 EXPECT_EQ(flags.flags(),
415 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 429 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
416 flags = blacklist.DetermineGpuFeatureFlags( 430 flags = blacklist.DetermineGpuFeatureFlags(
417 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 431 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
418 EXPECT_EQ(flags.flags(), 0u); 432 EXPECT_EQ(flags.flags(), 0u);
419 } 433 }
420 434
421 TEST_F(GpuBlacklistTest, ChromeVersionEntry) { 435 TEST_F(GpuBlacklistTest, ChromeVersionEntry) {
(...skipping 10 matching lines...) Expand all
432 " },\n" 446 " },\n"
433 " \"blacklist\": [\n" 447 " \"blacklist\": [\n"
434 " \"webgl\"\n" 448 " \"webgl\"\n"
435 " ]\n" 449 " ]\n"
436 " }\n" 450 " }\n"
437 " ]\n" 451 " ]\n"
438 "}"; 452 "}";
439 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 453 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
440 454
441 GpuBlacklist blacklist9("9.0"); 455 GpuBlacklist blacklist9("9.0");
442 EXPECT_TRUE(blacklist9.LoadGpuBlacklist(browser_version_json, false)); 456 EXPECT_TRUE(blacklist9.LoadGpuBlacklist(browser_version_json,
457 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
443 GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags( 458 GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags(
444 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 459 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
445 EXPECT_EQ(flags.flags(), 0u); 460 EXPECT_EQ(flags.flags(), 0u);
446 461
447 GpuBlacklist blacklist10("10.0"); 462 GpuBlacklist blacklist10("10.0");
448 EXPECT_TRUE(blacklist10.LoadGpuBlacklist(browser_version_json, false)); 463 EXPECT_TRUE(blacklist10.LoadGpuBlacklist(browser_version_json,
464 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
449 flags = blacklist10.DetermineGpuFeatureFlags( 465 flags = blacklist10.DetermineGpuFeatureFlags(
450 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 466 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
451 EXPECT_EQ(flags.flags(), 467 EXPECT_EQ(flags.flags(),
452 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 468 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
453 } 469 }
454 470
455 TEST_F(GpuBlacklistTest, MalformedVendor) { 471 TEST_F(GpuBlacklistTest, MalformedVendor) {
456 // vendor_id is defined as list instead of string. 472 // vendor_id is defined as list instead of string.
457 const std::string malformed_vendor_json = 473 const std::string malformed_vendor_json =
458 "{\n" 474 "{\n"
459 " \"name\": \"gpu blacklist\",\n" 475 " \"name\": \"gpu blacklist\",\n"
460 " \"version\": \"0.1\",\n" 476 " \"version\": \"0.1\",\n"
461 " \"entries\": [\n" 477 " \"entries\": [\n"
462 " {\n" 478 " {\n"
463 " \"id\": 1,\n" 479 " \"id\": 1,\n"
464 " \"vendor_id\": \"[0x10de]\",\n" 480 " \"vendor_id\": \"[0x10de]\",\n"
465 " \"blacklist\": [\n" 481 " \"blacklist\": [\n"
466 " \"accelerated_2d_canvas\"\n" 482 " \"accelerated_2d_canvas\"\n"
467 " ]\n" 483 " ]\n"
468 " }\n" 484 " }\n"
469 " ]\n" 485 " ]\n"
470 "}"; 486 "}";
471 GpuBlacklist blacklist("1.0"); 487 GpuBlacklist blacklist("1.0");
472 488
473 EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json, false)); 489 EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json,
490 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
491 EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json,
492 GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreEntryWithUnknownField));
474 } 493 }
475 494
495 TEST_F(GpuBlacklistTest, UnknownField) {
496 const std::string unknown_field_json =
497 "{\n"
498 " \"name\": \"gpu blacklist\",\n"
499 " \"version\": \"0.1\",\n"
500 " \"entries\": [\n"
501 " {\n"
502 " \"id\": 1,\n"
503 " \"unknown_field\": 0,\n"
504 " \"blacklist\": [\n"
505 " \"accelerated_2d_canvas\"\n"
506 " ]\n"
507 " },\n"
508 " {\n"
509 " \"id\": 2,\n"
510 " \"blacklist\": [\n"
511 " \"accelerated_2d_canvas\"\n"
512 " ]\n"
513 " }\n"
514 " ]\n"
515 "}";
516 GpuBlacklist blacklist("1.0");
517
518 EXPECT_FALSE(blacklist.LoadGpuBlacklist(unknown_field_json,
519 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
520 EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_field_json,
521 GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreEntryWithUnknownField));
522 EXPECT_EQ(1u, blacklist.num_entries());
523 }
524
525 TEST_F(GpuBlacklistTest, UnknownExceptionField) {
526 const std::string unknown_exception_field_json =
527 "{\n"
528 " \"name\": \"gpu blacklist\",\n"
529 " \"version\": \"0.1\",\n"
530 " \"entries\": [\n"
531 " {\n"
532 " \"id\": 1,\n"
533 " \"unknown_field\": 0,\n"
534 " \"blacklist\": [\n"
535 " \"accelerated_2d_canvas\"\n"
536 " ]\n"
537 " },\n"
538 " {\n"
539 " \"id\": 2,\n"
540 " \"exceptions\": [\n"
541 " {\n"
542 " \"unknown_field\": 0\n"
543 " }\n"
544 " ],\n"
545 " \"blacklist\": [\n"
546 " \"accelerated_2d_canvas\"\n"
547 " ]\n"
548 " },\n"
549 " {\n"
550 " \"id\": 3,\n"
551 " \"blacklist\": [\n"
552 " \"accelerated_2d_canvas\"\n"
553 " ]\n"
554 " }\n"
555 " ]\n"
556 "}";
557 GpuBlacklist blacklist("1.0");
558
559 EXPECT_FALSE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
560 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
561 EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
562 GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreEntryWithUnknownField));
563 EXPECT_EQ(1u, blacklist.num_entries());
564 EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
565 GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreExceptionWithUnknownField));
566 EXPECT_EQ(2u, blacklist.num_entries());
567 }
568
569 TEST_F(GpuBlacklistTest, UnknownFeature) {
570 const std::string unknown_feature_json =
571 "{\n"
572 " \"name\": \"gpu blacklist\",\n"
573 " \"version\": \"0.1\",\n"
574 " \"entries\": [\n"
575 " {\n"
576 " \"id\": 1,\n"
577 " \"blacklist\": [\n"
578 " \"accelerated_something\"\n"
579 " ]\n"
580 " },\n"
581 " {\n"
582 " \"id\": 2,\n"
583 " \"blacklist\": [\n"
584 " \"accelerated_2d_canvas\"\n"
585 " ]\n"
586 " }\n"
587 " ]\n"
588 "}";
589 GpuBlacklist blacklist("1.0");
590
591 EXPECT_FALSE(blacklist.LoadGpuBlacklist(unknown_feature_json,
592 GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
593 EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_feature_json,
594 GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreEntryWithUnknownField));
595 EXPECT_EQ(1u, blacklist.num_entries());
596 }
597
OLDNEW
« content/browser/gpu/gpu_blacklist.cc ('K') | « content/browser/gpu/gpu_blacklist.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698