Chromium Code Reviews| Index: content/browser/gpu/gpu_blacklist_unittest.cc |
| =================================================================== |
| --- content/browser/gpu/gpu_blacklist_unittest.cc (revision 97470) |
| +++ content/browser/gpu/gpu_blacklist_unittest.cc (working copy) |
| @@ -57,10 +57,11 @@ |
| data_file_size); |
| std::string json_string(data.get(), data_file_size); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, true)); |
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, GpuBlacklist::kAllOs)); |
| + EXPECT_FALSE(blacklist.contains_unknown_fields()); |
| } |
| -TEST_F(GpuBlacklistTest, DeafaultBlacklistSettings) { |
| +TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) { |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| // Default blacklist settings: all feature are allowed. |
| @@ -81,7 +82,8 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json, false)); |
| + EXPECT_TRUE( |
| + blacklist.LoadGpuBlacklist(empty_list_json, GpuBlacklist::kAllOs)); |
| uint16 major, minor; |
| EXPECT_TRUE(blacklist.GetVersion(&major, &minor)); |
| EXPECT_EQ(major, 2u); |
| @@ -122,7 +124,8 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(exact_list_json, false)); |
| + EXPECT_TRUE( |
| + blacklist.LoadGpuBlacklist(exact_list_json, GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ( |
| @@ -132,7 +135,7 @@ |
| // Invalid json input should not change the current blacklist settings. |
| const std::string invalid_json = "invalid"; |
| - EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, false)); |
| + EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, GpuBlacklist::kAllOs)); |
| flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ( |
| @@ -170,7 +173,7 @@ |
| GpuBlacklist blacklist("1.0"); |
| // Blacklist entries won't be filtered to the current OS only upon loading. |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false)); |
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), |
| @@ -185,7 +188,8 @@ |
| static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
| #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) |
| // Blacklist entries will be filtered to the current OS only upon loading. |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, true)); |
| + EXPECT_TRUE( |
| + blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kCurrentOsOnly)); |
| flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), |
| @@ -223,7 +227,8 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false)); |
| + EXPECT_TRUE( |
| + blacklist.LoadGpuBlacklist(vendor_linux_json, GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), 0u); |
| @@ -263,7 +268,8 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, false)); |
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, |
| + GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), 0u); |
| @@ -301,7 +307,8 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, false)); |
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, |
| + GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), 0u); |
| @@ -340,7 +347,8 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(date_windows_json, false)); |
| + EXPECT_TRUE( |
| + blacklist.LoadGpuBlacklist(date_windows_json, GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), 0u); |
| @@ -373,7 +381,7 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false)); |
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), |
| @@ -408,7 +416,7 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false)); |
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), |
| @@ -439,13 +447,15 @@ |
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
| GpuBlacklist blacklist9("9.0"); |
| - EXPECT_TRUE(blacklist9.LoadGpuBlacklist(browser_version_json, false)); |
| + EXPECT_TRUE( |
| + blacklist9.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs)); |
| GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsWin, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), 0u); |
| GpuBlacklist blacklist10("10.0"); |
| - EXPECT_TRUE(blacklist10.LoadGpuBlacklist(browser_version_json, false)); |
| + EXPECT_TRUE( |
| + blacklist10.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs)); |
| flags = blacklist10.DetermineGpuFeatureFlags( |
| GpuBlacklist::kOsWin, os_version.get(), gpu_info()); |
| EXPECT_EQ(flags.flags(), |
| @@ -470,6 +480,104 @@ |
| "}"; |
| GpuBlacklist blacklist("1.0"); |
| - EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json, false)); |
| + EXPECT_FALSE( |
| + blacklist.LoadGpuBlacklist(malformed_vendor_json, GpuBlacklist::kAllOs)); |
| } |
| +TEST_F(GpuBlacklistTest, UnknownField) { |
| + const std::string unknown_field_json = |
| + "{\n" |
| + " \"name\": \"gpu blacklist\",\n" |
| + " \"version\": \"0.1\",\n" |
| + " \"entries\": [\n" |
| + " {\n" |
| + " \"id\": 1,\n" |
| + " \"unknown_field\": 0,\n" |
| + " \"blacklist\": [\n" |
| + " \"accelerated_2d_canvas\"\n" |
| + " ]\n" |
| + " },\n" |
| + " {\n" |
| + " \"id\": 2,\n" |
| + " \"blacklist\": [\n" |
| + " \"accelerated_2d_canvas\"\n" |
| + " ]\n" |
| + " }\n" |
| + " ]\n" |
| + "}"; |
| + GpuBlacklist blacklist("1.0"); |
| + |
| + EXPECT_TRUE( |
| + blacklist.LoadGpuBlacklist(unknown_field_json, GpuBlacklist::kAllOs)); |
| + EXPECT_EQ(1u, blacklist.num_entries()); |
| + 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.
|
| +} |
| + |
| +TEST_F(GpuBlacklistTest, UnknownExceptionField) { |
| + const std::string unknown_exception_field_json = |
| + "{\n" |
| + " \"name\": \"gpu blacklist\",\n" |
| + " \"version\": \"0.1\",\n" |
| + " \"entries\": [\n" |
| + " {\n" |
| + " \"id\": 1,\n" |
| + " \"unknown_field\": 0,\n" |
| + " \"blacklist\": [\n" |
| + " \"accelerated_2d_canvas\"\n" |
| + " ]\n" |
| + " },\n" |
| + " {\n" |
| + " \"id\": 2,\n" |
| + " \"exceptions\": [\n" |
| + " {\n" |
| + " \"unknown_field\": 0\n" |
| + " }\n" |
| + " ],\n" |
| + " \"blacklist\": [\n" |
| + " \"accelerated_2d_canvas\"\n" |
| + " ]\n" |
| + " },\n" |
| + " {\n" |
| + " \"id\": 3,\n" |
| + " \"blacklist\": [\n" |
| + " \"accelerated_2d_canvas\"\n" |
| + " ]\n" |
| + " }\n" |
| + " ]\n" |
| + "}"; |
| + GpuBlacklist blacklist("1.0"); |
| + |
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json, |
| + GpuBlacklist::kAllOs)); |
| + EXPECT_EQ(2u, blacklist.num_entries()); |
| + EXPECT_TRUE(blacklist.contains_unknown_fields()); |
| +} |
| + |
| +TEST_F(GpuBlacklistTest, UnknownFeature) { |
| + const std::string unknown_feature_json = |
| + "{\n" |
| + " \"name\": \"gpu blacklist\",\n" |
| + " \"version\": \"0.1\",\n" |
| + " \"entries\": [\n" |
| + " {\n" |
| + " \"id\": 1,\n" |
| + " \"blacklist\": [\n" |
| + " \"accelerated_something\"\n" |
| + " ]\n" |
| + " },\n" |
| + " {\n" |
| + " \"id\": 2,\n" |
| + " \"blacklist\": [\n" |
| + " \"accelerated_2d_canvas\"\n" |
| + " ]\n" |
| + " }\n" |
| + " ]\n" |
| + "}"; |
| + GpuBlacklist blacklist("1.0"); |
| + |
| + EXPECT_TRUE( |
| + blacklist.LoadGpuBlacklist(unknown_feature_json, GpuBlacklist::kAllOs)); |
| + EXPECT_EQ(1u, blacklist.num_entries()); |
| + EXPECT_TRUE(blacklist.contains_unknown_fields()); |
| +} |
| + |