Chromium Code Reviews| 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 |