OLD | NEW |
| (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 OsInfoTest : public testing::Test { | |
13 public: | |
14 OsInfoTest() { } | |
15 ~OsInfoTest() override {} | |
16 | |
17 typedef GpuControlList::OsInfo OsInfo; | |
18 }; | |
19 | |
20 TEST_F(OsInfoTest, ValidOsInfo) { | |
21 const std::string os[] = { | |
22 "win", | |
23 "linux", | |
24 "macosx", | |
25 "chromeos", | |
26 "android", | |
27 "any" | |
28 }; | |
29 const GpuControlList::OsType os_type[] = { | |
30 GpuControlList::kOsWin, | |
31 GpuControlList::kOsLinux, | |
32 GpuControlList::kOsMacosx, | |
33 GpuControlList::kOsChromeOS, | |
34 GpuControlList::kOsAndroid, | |
35 GpuControlList::kOsAny | |
36 }; | |
37 for (size_t i = 0; i < arraysize(os); ++i) { | |
38 OsInfo info(os[i], "=", "10.6", std::string()); | |
39 EXPECT_TRUE(info.IsValid()); | |
40 EXPECT_EQ(os_type[i], info.type()); | |
41 } | |
42 { | |
43 OsInfo info("any", "any", std::string(), std::string()); | |
44 EXPECT_TRUE(info.IsValid()); | |
45 } | |
46 } | |
47 | |
48 TEST_F(OsInfoTest, InvalidOsInfo) { | |
49 const std::string os[] = { | |
50 "win", | |
51 "linux", | |
52 "macosx", | |
53 "chromeos", | |
54 "android", | |
55 "any" | |
56 }; | |
57 for (size_t i = 0; i < arraysize(os); ++i) { | |
58 { | |
59 OsInfo info(os[i], std::string(), std::string(), std::string()); | |
60 EXPECT_FALSE(info.IsValid()); | |
61 } | |
62 { | |
63 OsInfo info(os[i], "=", std::string(), std::string()); | |
64 EXPECT_FALSE(info.IsValid()); | |
65 } | |
66 { | |
67 OsInfo info(os[i], std::string(), "10.6", std::string()); | |
68 EXPECT_FALSE(info.IsValid()); | |
69 } | |
70 } | |
71 const std::string os_cap[] = { | |
72 "Win", | |
73 "Linux", | |
74 "MacOSX", | |
75 "ChromeOS", | |
76 "Android", | |
77 }; | |
78 for (size_t i = 0; i < arraysize(os_cap); ++i) { | |
79 OsInfo info(os_cap[i], "=", "10.6", std::string()); | |
80 EXPECT_FALSE(info.IsValid()); | |
81 } | |
82 } | |
83 | |
84 TEST_F(OsInfoTest, NonNumericOsVersion) { | |
85 { | |
86 OsInfo info("android", "<", "4.2", std::string()); | |
87 EXPECT_TRUE(info.IsValid()); | |
88 // The expectation is the version number first, then extra info. | |
89 EXPECT_TRUE(info.Contains( | |
90 GpuControlList::kOsAndroid, "4.0 bug fix version 5.2")); | |
91 EXPECT_FALSE(info.Contains(GpuControlList::kOsAndroid, "F")); | |
92 EXPECT_FALSE(info.Contains(GpuControlList::kOsAndroid, "F 4.0")); | |
93 EXPECT_FALSE(info.Contains(GpuControlList::kOsAndroid, std::string())); | |
94 } | |
95 { | |
96 OsInfo info("android", "any", std::string(), std::string()); | |
97 EXPECT_TRUE(info.IsValid()); | |
98 EXPECT_TRUE(info.Contains( | |
99 GpuControlList::kOsAndroid, "4.0 bug fix version 5.2")); | |
100 EXPECT_TRUE(info.Contains(GpuControlList::kOsAndroid, "F")); | |
101 EXPECT_TRUE(info.Contains(GpuControlList::kOsAndroid, "F 4.0")); | |
102 EXPECT_TRUE(info.Contains(GpuControlList::kOsAndroid, std::string())); | |
103 } | |
104 } | |
105 | |
106 TEST_F(OsInfoTest, OsVersionZero) { | |
107 { | |
108 OsInfo info("android", "<", "4.2", std::string()); | |
109 EXPECT_TRUE(info.IsValid()); | |
110 // All forms of version 0 is considered invalid. | |
111 EXPECT_FALSE(info.Contains(GpuControlList::kOsAndroid, "0")); | |
112 EXPECT_FALSE(info.Contains(GpuControlList::kOsAndroid, "0.0")); | |
113 EXPECT_FALSE(info.Contains(GpuControlList::kOsAndroid, "0.00.0")); | |
114 } | |
115 { | |
116 OsInfo info("android", "any", std::string(), std::string()); | |
117 EXPECT_TRUE(info.IsValid()); | |
118 EXPECT_TRUE(info.Contains(GpuControlList::kOsAndroid, "0")); | |
119 EXPECT_TRUE(info.Contains(GpuControlList::kOsAndroid, "0.0")); | |
120 EXPECT_TRUE(info.Contains(GpuControlList::kOsAndroid, "0.00.0")); | |
121 } | |
122 } | |
123 | |
124 TEST_F(OsInfoTest, OsComparison) { | |
125 { | |
126 OsInfo info("any", "any", std::string(), std::string()); | |
127 const GpuControlList::OsType os_type[] = { | |
128 GpuControlList::kOsWin, GpuControlList::kOsLinux, | |
129 GpuControlList::kOsMacosx, GpuControlList::kOsChromeOS, | |
130 GpuControlList::kOsAndroid, | |
131 }; | |
132 for (size_t i = 0; i < arraysize(os_type); ++i) { | |
133 EXPECT_TRUE(info.Contains(os_type[i], std::string())); | |
134 EXPECT_TRUE(info.Contains(os_type[i], "7.8")); | |
135 } | |
136 } | |
137 { | |
138 OsInfo info("win", ">=", "6", std::string()); | |
139 EXPECT_FALSE(info.Contains(GpuControlList::kOsMacosx, "10.8.3")); | |
140 EXPECT_FALSE(info.Contains(GpuControlList::kOsLinux, "10")); | |
141 EXPECT_FALSE(info.Contains(GpuControlList::kOsChromeOS, "13")); | |
142 EXPECT_FALSE(info.Contains(GpuControlList::kOsAndroid, "7")); | |
143 EXPECT_FALSE(info.Contains(GpuControlList::kOsAny, "7")); | |
144 EXPECT_FALSE(info.Contains(GpuControlList::kOsWin, std::string())); | |
145 EXPECT_TRUE(info.Contains(GpuControlList::kOsWin, "6")); | |
146 EXPECT_TRUE(info.Contains(GpuControlList::kOsWin, "6.1")); | |
147 EXPECT_TRUE(info.Contains(GpuControlList::kOsWin, "7")); | |
148 EXPECT_FALSE(info.Contains(GpuControlList::kOsWin, "5")); | |
149 } | |
150 } | |
151 | |
152 } // namespace gpu | |
153 | |
OLD | NEW |