Chromium Code Reviews| Index: content/browser/gpu/gpu_blacklist_unittest.cc |
| =================================================================== |
| --- content/browser/gpu/gpu_blacklist_unittest.cc (revision 155823) |
| +++ content/browser/gpu/gpu_blacklist_unittest.cc (working copy) |
| @@ -15,6 +15,7 @@ |
| #include "testing/gtest/include/gtest/gtest.h" |
| using content::GpuFeatureType; |
| +using content::GpuSwitchingOption; |
| class GpuBlacklistTest : public testing::Test { |
| public: |
| @@ -77,8 +78,9 @@ |
| Version os_version("10.6.4"); |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| // Default blacklist settings: all feature are allowed. |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| } |
| @@ -97,8 +99,9 @@ |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| empty_list_json, GpuBlacklist::kAllOs)); |
| EXPECT_EQ(blacklist->GetVersion(), std::string("2.5")); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| } |
| @@ -135,8 +138,9 @@ |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| exact_list_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); |
| // Invalid json input should not change the current blacklist settings. |
| @@ -144,19 +148,15 @@ |
| EXPECT_FALSE(blacklist->LoadGpuBlacklist( |
| invalid_json, GpuBlacklist::kAllOs)); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); |
| std::vector<uint32> entries; |
| bool disabled = false; |
| - blacklist->GetGpuFeatureTypeEntries( |
| - content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING, entries, disabled); |
| + blacklist->GetDecisionEntries(entries, disabled); |
| EXPECT_EQ(entries.size(), 1u); |
| EXPECT_EQ(entries[0], 5u); |
| - blacklist->GetGpuFeatureTypeEntries( |
| - content::GPU_FEATURE_TYPE_ALL, entries, disabled); |
| - EXPECT_EQ(entries.size(), 1u); |
| - EXPECT_EQ(entries[0], 5u); |
| EXPECT_EQ(blacklist->max_entry_id(), 5u); |
| } |
| @@ -182,28 +182,34 @@ |
| // Blacklist entries won't be filtered to the current OS only upon loading. |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| vendor_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \ |
| defined(OS_OPENBSD) |
| // Blacklist entries will be filtered to the current OS only upon loading. |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| vendor_json, GpuBlacklist::kCurrentOsOnly)); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| #endif |
| } |
| @@ -232,14 +238,17 @@ |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| vendor_linux_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); |
| } |
| @@ -271,14 +280,17 @@ |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| linux_except_nvidia_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| } |
| @@ -310,14 +322,17 @@ |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| linux_except_intel_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); |
| } |
| @@ -348,14 +363,17 @@ |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| date_windows_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); |
| } |
| @@ -380,14 +398,17 @@ |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| devices_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); |
| } |
| @@ -413,11 +434,13 @@ |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| devices_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsChromeOS, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsChromeOS, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| } |
| @@ -444,15 +467,17 @@ |
| scoped_ptr<GpuBlacklist> blacklist9(Create()); |
| EXPECT_TRUE(blacklist9->LoadGpuBlacklist( |
| "9.0", browser_version_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist9->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist9->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| scoped_ptr<GpuBlacklist> blacklist10(Create()); |
| EXPECT_TRUE(blacklist10->LoadGpuBlacklist( |
| "10.0", browser_version_json, GpuBlacklist::kAllOs)); |
| - type = blacklist10->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + type = blacklist10->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -506,8 +531,9 @@ |
| unknown_field_json, GpuBlacklist::kAllOs)); |
| EXPECT_EQ(1u, blacklist->num_entries()); |
| EXPECT_TRUE(blacklist->contains_unknown_fields()); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -550,8 +576,9 @@ |
| unknown_exception_field_json, GpuBlacklist::kAllOs)); |
| EXPECT_EQ(1u, blacklist->num_entries()); |
| EXPECT_TRUE(blacklist->contains_unknown_fields()); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -577,8 +604,9 @@ |
| unknown_feature_json, GpuBlacklist::kAllOs)); |
| EXPECT_EQ(1u, blacklist->num_entries()); |
| EXPECT_TRUE(blacklist->contains_unknown_fields()); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -605,8 +633,9 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| gl_vendor_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -633,8 +662,9 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| gl_renderer_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -660,8 +690,9 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -687,8 +718,9 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| } |
| @@ -715,8 +747,9 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -740,17 +773,16 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| disabled_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsWin, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsWin, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| std::vector<uint32> flag_entries; |
| bool disabled = false; |
| - blacklist->GetGpuFeatureTypeEntries( |
| - content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled); |
| + blacklist->GetDecisionEntries(flag_entries, disabled); |
| EXPECT_EQ(flag_entries.size(), 0u); |
| disabled = true; |
| - blacklist->GetGpuFeatureTypeEntries( |
| - content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled); |
| + blacklist->GetDecisionEntries(flag_entries, disabled); |
| EXPECT_EQ(flag_entries.size(), 1u); |
| } |
| @@ -780,8 +812,9 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| optimus_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -811,8 +844,9 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| amd_switchable_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -849,23 +883,27 @@ |
| lexical_json, GpuBlacklist::kAllOs)); |
| gpu_info.driver_version = "8.109"; |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| gpu_info.driver_version = "8.2"; |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| gpu_info.driver_version = "8.21"; |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| gpu_info.driver_version = "8.2010"; |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsLinux, &os_version, gpu_info); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsLinux, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| } |
| @@ -898,16 +936,18 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| multi_gpu_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| content::GPUInfo::GPUDevice gpu_device; |
| gpu_device.vendor_id = 0x8086; |
| gpu_device.device_id = 0x0166; |
| gpu_info.secondary_gpus.push_back(gpu_device); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| @@ -940,19 +980,54 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| multi_gpu_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, 0); |
| content::GPUInfo::GPUDevice gpu_device; |
| gpu_device.vendor_id = 0x8086; |
| gpu_device.device_id = 0x0166; |
| gpu_info.secondary_gpus.push_back(gpu_device); |
| - type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info); |
| + type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
| } |
| +TEST_F(GpuBlacklistTest, GpuSwitching) { |
| + const std::string gpu_switching_json = |
| + "{\n" |
| + " \"name\": \"gpu blacklist\",\n" |
| + " \"version\": \"0.1\",\n" |
| + " \"entries\": [\n" |
| + " {\n" |
| + " \"id\": 5,\n" |
| + " \"os\": {\n" |
| + " \"type\": \"macosx\"\n" |
| + " },\n" |
| + " \"vendor_id\": \"0x10de\",\n" |
| + " \"device_id\": [\"0x0640\"],\n" |
| + " \"gpu_switching\": \"force_discrete\"\n" |
| + " }\n" |
| + " ]\n" |
| + "}"; |
| + Version os_version("10.6.4"); |
| + |
| + scoped_ptr<GpuBlacklist> blacklist(Create()); |
| + EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| + gpu_switching_json, GpuBlacklist::kAllOs)); |
| + GpuSwitchingOption switching = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).gpu_switching; |
| + EXPECT_EQ(switching, content::GPU_SWITCHING_FORCE_DISCRETE); |
|
Ken Russell (switch to Gerrit)
2012/09/12 01:59:04
Please also test the force_integrated and automati
Zhenyao Mo
2012/09/12 17:41:34
Done.
|
| + std::vector<uint32> entries; |
| + bool disabled = false; |
| + blacklist->GetDecisionEntries(entries, disabled); |
| + EXPECT_EQ(entries.size(), 1u); |
| + EXPECT_EQ(entries[0], 5u); |
| +} |
| + |
| TEST_F(GpuBlacklistTest, VideoDecode) { |
| const std::string video_decode_json = |
| "{\n" |
| @@ -977,8 +1052,8 @@ |
| scoped_ptr<GpuBlacklist> blacklist(Create()); |
| EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
| video_decode_json, GpuBlacklist::kAllOs)); |
| - GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
| - GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
| + GpuFeatureType type = blacklist->MakeBlacklistDecision( |
| + GpuBlacklist::kOsMacosx, &os_version, |
| + gpu_info()).blacklisted_features; |
| EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE); |
| } |
| - |