OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 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 "content/test/gpu/gpu_test_config.h" | |
6 #include "gpu/config/gpu_info.h" | |
7 #include "testing/gtest/include/gtest/gtest.h" | |
8 | |
9 class GPUTestConfigTest : public testing::Test { | |
10 public: | |
11 GPUTestConfigTest() { } | |
12 | |
13 virtual ~GPUTestConfigTest() { } | |
14 | |
15 protected: | |
16 virtual void SetUp() { } | |
17 | |
18 virtual void TearDown() { } | |
19 }; | |
20 | |
21 TEST_F(GPUTestConfigTest, EmptyValues) { | |
22 GPUTestConfig config; | |
23 EXPECT_EQ(GPUTestConfig::kOsUnknown, config.os()); | |
24 EXPECT_EQ(0u, config.gpu_vendor().size()); | |
25 EXPECT_EQ(0u, config.gpu_device_id()); | |
26 EXPECT_EQ(GPUTestConfig::kBuildTypeUnknown, config.build_type()); | |
27 } | |
28 | |
29 TEST_F(GPUTestConfigTest, SetGPUInfo) { | |
30 gpu::GPUInfo gpu_info; | |
31 gpu_info.gpu.vendor_id = 0x10de; | |
32 gpu_info.gpu.device_id = 0x0640; | |
33 GPUTestBotConfig config; | |
34 EXPECT_TRUE(config.SetGPUInfo(gpu_info)); | |
35 EXPECT_EQ(1u, config.gpu_vendor().size()); | |
36 EXPECT_EQ(gpu_info.gpu.vendor_id, config.gpu_vendor()[0]); | |
37 EXPECT_EQ(gpu_info.gpu.device_id, config.gpu_device_id()); | |
38 | |
39 gpu_info.gpu.vendor_id = 0x8086; | |
40 gpu_info.gpu.device_id = 0x0046; | |
41 EXPECT_TRUE(config.SetGPUInfo(gpu_info)); | |
42 EXPECT_EQ(1u, config.gpu_vendor().size()); | |
43 EXPECT_EQ(gpu_info.gpu.vendor_id, config.gpu_vendor()[0]); | |
44 EXPECT_EQ(gpu_info.gpu.device_id, config.gpu_device_id()); | |
45 } | |
46 | |
47 TEST_F(GPUTestConfigTest, IsValid) { | |
48 { | |
49 GPUTestConfig config; | |
50 config.set_gpu_device_id(0x0640); | |
51 EXPECT_FALSE(config.IsValid()); | |
52 config.AddGPUVendor(0x10de); | |
53 EXPECT_TRUE(config.IsValid()); | |
54 } | |
55 | |
56 { | |
57 GPUTestBotConfig config; | |
58 config.set_build_type(GPUTestConfig::kBuildTypeRelease); | |
59 config.set_os(GPUTestConfig::kOsWin7); | |
60 config.set_gpu_device_id(0x0640); | |
61 EXPECT_FALSE(config.IsValid()); | |
62 config.AddGPUVendor(0x10de); | |
63 EXPECT_TRUE(config.IsValid()); | |
64 | |
65 config.set_gpu_device_id(0); | |
66 EXPECT_FALSE(config.IsValid()); | |
67 config.set_gpu_device_id(0x0640); | |
68 EXPECT_TRUE(config.IsValid()); | |
69 | |
70 config.set_os(GPUTestConfig::kOsWin); | |
71 EXPECT_FALSE(config.IsValid()); | |
72 config.set_os(GPUTestConfig::kOsWin7 | GPUTestConfig::kOsWinXP); | |
73 EXPECT_FALSE(config.IsValid()); | |
74 config.set_os(GPUTestConfig::kOsWin7); | |
75 EXPECT_TRUE(config.IsValid()); | |
76 | |
77 config.set_build_type(GPUTestConfig::kBuildTypeUnknown); | |
78 EXPECT_FALSE(config.IsValid()); | |
79 config.set_build_type(GPUTestConfig::kBuildTypeRelease); | |
80 EXPECT_TRUE(config.IsValid()); | |
81 } | |
82 } | |
83 | |
84 TEST_F(GPUTestConfigTest, Matches) { | |
85 GPUTestBotConfig config; | |
86 config.set_os(GPUTestConfig::kOsWin7); | |
87 config.set_build_type(GPUTestConfig::kBuildTypeRelease); | |
88 config.AddGPUVendor(0x10de); | |
89 config.set_gpu_device_id(0x0640); | |
90 EXPECT_TRUE(config.IsValid()); | |
91 | |
92 { // os matching | |
93 GPUTestConfig config2; | |
94 EXPECT_TRUE(config.Matches(config2)); | |
95 config2.set_os(GPUTestConfig::kOsWin); | |
96 EXPECT_TRUE(config.Matches(config2)); | |
97 config2.set_os(GPUTestConfig::kOsWin7); | |
98 EXPECT_TRUE(config.Matches(config2)); | |
99 config2.set_os(GPUTestConfig::kOsMac); | |
100 EXPECT_FALSE(config.Matches(config2)); | |
101 config2.set_os(GPUTestConfig::kOsWin7 | GPUTestConfig::kOsLinux); | |
102 EXPECT_TRUE(config.Matches(config2)); | |
103 } | |
104 | |
105 { // gpu vendor matching | |
106 { | |
107 GPUTestConfig config2; | |
108 config2.AddGPUVendor(0x10de); | |
109 EXPECT_TRUE(config.Matches(config2)); | |
110 config2.AddGPUVendor(0x1004); | |
111 EXPECT_TRUE(config.Matches(config2)); | |
112 } | |
113 { | |
114 GPUTestConfig config2; | |
115 config2.AddGPUVendor(0x8086); | |
116 EXPECT_FALSE(config.Matches(config2)); | |
117 } | |
118 } | |
119 | |
120 { // build type matching | |
121 GPUTestConfig config2; | |
122 config2.set_build_type(GPUTestConfig::kBuildTypeRelease); | |
123 EXPECT_TRUE(config.Matches(config2)); | |
124 config2.set_build_type(GPUTestConfig::kBuildTypeRelease | | |
125 GPUTestConfig::kBuildTypeDebug); | |
126 EXPECT_TRUE(config.Matches(config2)); | |
127 config2.set_build_type(GPUTestConfig::kBuildTypeDebug); | |
128 EXPECT_FALSE(config.Matches(config2)); | |
129 } | |
130 | |
131 { // exact matching | |
132 GPUTestConfig config2; | |
133 config2.set_os(GPUTestConfig::kOsWin7); | |
134 config2.set_build_type(GPUTestConfig::kBuildTypeRelease); | |
135 config2.AddGPUVendor(0x10de); | |
136 config2.set_gpu_device_id(0x0640); | |
137 EXPECT_TRUE(config.Matches(config2)); | |
138 config2.set_gpu_device_id(0x0641); | |
139 EXPECT_FALSE(config.Matches(config2)); | |
140 } | |
141 } | |
142 | |
143 TEST_F(GPUTestConfigTest, StringMatches) { | |
144 GPUTestBotConfig config; | |
145 config.set_os(GPUTestConfig::kOsWin7); | |
146 config.set_build_type(GPUTestConfig::kBuildTypeRelease); | |
147 config.AddGPUVendor(0x10de); | |
148 config.set_gpu_device_id(0x0640); | |
149 EXPECT_TRUE(config.IsValid()); | |
150 | |
151 EXPECT_TRUE(config.Matches(std::string())); | |
152 | |
153 // os matching | |
154 EXPECT_TRUE(config.Matches("WIN")); | |
155 EXPECT_TRUE(config.Matches("WIN7")); | |
156 EXPECT_FALSE(config.Matches("MAC")); | |
157 EXPECT_TRUE(config.Matches("WIN7 LINUX")); | |
158 | |
159 // gpu vendor matching | |
160 EXPECT_TRUE(config.Matches("NVIDIA")); | |
161 EXPECT_TRUE(config.Matches("NVIDIA AMD")); | |
162 EXPECT_FALSE(config.Matches("INTEL")); | |
163 | |
164 // build type matching | |
165 EXPECT_TRUE(config.Matches("RELEASE")); | |
166 EXPECT_TRUE(config.Matches("RELEASE DEBUG")); | |
167 EXPECT_FALSE(config.Matches("DEBUG")); | |
168 | |
169 // exact matching | |
170 EXPECT_TRUE(config.Matches("WIN7 RELEASE NVIDIA 0X0640")); | |
171 EXPECT_FALSE(config.Matches("WIN7 RELEASE NVIDIA 0X0641")); | |
172 } | |
173 | |
174 TEST_F(GPUTestConfigTest, OverlapsWith) { | |
175 { // os | |
176 // win vs win7 | |
177 GPUTestConfig config; | |
178 config.set_os(GPUTestConfig::kOsWin); | |
179 GPUTestConfig config2; | |
180 config2.set_os(GPUTestConfig::kOsWin7); | |
181 EXPECT_TRUE(config.OverlapsWith(config2)); | |
182 EXPECT_TRUE(config2.OverlapsWith(config)); | |
183 // win vs win7+linux | |
184 config2.set_os(GPUTestConfig::kOsWin7 | GPUTestConfig::kOsLinux); | |
185 EXPECT_TRUE(config.OverlapsWith(config2)); | |
186 EXPECT_TRUE(config2.OverlapsWith(config)); | |
187 // win vs mac | |
188 config2.set_os(GPUTestConfig::kOsMac); | |
189 EXPECT_FALSE(config.OverlapsWith(config2)); | |
190 EXPECT_FALSE(config2.OverlapsWith(config)); | |
191 // win vs unknown | |
192 config2.set_os(GPUTestConfig::kOsUnknown); | |
193 EXPECT_TRUE(config.OverlapsWith(config2)); | |
194 EXPECT_TRUE(config2.OverlapsWith(config)); | |
195 } | |
196 | |
197 { // gpu vendor | |
198 GPUTestConfig config; | |
199 config.AddGPUVendor(0x10de); | |
200 // nvidia vs unknown | |
201 GPUTestConfig config2; | |
202 EXPECT_TRUE(config.OverlapsWith(config2)); | |
203 EXPECT_TRUE(config2.OverlapsWith(config)); | |
204 // nvidia vs intel | |
205 config2.AddGPUVendor(0x1086); | |
206 EXPECT_FALSE(config.OverlapsWith(config2)); | |
207 EXPECT_FALSE(config2.OverlapsWith(config)); | |
208 // nvidia vs nvidia+intel | |
209 config2.AddGPUVendor(0x10de); | |
210 EXPECT_TRUE(config.OverlapsWith(config2)); | |
211 EXPECT_TRUE(config2.OverlapsWith(config)); | |
212 } | |
213 | |
214 { // build type | |
215 // release vs debug | |
216 GPUTestConfig config; | |
217 config.set_build_type(GPUTestConfig::kBuildTypeRelease); | |
218 GPUTestConfig config2; | |
219 config2.set_build_type(GPUTestConfig::kBuildTypeDebug); | |
220 EXPECT_FALSE(config.OverlapsWith(config2)); | |
221 EXPECT_FALSE(config2.OverlapsWith(config)); | |
222 // release vs release+debug | |
223 config2.set_build_type(GPUTestConfig::kBuildTypeRelease | | |
224 GPUTestConfig::kBuildTypeDebug); | |
225 EXPECT_TRUE(config.OverlapsWith(config2)); | |
226 EXPECT_TRUE(config2.OverlapsWith(config)); | |
227 // release vs unknown | |
228 config2.set_build_type(GPUTestConfig::kBuildTypeUnknown); | |
229 EXPECT_TRUE(config.OverlapsWith(config2)); | |
230 EXPECT_TRUE(config2.OverlapsWith(config)); | |
231 } | |
232 | |
233 { // win7 vs nvidia | |
234 GPUTestConfig config; | |
235 config.set_os(GPUTestConfig::kOsWin7); | |
236 GPUTestConfig config2; | |
237 config2.AddGPUVendor(0x10de); | |
238 EXPECT_TRUE(config.OverlapsWith(config2)); | |
239 EXPECT_TRUE(config2.OverlapsWith(config)); | |
240 } | |
241 } | |
242 | |
243 TEST_F(GPUTestConfigTest, LoadCurrentConfig) { | |
244 GPUTestBotConfig config; | |
245 gpu::GPUInfo gpu_info; | |
246 gpu_info.gpu.vendor_id = 0x10de; | |
247 gpu_info.gpu.device_id = 0x0640; | |
248 EXPECT_TRUE(config.LoadCurrentConfig(&gpu_info)); | |
249 EXPECT_TRUE(config.IsValid()); | |
250 } | |
251 | |
OLD | NEW |