OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |