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

Unified 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 side-by-side diff with in-line comments
Download patch
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,7 +57,8 @@
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, GpuBlacklist::kFailOnUnknownField));
}
TEST_F(GpuBlacklistTest, DeafaultBlacklistSettings) {
@@ -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, GpuBlacklist::kFailOnUnknownField));
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, GpuBlacklist::kFailOnUnknownField));
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(
@@ -132,7 +135,8 @@
// 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, GpuBlacklist::kFailOnUnknownField));
flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(
@@ -170,7 +174,8 @@
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, GpuBlacklist::kFailOnUnknownField));
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(),
@@ -185,7 +190,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, GpuBlacklist::kFailOnUnknownField));
flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(),
@@ -223,7 +229,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, GpuBlacklist::kFailOnUnknownField));
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(), 0u);
@@ -263,7 +270,9 @@
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, GpuBlacklist::kFailOnUnknownField));
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(), 0u);
@@ -301,7 +310,9 @@
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, GpuBlacklist::kFailOnUnknownField));
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(), 0u);
@@ -340,7 +351,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, GpuBlacklist::kFailOnUnknownField));
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(), 0u);
@@ -373,7 +385,8 @@
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, GpuBlacklist::kFailOnUnknownField));
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(),
@@ -408,7 +421,8 @@
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, GpuBlacklist::kFailOnUnknownField));
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(),
@@ -439,13 +453,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, GpuBlacklist::kFailOnUnknownField));
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, GpuBlacklist::kFailOnUnknownField));
flags = blacklist10.DetermineGpuFeatureFlags(
GpuBlacklist::kOsWin, os_version.get(), gpu_info());
EXPECT_EQ(flags.flags(),
@@ -470,6 +486,112 @@
"}";
GpuBlacklist blacklist("1.0");
- EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json, false));
+ EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
+ EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreEntryWithUnknownField));
}
+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_FALSE(blacklist.LoadGpuBlacklist(unknown_field_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_field_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreEntryWithUnknownField));
+ EXPECT_EQ(1u, blacklist.num_entries());
+}
+
+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_FALSE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreEntryWithUnknownField));
+ EXPECT_EQ(1u, blacklist.num_entries());
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreExceptionWithUnknownField));
+ EXPECT_EQ(2u, blacklist.num_entries());
+}
+
+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_FALSE(blacklist.LoadGpuBlacklist(unknown_feature_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kFailOnUnknownField));
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_feature_json,
+ GpuBlacklist::kAllOs, GpuBlacklist::kIgnoreEntryWithUnknownField));
+ EXPECT_EQ(1u, blacklist.num_entries());
+}
+
« 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