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

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, GpuBlacklist::kAllOs));
61 EXPECT_FALSE(blacklist.contains_unknown_fields());
61 } 62 }
62 63
63 TEST_F(GpuBlacklistTest, DeafaultBlacklistSettings) { 64 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) {
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(
86 blacklist.LoadGpuBlacklist(empty_list_json, GpuBlacklist::kAllOs));
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(
128 blacklist.LoadGpuBlacklist(exact_list_json, GpuBlacklist::kAllOs));
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, GpuBlacklist::kAllOs));
136 flags = blacklist.DetermineGpuFeatureFlags( 139 flags = blacklist.DetermineGpuFeatureFlags(
137 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 140 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
138 EXPECT_EQ( 141 EXPECT_EQ(
139 flags.flags(), 142 flags.flags(),
140 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing)); 143 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing));
141 std::vector<uint32> entries; 144 std::vector<uint32> entries;
142 blacklist.GetGpuFeatureFlagEntries( 145 blacklist.GetGpuFeatureFlagEntries(
143 GpuFeatureFlags::kGpuFeatureAcceleratedCompositing, entries); 146 GpuFeatureFlags::kGpuFeatureAcceleratedCompositing, entries);
144 EXPECT_EQ(entries.size(), 1u); 147 EXPECT_EQ(entries.size(), 1u);
145 EXPECT_EQ(entries[0], 5u); 148 EXPECT_EQ(entries[0], 5u);
(...skipping 17 matching lines...) Expand all
163 " \"blacklist\": [\n" 166 " \"blacklist\": [\n"
164 " \"webgl\"\n" 167 " \"webgl\"\n"
165 " ]\n" 168 " ]\n"
166 " }\n" 169 " }\n"
167 " ]\n" 170 " ]\n"
168 "}"; 171 "}";
169 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 172 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
170 GpuBlacklist blacklist("1.0"); 173 GpuBlacklist blacklist("1.0");
171 174
172 // Blacklist entries won't be filtered to the current OS only upon loading. 175 // Blacklist entries won't be filtered to the current OS only upon loading.
173 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false)); 176 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kAllOs));
174 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 177 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
175 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 178 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
176 EXPECT_EQ(flags.flags(), 179 EXPECT_EQ(flags.flags(),
177 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 180 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
178 flags = blacklist.DetermineGpuFeatureFlags( 181 flags = blacklist.DetermineGpuFeatureFlags(
179 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 182 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
180 EXPECT_EQ(flags.flags(), 183 EXPECT_EQ(flags.flags(),
181 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 184 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
182 flags = blacklist.DetermineGpuFeatureFlags( 185 flags = blacklist.DetermineGpuFeatureFlags(
183 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 186 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
184 EXPECT_EQ(flags.flags(), 187 EXPECT_EQ(flags.flags(),
185 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 188 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
186 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) 189 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
187 // Blacklist entries will be filtered to the current OS only upon loading. 190 // Blacklist entries will be filtered to the current OS only upon loading.
188 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, true)); 191 EXPECT_TRUE(
192 blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kCurrentOsOnly));
189 flags = blacklist.DetermineGpuFeatureFlags( 193 flags = blacklist.DetermineGpuFeatureFlags(
190 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 194 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
191 EXPECT_EQ(flags.flags(), 195 EXPECT_EQ(flags.flags(),
192 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 196 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
193 flags = blacklist.DetermineGpuFeatureFlags( 197 flags = blacklist.DetermineGpuFeatureFlags(
194 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 198 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
195 EXPECT_EQ(flags.flags(), 199 EXPECT_EQ(flags.flags(),
196 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 200 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
197 flags = blacklist.DetermineGpuFeatureFlags( 201 flags = blacklist.DetermineGpuFeatureFlags(
198 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 202 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
(...skipping 17 matching lines...) Expand all
216 " \"vendor_id\": \"0x10de\",\n" 220 " \"vendor_id\": \"0x10de\",\n"
217 " \"blacklist\": [\n" 221 " \"blacklist\": [\n"
218 " \"accelerated_2d_canvas\"\n" 222 " \"accelerated_2d_canvas\"\n"
219 " ]\n" 223 " ]\n"
220 " }\n" 224 " }\n"
221 " ]\n" 225 " ]\n"
222 "}"; 226 "}";
223 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 227 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
224 GpuBlacklist blacklist("1.0"); 228 GpuBlacklist blacklist("1.0");
225 229
226 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false)); 230 EXPECT_TRUE(
231 blacklist.LoadGpuBlacklist(vendor_linux_json, GpuBlacklist::kAllOs));
227 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 232 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
228 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 233 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
229 EXPECT_EQ(flags.flags(), 0u); 234 EXPECT_EQ(flags.flags(), 0u);
230 flags = blacklist.DetermineGpuFeatureFlags( 235 flags = blacklist.DetermineGpuFeatureFlags(
231 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 236 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
232 EXPECT_EQ(flags.flags(), 0u); 237 EXPECT_EQ(flags.flags(), 0u);
233 flags = blacklist.DetermineGpuFeatureFlags( 238 flags = blacklist.DetermineGpuFeatureFlags(
234 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 239 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
235 EXPECT_EQ( 240 EXPECT_EQ(
236 flags.flags(), 241 flags.flags(),
(...skipping 19 matching lines...) Expand all
256 " ],\n" 261 " ],\n"
257 " \"blacklist\": [\n" 262 " \"blacklist\": [\n"
258 " \"accelerated_2d_canvas\"\n" 263 " \"accelerated_2d_canvas\"\n"
259 " ]\n" 264 " ]\n"
260 " }\n" 265 " }\n"
261 " ]\n" 266 " ]\n"
262 "}"; 267 "}";
263 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 268 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
264 GpuBlacklist blacklist("1.0"); 269 GpuBlacklist blacklist("1.0");
265 270
266 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, false)); 271 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json,
272 GpuBlacklist::kAllOs));
267 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 273 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
268 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 274 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
269 EXPECT_EQ(flags.flags(), 0u); 275 EXPECT_EQ(flags.flags(), 0u);
270 flags = blacklist.DetermineGpuFeatureFlags( 276 flags = blacklist.DetermineGpuFeatureFlags(
271 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 277 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
272 EXPECT_EQ(flags.flags(), 0u); 278 EXPECT_EQ(flags.flags(), 0u);
273 flags = blacklist.DetermineGpuFeatureFlags( 279 flags = blacklist.DetermineGpuFeatureFlags(
274 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 280 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
275 EXPECT_EQ(flags.flags(), 0u); 281 EXPECT_EQ(flags.flags(), 0u);
276 } 282 }
(...skipping 17 matching lines...) Expand all
294 " ],\n" 300 " ],\n"
295 " \"blacklist\": [\n" 301 " \"blacklist\": [\n"
296 " \"accelerated_2d_canvas\"\n" 302 " \"accelerated_2d_canvas\"\n"
297 " ]\n" 303 " ]\n"
298 " }\n" 304 " }\n"
299 " ]\n" 305 " ]\n"
300 "}"; 306 "}";
301 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 307 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
302 GpuBlacklist blacklist("1.0"); 308 GpuBlacklist blacklist("1.0");
303 309
304 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, false)); 310 EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json,
311 GpuBlacklist::kAllOs));
305 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 312 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
306 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 313 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
307 EXPECT_EQ(flags.flags(), 0u); 314 EXPECT_EQ(flags.flags(), 0u);
308 flags = blacklist.DetermineGpuFeatureFlags( 315 flags = blacklist.DetermineGpuFeatureFlags(
309 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 316 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
310 EXPECT_EQ(flags.flags(), 0u); 317 EXPECT_EQ(flags.flags(), 0u);
311 flags = blacklist.DetermineGpuFeatureFlags( 318 flags = blacklist.DetermineGpuFeatureFlags(
312 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 319 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
313 EXPECT_EQ( 320 EXPECT_EQ(
314 flags.flags(), 321 flags.flags(),
(...skipping 18 matching lines...) Expand all
333 " },\n" 340 " },\n"
334 " \"blacklist\": [\n" 341 " \"blacklist\": [\n"
335 " \"accelerated_2d_canvas\"\n" 342 " \"accelerated_2d_canvas\"\n"
336 " ]\n" 343 " ]\n"
337 " }\n" 344 " }\n"
338 " ]\n" 345 " ]\n"
339 "}"; 346 "}";
340 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 347 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
341 GpuBlacklist blacklist("1.0"); 348 GpuBlacklist blacklist("1.0");
342 349
343 EXPECT_TRUE(blacklist.LoadGpuBlacklist(date_windows_json, false)); 350 EXPECT_TRUE(
351 blacklist.LoadGpuBlacklist(date_windows_json, GpuBlacklist::kAllOs));
344 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 352 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
345 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 353 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
346 EXPECT_EQ(flags.flags(), 0u); 354 EXPECT_EQ(flags.flags(), 0u);
347 flags = blacklist.DetermineGpuFeatureFlags( 355 flags = blacklist.DetermineGpuFeatureFlags(
348 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 356 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
349 EXPECT_EQ(flags.flags(), 0u); 357 EXPECT_EQ(flags.flags(), 0u);
350 flags = blacklist.DetermineGpuFeatureFlags( 358 flags = blacklist.DetermineGpuFeatureFlags(
351 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 359 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
352 EXPECT_EQ( 360 EXPECT_EQ(
353 flags.flags(), 361 flags.flags(),
(...skipping 12 matching lines...) Expand all
366 " \"device_id\": [\"0x1023\", \"0x0640\"],\n" 374 " \"device_id\": [\"0x1023\", \"0x0640\"],\n"
367 " \"blacklist\": [\n" 375 " \"blacklist\": [\n"
368 " \"multisampling\"\n" 376 " \"multisampling\"\n"
369 " ]\n" 377 " ]\n"
370 " }\n" 378 " }\n"
371 " ]\n" 379 " ]\n"
372 "}"; 380 "}";
373 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 381 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
374 GpuBlacklist blacklist("1.0"); 382 GpuBlacklist blacklist("1.0");
375 383
376 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false)); 384 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs));
377 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 385 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
378 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); 386 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
379 EXPECT_EQ(flags.flags(), 387 EXPECT_EQ(flags.flags(),
380 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling)); 388 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling));
381 flags = blacklist.DetermineGpuFeatureFlags( 389 flags = blacklist.DetermineGpuFeatureFlags(
382 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 390 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
383 EXPECT_EQ(flags.flags(), 391 EXPECT_EQ(flags.flags(),
384 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling)); 392 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureMultisampling));
385 flags = blacklist.DetermineGpuFeatureFlags( 393 flags = blacklist.DetermineGpuFeatureFlags(
386 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 394 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
(...skipping 14 matching lines...) Expand all
401 " },\n" 409 " },\n"
402 " \"blacklist\": [\n" 410 " \"blacklist\": [\n"
403 " \"webgl\"\n" 411 " \"webgl\"\n"
404 " ]\n" 412 " ]\n"
405 " }\n" 413 " }\n"
406 " ]\n" 414 " ]\n"
407 "}"; 415 "}";
408 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 416 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
409 GpuBlacklist blacklist("1.0"); 417 GpuBlacklist blacklist("1.0");
410 418
411 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false)); 419 EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs));
412 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( 420 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
413 GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info()); 421 GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info());
414 EXPECT_EQ(flags.flags(), 422 EXPECT_EQ(flags.flags(),
415 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 423 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
416 flags = blacklist.DetermineGpuFeatureFlags( 424 flags = blacklist.DetermineGpuFeatureFlags(
417 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); 425 GpuBlacklist::kOsLinux, os_version.get(), gpu_info());
418 EXPECT_EQ(flags.flags(), 0u); 426 EXPECT_EQ(flags.flags(), 0u);
419 } 427 }
420 428
421 TEST_F(GpuBlacklistTest, ChromeVersionEntry) { 429 TEST_F(GpuBlacklistTest, ChromeVersionEntry) {
(...skipping 10 matching lines...) Expand all
432 " },\n" 440 " },\n"
433 " \"blacklist\": [\n" 441 " \"blacklist\": [\n"
434 " \"webgl\"\n" 442 " \"webgl\"\n"
435 " ]\n" 443 " ]\n"
436 " }\n" 444 " }\n"
437 " ]\n" 445 " ]\n"
438 "}"; 446 "}";
439 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); 447 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
440 448
441 GpuBlacklist blacklist9("9.0"); 449 GpuBlacklist blacklist9("9.0");
442 EXPECT_TRUE(blacklist9.LoadGpuBlacklist(browser_version_json, false)); 450 EXPECT_TRUE(
451 blacklist9.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs));
443 GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags( 452 GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags(
444 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 453 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
445 EXPECT_EQ(flags.flags(), 0u); 454 EXPECT_EQ(flags.flags(), 0u);
446 455
447 GpuBlacklist blacklist10("10.0"); 456 GpuBlacklist blacklist10("10.0");
448 EXPECT_TRUE(blacklist10.LoadGpuBlacklist(browser_version_json, false)); 457 EXPECT_TRUE(
458 blacklist10.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs));
449 flags = blacklist10.DetermineGpuFeatureFlags( 459 flags = blacklist10.DetermineGpuFeatureFlags(
450 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); 460 GpuBlacklist::kOsWin, os_version.get(), gpu_info());
451 EXPECT_EQ(flags.flags(), 461 EXPECT_EQ(flags.flags(),
452 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); 462 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
453 } 463 }
454 464
455 TEST_F(GpuBlacklistTest, MalformedVendor) { 465 TEST_F(GpuBlacklistTest, MalformedVendor) {
456 // vendor_id is defined as list instead of string. 466 // vendor_id is defined as list instead of string.
457 const std::string malformed_vendor_json = 467 const std::string malformed_vendor_json =
458 "{\n" 468 "{\n"
459 " \"name\": \"gpu blacklist\",\n" 469 " \"name\": \"gpu blacklist\",\n"
460 " \"version\": \"0.1\",\n" 470 " \"version\": \"0.1\",\n"
461 " \"entries\": [\n" 471 " \"entries\": [\n"
462 " {\n" 472 " {\n"
463 " \"id\": 1,\n" 473 " \"id\": 1,\n"
464 " \"vendor_id\": \"[0x10de]\",\n" 474 " \"vendor_id\": \"[0x10de]\",\n"
465 " \"blacklist\": [\n" 475 " \"blacklist\": [\n"
466 " \"accelerated_2d_canvas\"\n" 476 " \"accelerated_2d_canvas\"\n"
467 " ]\n" 477 " ]\n"
468 " }\n" 478 " }\n"
469 " ]\n" 479 " ]\n"
470 "}"; 480 "}";
471 GpuBlacklist blacklist("1.0"); 481 GpuBlacklist blacklist("1.0");
472 482
473 EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json, false)); 483 EXPECT_FALSE(
484 blacklist.LoadGpuBlacklist(malformed_vendor_json, GpuBlacklist::kAllOs));
474 } 485 }
475 486
487 TEST_F(GpuBlacklistTest, UnknownField) {
488 const std::string unknown_field_json =
489 "{\n"
490 " \"name\": \"gpu blacklist\",\n"
491 " \"version\": \"0.1\",\n"
492 " \"entries\": [\n"
493 " {\n"
494 " \"id\": 1,\n"
495 " \"unknown_field\": 0,\n"
496 " \"blacklist\": [\n"
497 " \"accelerated_2d_canvas\"\n"
498 " ]\n"
499 " },\n"
500 " {\n"
501 " \"id\": 2,\n"
502 " \"blacklist\": [\n"
503 " \"accelerated_2d_canvas\"\n"
504 " ]\n"
505 " }\n"
506 " ]\n"
507 "}";
508 GpuBlacklist blacklist("1.0");
509
510 EXPECT_TRUE(
511 blacklist.LoadGpuBlacklist(unknown_field_json, GpuBlacklist::kAllOs));
512 EXPECT_EQ(1u, blacklist.num_entries());
513 EXPECT_TRUE(blacklist.contains_unknown_fields());
vangelis 2011/08/24 19:00:17 It would be useful in these tests to blacklist dif
Zhenyao Mo 2011/08/24 22:29:57 Done.
514 }
515
516 TEST_F(GpuBlacklistTest, UnknownExceptionField) {
517 const std::string unknown_exception_field_json =
518 "{\n"
519 " \"name\": \"gpu blacklist\",\n"
520 " \"version\": \"0.1\",\n"
521 " \"entries\": [\n"
522 " {\n"
523 " \"id\": 1,\n"
524 " \"unknown_field\": 0,\n"
525 " \"blacklist\": [\n"
526 " \"accelerated_2d_canvas\"\n"
527 " ]\n"
528 " },\n"
529 " {\n"
530 " \"id\": 2,\n"
531 " \"exceptions\": [\n"
532 " {\n"
533 " \"unknown_field\": 0\n"
534 " }\n"
535 " ],\n"
536 " \"blacklist\": [\n"
537 " \"accelerated_2d_canvas\"\n"
538 " ]\n"
539 " },\n"
540 " {\n"
541 " \"id\": 3,\n"
542 " \"blacklist\": [\n"
543 " \"accelerated_2d_canvas\"\n"
544 " ]\n"
545 " }\n"
546 " ]\n"
547 "}";
548 GpuBlacklist blacklist("1.0");
549
550 EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
551 GpuBlacklist::kAllOs));
552 EXPECT_EQ(2u, blacklist.num_entries());
553 EXPECT_TRUE(blacklist.contains_unknown_fields());
554 }
555
556 TEST_F(GpuBlacklistTest, UnknownFeature) {
557 const std::string unknown_feature_json =
558 "{\n"
559 " \"name\": \"gpu blacklist\",\n"
560 " \"version\": \"0.1\",\n"
561 " \"entries\": [\n"
562 " {\n"
563 " \"id\": 1,\n"
564 " \"blacklist\": [\n"
565 " \"accelerated_something\"\n"
566 " ]\n"
567 " },\n"
568 " {\n"
569 " \"id\": 2,\n"
570 " \"blacklist\": [\n"
571 " \"accelerated_2d_canvas\"\n"
572 " ]\n"
573 " }\n"
574 " ]\n"
575 "}";
576 GpuBlacklist blacklist("1.0");
577
578 EXPECT_TRUE(
579 blacklist.LoadGpuBlacklist(unknown_feature_json, GpuBlacklist::kAllOs));
580 EXPECT_EQ(1u, blacklist.num_entries());
581 EXPECT_TRUE(blacklist.contains_unknown_fields());
582 }
583
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