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