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