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

Side by Side Diff: gpu/config/gpu_control_list_version_info_unittest.cc

Issue 2756793003: Move GPU blacklist and driver bug workaround list from json to data struct. (Closed)
Patch Set: pure rebase Created 3 years, 8 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
OLDNEW
(Empty)
1 // Copyright (c) 2013 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 <stddef.h>
6
7 #include "gpu/config/gpu_control_list.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace gpu {
11
12 class VersionInfoTest : public testing::Test {
13 public:
14 VersionInfoTest() { }
15 ~VersionInfoTest() override {}
16
17 typedef GpuControlList::VersionInfo VersionInfo;
18 };
19
20 TEST_F(VersionInfoTest, ValidVersionInfo) {
21 const std::string op[] = {
22 "=",
23 "<",
24 "<=",
25 ">",
26 ">=",
27 "any",
28 "between"
29 };
30 for (size_t i = 0; i < arraysize(op); ++i) {
31 std::string string1;
32 std::string string2;
33 if (op[i] != "any")
34 string1 = "8.9";
35 if (op[i] == "between")
36 string2 = "9.0";
37 VersionInfo info(op[i], std::string(), string1, string2);
38 EXPECT_TRUE(info.IsValid());
39 }
40
41 const std::string style[] = {
42 "lexical",
43 "numerical",
44 "" // Default, same as "numerical"
45 };
46 for (size_t i =0; i < arraysize(style); ++i) {
47 VersionInfo info("=", style[i], "8.9", std::string());
48 EXPECT_TRUE(info.IsValid());
49 if (style[i] == "lexical")
50 EXPECT_TRUE(info.IsLexical());
51 else
52 EXPECT_FALSE(info.IsLexical());
53 }
54
55 const std::string number[] = {
56 "10",
57 "10.9",
58 "10.0",
59 "10.0.9",
60 "0.8",
61 // Leading 0s are valid.
62 "10.09",
63 // Whitespaces are ignored.
64 " 10.9",
65 "10.9 ",
66 "10 .9",
67 "10. 9",
68 };
69 for (size_t i =0; i < arraysize(number); ++i) {
70 VersionInfo info("=", std::string(), number[i], std::string());
71 EXPECT_TRUE(info.IsValid());
72 }
73 }
74
75 TEST_F(VersionInfoTest, InvalidVersionInfo) {
76 const std::string op[] = {
77 "=",
78 "<",
79 "<=",
80 ">",
81 ">=",
82 "any",
83 "between"
84 };
85 for (size_t i = 0; i < arraysize(op); ++i) {
86 {
87 VersionInfo info(op[i], std::string(), "8.9", std::string());
88 if (op[i] == "between")
89 EXPECT_FALSE(info.IsValid());
90 else
91 EXPECT_TRUE(info.IsValid());
92 }
93 {
94 VersionInfo info(op[i], std::string(), std::string(), std::string());
95 if (op[i] == "any")
96 EXPECT_TRUE(info.IsValid());
97 else
98 EXPECT_FALSE(info.IsValid());
99 }
100 {
101 VersionInfo info(op[i], std::string(), "8.9", "9.0");
102 EXPECT_TRUE(info.IsValid());
103 }
104 }
105
106 const std::string number[] = {
107 "8.E",
108 "8-9",
109 };
110 for (size_t i = 0; i < arraysize(number); ++i) {
111 VersionInfo info("=", std::string(), number[i], std::string());
112 EXPECT_FALSE(info.IsValid());
113 }
114 }
115
116 TEST_F(VersionInfoTest, VersionComparison) {
117 {
118 VersionInfo info("any", std::string(), std::string(), std::string());
119 EXPECT_TRUE(info.Contains("0"));
120 EXPECT_TRUE(info.Contains("8.9"));
121 EXPECT_TRUE(info.Contains("100"));
122 }
123 {
124 VersionInfo info(">", std::string(), "8.9", std::string());
125 EXPECT_FALSE(info.Contains("7"));
126 EXPECT_FALSE(info.Contains("8.9"));
127 EXPECT_FALSE(info.Contains("8.9.1"));
128 EXPECT_TRUE(info.Contains("9"));
129 }
130 {
131 VersionInfo info(">=", std::string(), "8.9", std::string());
132 EXPECT_FALSE(info.Contains("7"));
133 EXPECT_TRUE(info.Contains("8.9"));
134 EXPECT_TRUE(info.Contains("8.9.1"));
135 EXPECT_TRUE(info.Contains("9"));
136 }
137 {
138 VersionInfo info("=", std::string(), "8.9", std::string());
139 EXPECT_FALSE(info.Contains("7"));
140 EXPECT_TRUE(info.Contains("8"));
141 EXPECT_TRUE(info.Contains("8.9"));
142 EXPECT_TRUE(info.Contains("8.9.1"));
143 EXPECT_FALSE(info.Contains("9"));
144 }
145 {
146 VersionInfo info("<", std::string(), "8.9", std::string());
147 EXPECT_TRUE(info.Contains("7"));
148 EXPECT_TRUE(info.Contains("8.8"));
149 EXPECT_FALSE(info.Contains("8"));
150 EXPECT_FALSE(info.Contains("8.9"));
151 EXPECT_FALSE(info.Contains("8.9.1"));
152 EXPECT_FALSE(info.Contains("9"));
153 }
154 {
155 VersionInfo info("<=", std::string(), "8.9", std::string());
156 EXPECT_TRUE(info.Contains("7"));
157 EXPECT_TRUE(info.Contains("8.8"));
158 EXPECT_TRUE(info.Contains("8"));
159 EXPECT_TRUE(info.Contains("8.9"));
160 EXPECT_TRUE(info.Contains("8.9.1"));
161 EXPECT_FALSE(info.Contains("9"));
162 }
163 {
164 VersionInfo info("between", std::string(), "8.9", "9.1");
165 EXPECT_FALSE(info.Contains("7"));
166 EXPECT_FALSE(info.Contains("8.8"));
167 EXPECT_TRUE(info.Contains("8"));
168 EXPECT_TRUE(info.Contains("8.9"));
169 EXPECT_TRUE(info.Contains("8.9.1"));
170 EXPECT_TRUE(info.Contains("9"));
171 EXPECT_TRUE(info.Contains("9.1"));
172 EXPECT_TRUE(info.Contains("9.1.9"));
173 EXPECT_FALSE(info.Contains("9.2"));
174 EXPECT_FALSE(info.Contains("10"));
175 }
176 }
177
178 TEST_F(VersionInfoTest, DateComparison) {
179 // When we use '-' as splitter, we assume a format of mm-dd-yyyy
180 // or mm-yyyy, i.e., a date.
181 {
182 VersionInfo info("=", std::string(), "1976.3.21", std::string());
183 EXPECT_TRUE(info.Contains("3-21-1976", '-'));
184 EXPECT_TRUE(info.Contains("3-1976", '-'));
185 EXPECT_TRUE(info.Contains("03-1976", '-'));
186 EXPECT_FALSE(info.Contains("21-3-1976", '-'));
187 }
188 {
189 VersionInfo info(">", std::string(), "1976.3.21", std::string());
190 EXPECT_TRUE(info.Contains("3-22-1976", '-'));
191 EXPECT_TRUE(info.Contains("4-1976", '-'));
192 EXPECT_TRUE(info.Contains("04-1976", '-'));
193 EXPECT_FALSE(info.Contains("3-1976", '-'));
194 EXPECT_FALSE(info.Contains("2-1976", '-'));
195 }
196 {
197 VersionInfo info("between", std::string(), "1976.3.21", "2012.12.25");
198 EXPECT_FALSE(info.Contains("3-20-1976", '-'));
199 EXPECT_TRUE(info.Contains("3-21-1976", '-'));
200 EXPECT_TRUE(info.Contains("3-22-1976", '-'));
201 EXPECT_TRUE(info.Contains("3-1976", '-'));
202 EXPECT_TRUE(info.Contains("4-1976", '-'));
203 EXPECT_TRUE(info.Contains("1-1-2000", '-'));
204 EXPECT_TRUE(info.Contains("1-2000", '-'));
205 EXPECT_TRUE(info.Contains("2000", '-'));
206 EXPECT_TRUE(info.Contains("11-2012", '-'));
207 EXPECT_TRUE(info.Contains("12-2012", '-'));
208 EXPECT_TRUE(info.Contains("12-24-2012", '-'));
209 EXPECT_TRUE(info.Contains("12-25-2012", '-'));
210 EXPECT_FALSE(info.Contains("12-26-2012", '-'));
211 EXPECT_FALSE(info.Contains("1-2013", '-'));
212 EXPECT_FALSE(info.Contains("2013", '-'));
213 }
214 }
215
216 TEST_F(VersionInfoTest, LexicalComparison) {
217 // When we use lexical style, we assume a format major.minor.*.
218 // We apply numerical comparison to major, lexical comparison to others.
219 {
220 VersionInfo info("<", "lexical", "8.201", std::string());
221 EXPECT_TRUE(info.Contains("8.001.100"));
222 EXPECT_TRUE(info.Contains("8.109"));
223 EXPECT_TRUE(info.Contains("8.10900"));
224 EXPECT_TRUE(info.Contains("8.109.100"));
225 EXPECT_TRUE(info.Contains("8.2"));
226 EXPECT_TRUE(info.Contains("8.20"));
227 EXPECT_TRUE(info.Contains("8.200"));
228 EXPECT_TRUE(info.Contains("8.20.100"));
229 EXPECT_FALSE(info.Contains("8.201"));
230 EXPECT_FALSE(info.Contains("8.2010"));
231 EXPECT_FALSE(info.Contains("8.21"));
232 EXPECT_FALSE(info.Contains("8.21.100"));
233 EXPECT_FALSE(info.Contains("9.002"));
234 EXPECT_FALSE(info.Contains("9.201"));
235 EXPECT_FALSE(info.Contains("12"));
236 EXPECT_FALSE(info.Contains("12.201"));
237 }
238 {
239 VersionInfo info("<", "lexical", "9.002", std::string());
240 EXPECT_TRUE(info.Contains("8.001.100"));
241 EXPECT_TRUE(info.Contains("8.109"));
242 EXPECT_TRUE(info.Contains("8.10900"));
243 EXPECT_TRUE(info.Contains("8.109.100"));
244 EXPECT_TRUE(info.Contains("8.2"));
245 EXPECT_TRUE(info.Contains("8.20"));
246 EXPECT_TRUE(info.Contains("8.200"));
247 EXPECT_TRUE(info.Contains("8.20.100"));
248 EXPECT_TRUE(info.Contains("8.201"));
249 EXPECT_TRUE(info.Contains("8.2010"));
250 EXPECT_TRUE(info.Contains("8.21"));
251 EXPECT_TRUE(info.Contains("8.21.100"));
252 EXPECT_FALSE(info.Contains("9.002"));
253 EXPECT_FALSE(info.Contains("9.201"));
254 EXPECT_FALSE(info.Contains("12"));
255 EXPECT_FALSE(info.Contains("12.201"));
256 }
257 }
258
259 } // namespace gpu
260
OLDNEW
« no previous file with comments | « gpu/config/gpu_control_list_unittest.cc ('k') | gpu/config/gpu_control_list_version_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698