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

Side by Side Diff: chrome/browser/gpu_blacklist_unittest.cc

Issue 6538111: Move the rest of the core files in chrome\browser to content\browser.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/gpu_blacklist.cc ('k') | chrome/browser/gpu_process_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <vector>
6
7 #include "base/version.h"
8 #include "chrome/browser/gpu_blacklist.h"
9 #include "chrome/common/gpu_info.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 TEST(GpuBlacklistTest, BlacklistLogic) {
13 GPUInfo gpu_info;
14 gpu_info.SetVideoCardInfo(0x10de, // Vendor ID
15 0x0640); // Device ID
16 gpu_info.SetDriverInfo("NVIDIA", // Driver vendor
17 "1.6.18"); // Driver Version
18 gpu_info.SetLevel(GPUInfo::kComplete);
19 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
20
21 GpuBlacklist blacklist;
22
23 // Default blacklist settings: all feature are allowed.
24 GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
25 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
26 EXPECT_EQ(flags.flags(), 0u);
27
28 // Empty list: all features are allowed.
29 const std::string empty_list_json =
30 "{\n"
31 " \"name\": \"gpu blacklist\",\n"
32 " \"version\": \"2.5\",\n"
33 " \"entries\": [\n"
34 " ]\n"
35 "}";
36 EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json, false));
37 uint16 major, minor;
38 EXPECT_TRUE(blacklist.GetVersion(&major, &minor));
39 EXPECT_EQ(major, 2u);
40 EXPECT_EQ(minor, 5u);
41 flags = blacklist.DetermineGpuFeatureFlags(
42 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
43 EXPECT_EQ(flags.flags(), 0u);
44
45 // Blacklist accelerated_compositing with exact setting.
46 const std::string exact_list_json =
47 "{\n"
48 " \"name\": \"gpu blacklist\",\n"
49 " \"version\": \"0.1\",\n"
50 " \"entries\": [\n"
51 " {\n"
52 " \"id\": \"5\",\n"
53 " \"os\": {\n"
54 " \"type\": \"macosx\",\n"
55 " \"version\": {\n"
56 " \"op\": \"=\",\n"
57 " \"number\": \"10.6.4\"\n"
58 " }\n"
59 " },\n"
60 " \"vendor_id\": \"0x10de\",\n"
61 " \"device_id\": \"0x0640\",\n"
62 " \"driver_version\": {\n"
63 " \"op\": \"=\",\n"
64 " \"number\": \"1.6.18\"\n"
65 " },\n"
66 " \"blacklist\": [\n"
67 " \"accelerated_compositing\"\n"
68 " ]\n"
69 " }\n"
70 " ]\n"
71 "}";
72 EXPECT_TRUE(blacklist.LoadGpuBlacklist(exact_list_json, false));
73 flags = blacklist.DetermineGpuFeatureFlags(
74 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
75 EXPECT_EQ(
76 flags.flags(),
77 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing));
78
79 // Invalid json input should not change the current blacklist settings.
80 const std::string invalid_json = "invalid";
81 EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, false));
82 flags = blacklist.DetermineGpuFeatureFlags(
83 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
84 EXPECT_EQ(
85 flags.flags(),
86 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAcceleratedCompositing));
87 std::vector<uint32> entries;
88 blacklist.GetGpuFeatureFlagEntries(
89 GpuFeatureFlags::kGpuFeatureAcceleratedCompositing, entries);
90 EXPECT_EQ(entries.size(), 1u);
91 EXPECT_EQ(entries[0], 5u);
92 blacklist.GetGpuFeatureFlagEntries(
93 GpuFeatureFlags::kGpuFeatureAll, entries);
94 EXPECT_EQ(entries.size(), 1u);
95 EXPECT_EQ(entries[0], 5u);
96 EXPECT_EQ(blacklist.max_entry_id(), 5u);
97
98 // Blacklist a vendor on all OS.
99 const std::string vendor_json =
100 "{\n"
101 " \"name\": \"gpu blacklist\",\n"
102 " \"version\": \"0.1\",\n"
103 " \"entries\": [\n"
104 " {\n"
105 " \"id\": \"1\",\n"
106 " \"vendor_id\": \"0x10de\",\n"
107 " \"blacklist\": [\n"
108 " \"webgl\"\n"
109 " ]\n"
110 " }\n"
111 " ]\n"
112 "}";
113 // Blacklist entries won't be filtered to the current OS only upon loading.
114 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false));
115 flags = blacklist.DetermineGpuFeatureFlags(
116 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
117 EXPECT_EQ(flags.flags(),
118 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
119 flags = blacklist.DetermineGpuFeatureFlags(
120 GpuBlacklist::kOsWin, os_version.get(), gpu_info);
121 EXPECT_EQ(flags.flags(),
122 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
123 flags = blacklist.DetermineGpuFeatureFlags(
124 GpuBlacklist::kOsLinux, os_version.get(), gpu_info);
125 EXPECT_EQ(flags.flags(),
126 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
127 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
128 // Blacklist entries will be filtered to the current OS only upon loading.
129 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, true));
130 flags = blacklist.DetermineGpuFeatureFlags(
131 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
132 EXPECT_EQ(flags.flags(),
133 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
134 flags = blacklist.DetermineGpuFeatureFlags(
135 GpuBlacklist::kOsWin, os_version.get(), gpu_info);
136 EXPECT_EQ(flags.flags(),
137 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
138 flags = blacklist.DetermineGpuFeatureFlags(
139 GpuBlacklist::kOsLinux, os_version.get(), gpu_info);
140 EXPECT_EQ(flags.flags(),
141 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
142 #endif
143
144
145 // Blacklist a vendor on Linux only.
146 const std::string vendor_linux_json =
147 "{\n"
148 " \"name\": \"gpu blacklist\",\n"
149 " \"version\": \"0.1\",\n"
150 " \"entries\": [\n"
151 " {\n"
152 " \"id\": \"1\",\n"
153 " \"os\": {\n"
154 " \"type\": \"linux\"\n"
155 " },\n"
156 " \"vendor_id\": \"0x10de\",\n"
157 " \"blacklist\": [\n"
158 " \"accelerated_2d_canvas\"\n"
159 " ]\n"
160 " }\n"
161 " ]\n"
162 "}";
163 EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false));
164 flags = blacklist.DetermineGpuFeatureFlags(
165 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
166 EXPECT_EQ(flags.flags(), 0u);
167 flags = blacklist.DetermineGpuFeatureFlags(
168 GpuBlacklist::kOsWin, os_version.get(), gpu_info);
169 EXPECT_EQ(flags.flags(), 0u);
170 flags = blacklist.DetermineGpuFeatureFlags(
171 GpuBlacklist::kOsLinux, os_version.get(), gpu_info);
172 EXPECT_EQ(
173 flags.flags(),
174 static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas));
175 }
176
OLDNEW
« no previous file with comments | « chrome/browser/gpu_blacklist.cc ('k') | chrome/browser/gpu_process_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698