• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <gtest/gtest.h>
2 
3 #include <stdint.h>
4 #include <string.h>
5 
6 #include <string>
7 
8 #define CPUINFO_HARDWARE_VALUE_MAX 64
9 #define CPUINFO_ARM_CHIPSET_NAME_MAX 48
10 
11 extern "C" void cpuinfo_arm_android_parse_proc_cpuinfo_hardware(
12 	const char hardware[CPUINFO_HARDWARE_VALUE_MAX],
13 	uint32_t cores,
14 	uint32_t max_cpu_freq_max,
15 	bool is_tegra,
16 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]);
17 
parse_proc_cpuinfo_hardware(std::string hardware,uint32_t cores=1,uint32_t max_cpu_freq_max=0)18 inline std::string parse_proc_cpuinfo_hardware(
19 	std::string hardware,
20 	uint32_t cores = 1,
21 	uint32_t max_cpu_freq_max = 0) {
22 	char hardware_buffer[CPUINFO_HARDWARE_VALUE_MAX];
23 	strncpy(hardware_buffer, hardware.c_str(), CPUINFO_HARDWARE_VALUE_MAX);
24 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
25 	cpuinfo_arm_android_parse_proc_cpuinfo_hardware(hardware_buffer, cores, max_cpu_freq_max, false, chipset_name);
26 	return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
27 }
28 
parse_proc_cpuinfo_hardware_tegra(std::string hardware,uint32_t cores=1,uint32_t max_cpu_freq_max=0)29 inline std::string parse_proc_cpuinfo_hardware_tegra(
30 	std::string hardware,
31 	uint32_t cores = 1,
32 	uint32_t max_cpu_freq_max = 0) {
33 	char hardware_buffer[CPUINFO_HARDWARE_VALUE_MAX];
34 	strncpy(hardware_buffer, hardware.c_str(), CPUINFO_HARDWARE_VALUE_MAX);
35 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
36 	cpuinfo_arm_android_parse_proc_cpuinfo_hardware(hardware_buffer, cores, max_cpu_freq_max, true, chipset_name);
37 	return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
38 }
39 
TEST(PROC_CPUINFO_HARDWARE,qualcomm_msm)40 TEST(PROC_CPUINFO_HARDWARE, qualcomm_msm) {
41 	EXPECT_EQ("Qualcomm MSM7225AB", parse_proc_cpuinfo_hardware("LG MSM7225AB"));
42 	EXPECT_EQ("Qualcomm MSM7225AB", parse_proc_cpuinfo_hardware("LG MSM7225AB V1"));
43 	EXPECT_EQ("Qualcomm MSM7625A", parse_proc_cpuinfo_hardware("QCT MSM7625a FFA"));
44 	EXPECT_EQ("Qualcomm MSM8208", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8208"));
45 	EXPECT_EQ("Qualcomm MSM8209", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8209"));
46 	EXPECT_EQ("Qualcomm MSM8210", parse_proc_cpuinfo_hardware("Qualcomm MSM8210"));
47 	EXPECT_EQ("Qualcomm MSM8212", parse_proc_cpuinfo_hardware("Qualcomm MSM 8212 (Flattened Device Tree)"));
48 	EXPECT_EQ("Qualcomm MSM8212", parse_proc_cpuinfo_hardware("Qualcomm MSM8212"));
49 	EXPECT_EQ("Qualcomm MSM8225", parse_proc_cpuinfo_hardware("QCT MSM8225 SURF"));
50 	EXPECT_EQ("Qualcomm MSM8226", parse_proc_cpuinfo_hardware("Qualcomm MSM 8226 (Flattened Device Tree)"));
51 	EXPECT_EQ("Qualcomm MSM8226", parse_proc_cpuinfo_hardware("Qualcomm MSM8226"));
52 	EXPECT_EQ("Qualcomm MSM8228", parse_proc_cpuinfo_hardware("Qualcomm MSM8228"));
53 	EXPECT_EQ("Qualcomm MSM8230", parse_proc_cpuinfo_hardware("LGE MSM8230 L9II"));
54 	EXPECT_EQ("Qualcomm MSM8239", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8239"));
55 	EXPECT_EQ("Qualcomm MSM8609", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8609"));
56 	EXPECT_EQ("Qualcomm MSM8610", parse_proc_cpuinfo_hardware("Qualcomm MSM 8610 (Flattened Device Tree)", 2));
57 	EXPECT_EQ("Qualcomm MSM8610", parse_proc_cpuinfo_hardware("Qualcomm MSM8610", 2));
58 #if CPUINFO_ARCH_ARM
59 	EXPECT_EQ("Qualcomm MSM8612", parse_proc_cpuinfo_hardware("Qualcomm MSM 8610 (Flattened Device Tree)", 4));
60 	EXPECT_EQ("Qualcomm MSM8612", parse_proc_cpuinfo_hardware("Qualcomm MSM 8612 (Flattened Device Tree)"));
61 #endif /* CPUINFO_ARCH_ARM */
62 	EXPECT_EQ("Qualcomm MSM8625", parse_proc_cpuinfo_hardware("LG MSM8625 V7"));
63 	EXPECT_EQ("Qualcomm MSM8625", parse_proc_cpuinfo_hardware("QCT MSM8625 FFA"));
64 	EXPECT_EQ("Qualcomm MSM8625", parse_proc_cpuinfo_hardware("QCT MSM8625 SURF"));
65 	EXPECT_EQ("Qualcomm MSM8625Q", parse_proc_cpuinfo_hardware("QRD MSM8625Q SKUD"));
66 	EXPECT_EQ("Qualcomm MSM8626", parse_proc_cpuinfo_hardware("Qualcomm MSM8626"));
67 	EXPECT_EQ("Qualcomm MSM8627", parse_proc_cpuinfo_hardware("QCT MSM8627 MTP"));
68 	EXPECT_EQ("Qualcomm MSM8628", parse_proc_cpuinfo_hardware("Qualcomm MSM8628"));
69 	EXPECT_EQ("Qualcomm MSM8909", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8909"));
70 	EXPECT_EQ("Qualcomm MSM8916", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8216"));
71 	EXPECT_EQ("Qualcomm MSM8916", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8916", 4));
72 	EXPECT_EQ("Qualcomm MSM8916", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8916MSM8916", 4));
73 	EXPECT_EQ("Qualcomm MSM8917", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8917", 4));
74 	EXPECT_EQ("Qualcomm MSM8920", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8920"));
75 	EXPECT_EQ("Qualcomm MSM8926", parse_proc_cpuinfo_hardware("Qualcomm MSM 8926 (Flattened Device Tree)"));
76 	EXPECT_EQ("Qualcomm MSM8926", parse_proc_cpuinfo_hardware("Qualcomm MSM8926"));
77 	EXPECT_EQ("Qualcomm MSM8928", parse_proc_cpuinfo_hardware("Qualcomm MSM8928"));
78 	EXPECT_EQ("Qualcomm MSM8928", parse_proc_cpuinfo_hardware("Qualcomm msm 8928"));
79 	EXPECT_EQ("Qualcomm MSM8929", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8929"));
80 	EXPECT_EQ("Qualcomm MSM8930", parse_proc_cpuinfo_hardware("LGE MSM8930 FX3"));
81 	EXPECT_EQ("Qualcomm MSM8930", parse_proc_cpuinfo_hardware("QCT MSM8930 CDP"));
82 	EXPECT_EQ("Qualcomm MSM8930", parse_proc_cpuinfo_hardware("QCT MSM8930 MTP"));
83 	EXPECT_EQ("Qualcomm MSM8937", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8937", 8));
84 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI ALE_L04"));
85 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI ATH-UL01"));
86 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KII-L05"));
87 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L21"));
88 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L22"));
89 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L23"));
90 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L24"));
91 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L33"));
92 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI RIO-L01_VB"));
93 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI RIO-L02"));
94 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI RIO-L03"));
95 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI TEXAS-A1"));
96 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8939"));
97 	EXPECT_EQ("Qualcomm MSM8939", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8939_BC"));
98 	EXPECT_EQ("Qualcomm MSM8940", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8940"));
99 	EXPECT_EQ("Qualcomm MSM8952", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8952"));
100 	EXPECT_EQ("Qualcomm MSM8952", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8952MSM8952"));
101 	EXPECT_EQ("Qualcomm MSM8952", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc. MSM8952 QRD SKUM"));
102 	EXPECT_EQ("Qualcomm MSM8953", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8953"));
103 	EXPECT_EQ("Qualcomm MSM8953PRO", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8953Pro"));
104 	EXPECT_EQ("Qualcomm MSM8956", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8956"));
105 	EXPECT_EQ("Qualcomm MSM8960", parse_proc_cpuinfo_hardware("LGE MSM8960 D1L KR", 2));
106 	EXPECT_EQ("Qualcomm MSM8960", parse_proc_cpuinfo_hardware("LGE MSM8960 FX1", 2));
107 	EXPECT_EQ("Qualcomm MSM8960", parse_proc_cpuinfo_hardware("LGE MSM8960 Lx", 2));
108 	EXPECT_EQ("Qualcomm MSM8960", parse_proc_cpuinfo_hardware("LGE MSM8960 VU2", 2));
109 	EXPECT_EQ("Qualcomm MSM8960", parse_proc_cpuinfo_hardware("QCT MSM8960 CDP", 2));
110 	EXPECT_EQ("Qualcomm MSM8960", parse_proc_cpuinfo_hardware("Qualcomm MSM8960", 2));
111 	EXPECT_EQ("Qualcomm MSM8960DT", parse_proc_cpuinfo_hardware("msm8960dt"));
112 	EXPECT_EQ("Qualcomm MSM8974", parse_proc_cpuinfo_hardware("Qualcomm MSM 8974 (Flattened Device Tree)"));
113 	EXPECT_EQ(
114 		"Qualcomm MSM8974",
115 		parse_proc_cpuinfo_hardware("Qualcomm MSM 8974 HAMMERHEAD (Flattened Device Tree)"));
116 	EXPECT_EQ("Qualcomm MSM8974", parse_proc_cpuinfo_hardware("Qualcomm MSM8974"));
117 	EXPECT_EQ("Qualcomm MSM8974PRO-AA", parse_proc_cpuinfo_hardware("Qualcomm MSM8974PRO-AA"));
118 	EXPECT_EQ("Qualcomm MSM8974PRO-AB", parse_proc_cpuinfo_hardware("Qualcomm MSM8974PRO-AB"));
119 	EXPECT_EQ("Qualcomm MSM8974PRO-AC", parse_proc_cpuinfo_hardware("Qualcomm MSM8974PRO-AC"));
120 	EXPECT_EQ("Qualcomm MSM8976", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8976"));
121 	EXPECT_EQ("Qualcomm MSM8976PRO", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8976SG"));
122 	EXPECT_EQ("Qualcomm MSM8992", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8992"));
123 	EXPECT_EQ("Qualcomm MSM8994", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8994"));
124 	EXPECT_EQ("Qualcomm MSM8994V", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc. MSM8994v2.1 MTP"));
125 	EXPECT_EQ("Qualcomm MSM8996", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996", 4));
126 	EXPECT_EQ(
127 		"Qualcomm MSM8996PRO-AB",
128 		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996pro", 4, 1593600 /* LITTLE core */));
129 	EXPECT_EQ(
130 		"Qualcomm MSM8996PRO-AB",
131 		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996pro", 4, 2150400 /* big core */));
132 	EXPECT_EQ(
133 		"Qualcomm MSM8996PRO-AC",
134 		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996pro", 4, 2188800 /* LITTLE core */));
135 	EXPECT_EQ(
136 		"Qualcomm MSM8996PRO-AC",
137 		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996pro", 4, 2342400 /* big core */));
138 	EXPECT_EQ("Qualcomm MSM8998", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8998"));
139 }
140 
TEST(PROC_CPUINFO_HARDWARE,qualcomm_apq)141 TEST(PROC_CPUINFO_HARDWARE, qualcomm_apq) {
142 	EXPECT_EQ("Qualcomm APQ8009", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8009"));
143 	EXPECT_EQ("Qualcomm APQ8016", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8016"));
144 	EXPECT_EQ("Qualcomm APQ8016", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8016APQ8016"));
145 	EXPECT_EQ("Qualcomm APQ8017", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8017"));
146 	EXPECT_EQ("Qualcomm APQ8026", parse_proc_cpuinfo_hardware("Qualcomm APQ8026"));
147 	EXPECT_EQ("Qualcomm APQ8028", parse_proc_cpuinfo_hardware("Qualcomm APQ8028"));
148 	EXPECT_EQ("Qualcomm APQ8039", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8039"));
149 	EXPECT_EQ("Qualcomm APQ8053", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8053"));
150 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF48S"));
151 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF49K"));
152 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF50L"));
153 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF51K"));
154 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF51L"));
155 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF51S"));
156 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF52K"));
157 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF52L"));
158 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF52S"));
159 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("QCT APQ8064 AWIFI"));
160 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("QCT APQ8064 DEB"));
161 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("QCT APQ8064 DUMA"));
162 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("QCT APQ8064 FLO"));
163 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("QCT APQ8064 LEOPARDCAT"));
164 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("QCT APQ8064 MAKO"));
165 	EXPECT_EQ("Qualcomm APQ8064", parse_proc_cpuinfo_hardware("QCT APQ8064 MTP"));
166 	EXPECT_EQ("Qualcomm APQ8074PRO-AB", parse_proc_cpuinfo_hardware("Qualcomm APQ8074PRO-AB"));
167 	EXPECT_EQ("Qualcomm APQ8076", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8076"));
168 	EXPECT_EQ("Qualcomm APQ8084", parse_proc_cpuinfo_hardware("Qualcomm APQ 8084 (Flattened Device Tree)"));
169 	EXPECT_EQ("Qualcomm APQ8084", parse_proc_cpuinfo_hardware("Qualcomm APQ8084"));
170 	EXPECT_EQ("Qualcomm APQ8094", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8094"));
171 	EXPECT_EQ("Qualcomm APQ8096", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8096"));
172 }
173 
TEST(PROC_CPUINFO_HARDWARE,qualcomm_sdm)174 TEST(PROC_CPUINFO_HARDWARE, qualcomm_sdm) {
175 	EXPECT_EQ("Qualcomm Snapdragon 630", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc SDM630"));
176 	EXPECT_EQ("Qualcomm Snapdragon 660", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc SDM660"));
177 }
178 
TEST(PROC_CPUINFO_HARDWARE,qualcomm_sm)179 TEST(PROC_CPUINFO_HARDWARE, qualcomm_sm) {
180 	EXPECT_EQ("Qualcomm Snapdragon 8150", parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc SM8150"));
181 }
182 
TEST(PROC_CPUINFO_HARDWARE,mediatek_mt)183 TEST(PROC_CPUINFO_HARDWARE, mediatek_mt) {
184 	EXPECT_EQ("MediaTek MT5507", parse_proc_cpuinfo_hardware("MT5507"));
185 	EXPECT_EQ("MediaTek MT5508", parse_proc_cpuinfo_hardware("MT5508"));
186 	EXPECT_EQ("MediaTek MT6517", parse_proc_cpuinfo_hardware("MT6517"));
187 	EXPECT_EQ("MediaTek MT6570", parse_proc_cpuinfo_hardware("MT6570"));
188 	EXPECT_EQ("MediaTek MT6571", parse_proc_cpuinfo_hardware("MT6571"));
189 	EXPECT_EQ("MediaTek MT6572", parse_proc_cpuinfo_hardware("MT6572"));
190 	EXPECT_EQ("MediaTek MT6575", parse_proc_cpuinfo_hardware("MT6575"));
191 	EXPECT_EQ("MediaTek MT6577", parse_proc_cpuinfo_hardware("MT6577"));
192 	EXPECT_EQ("MediaTek MT6580", parse_proc_cpuinfo_hardware("MT6580"));
193 	EXPECT_EQ("MediaTek MT6580M", parse_proc_cpuinfo_hardware("MT6580M"));
194 	EXPECT_EQ("MediaTek MT6581", parse_proc_cpuinfo_hardware("MT6581"));
195 	EXPECT_EQ("MediaTek MT6582", parse_proc_cpuinfo_hardware("MT6582"));
196 	EXPECT_EQ("MediaTek MT6582", parse_proc_cpuinfo_hardware("Mediatek MT6582"));
197 	EXPECT_EQ("MediaTek MT6588", parse_proc_cpuinfo_hardware("MT6588"));
198 	EXPECT_EQ("MediaTek MT6589", parse_proc_cpuinfo_hardware("MT6589"));
199 	EXPECT_EQ("MediaTek MT6591", parse_proc_cpuinfo_hardware("MT6591"));
200 	EXPECT_EQ("MediaTek MT6592", parse_proc_cpuinfo_hardware("MT6592"));
201 	EXPECT_EQ("MediaTek MT6592T", parse_proc_cpuinfo_hardware("MT6592T"));
202 	EXPECT_EQ("MediaTek MT6592T", parse_proc_cpuinfo_hardware("MT6592trubo"));
203 	EXPECT_EQ("MediaTek MT6592T", parse_proc_cpuinfo_hardware("MT6592turbo"));
204 	EXPECT_EQ("MediaTek MT6595", parse_proc_cpuinfo_hardware("MT6595"));
205 	EXPECT_EQ("MediaTek MT6732", parse_proc_cpuinfo_hardware("MT6732"));
206 	EXPECT_EQ("MediaTek MT6732", parse_proc_cpuinfo_hardware("MT6752", 4));
207 	EXPECT_EQ("MediaTek MT6732M", parse_proc_cpuinfo_hardware("MT6732M"));
208 	EXPECT_EQ("MediaTek MT6735", parse_proc_cpuinfo_hardware("MT6735"));
209 	EXPECT_EQ("MediaTek MT6735M", parse_proc_cpuinfo_hardware("MT6735M"));
210 	EXPECT_EQ("MediaTek MT6735P", parse_proc_cpuinfo_hardware("MT6735P"));
211 	EXPECT_EQ("MediaTek MT6737", parse_proc_cpuinfo_hardware("MT6737"));
212 	EXPECT_EQ("MediaTek MT6737M", parse_proc_cpuinfo_hardware("MT6737M"));
213 	EXPECT_EQ("MediaTek MT6737T", parse_proc_cpuinfo_hardware("MT6737T"));
214 	EXPECT_EQ(
215 		"MediaTek MT6737T",
216 		parse_proc_cpuinfo_hardware("Samsung GrandPrimePlus LTE CIS rev04 board based on MT6737T"));
217 	EXPECT_EQ(
218 		"MediaTek MT6737T",
219 		parse_proc_cpuinfo_hardware("Samsung GrandPrimePlus LTE LTN DTV rev04 board based on MT6737T"));
220 	EXPECT_EQ(
221 		"MediaTek MT6737T",
222 		parse_proc_cpuinfo_hardware("Samsung GrandPrimePlus LTE LTN OPEN rev04 board based on MT6737T"));
223 	EXPECT_EQ("MediaTek MT6738", parse_proc_cpuinfo_hardware("MT6738"));
224 	EXPECT_EQ("MediaTek MT6750", parse_proc_cpuinfo_hardware("MT6750"));
225 	EXPECT_EQ("MediaTek MT6750T", parse_proc_cpuinfo_hardware("MT6750T"));
226 	EXPECT_EQ("MediaTek MT6752", parse_proc_cpuinfo_hardware("MT6752", 8));
227 	EXPECT_EQ("MediaTek MT6752M", parse_proc_cpuinfo_hardware("MT6752M", 8));
228 	EXPECT_EQ("MediaTek MT6753", parse_proc_cpuinfo_hardware("MT6753"));
229 	EXPECT_EQ("MediaTek MT6753T", parse_proc_cpuinfo_hardware("MT6753T"));
230 	EXPECT_EQ("MediaTek MT6755", parse_proc_cpuinfo_hardware("MT6755"));
231 	EXPECT_EQ("MediaTek MT6755BM", parse_proc_cpuinfo_hardware("MT6755BM"));
232 	EXPECT_EQ("MediaTek MT6755M", parse_proc_cpuinfo_hardware("MT6755M"));
233 	EXPECT_EQ("MediaTek MT6755V/B", parse_proc_cpuinfo_hardware("MT6755V/B"));
234 	EXPECT_EQ("MediaTek MT6755V/BM", parse_proc_cpuinfo_hardware("MT6755V/BM"));
235 	EXPECT_EQ("MediaTek MT6755V/C", parse_proc_cpuinfo_hardware("MT6755V/C"));
236 	EXPECT_EQ("MediaTek MT6755V/CM", parse_proc_cpuinfo_hardware("MT6755V/CM"));
237 	EXPECT_EQ("MediaTek MT6755V/W", parse_proc_cpuinfo_hardware("MT6755V/W"));
238 	EXPECT_EQ("MediaTek MT6755V/WM", parse_proc_cpuinfo_hardware("MT6755V/WM"));
239 	EXPECT_EQ("MediaTek MT6755V/WT", parse_proc_cpuinfo_hardware("MT6755V/WT"));
240 	EXPECT_EQ("MediaTek MT6757", parse_proc_cpuinfo_hardware("MT6757"));
241 	EXPECT_EQ(
242 		"MediaTek MT6757", parse_proc_cpuinfo_hardware("Samsung J7 Max LTE SWA rev02a board based on MT6757"));
243 	EXPECT_EQ("MediaTek MT6757CD", parse_proc_cpuinfo_hardware("MT6757CD"));
244 	EXPECT_EQ("MediaTek MT6757CH", parse_proc_cpuinfo_hardware("MT6757CH"));
245 	EXPECT_EQ("MediaTek MT6795", parse_proc_cpuinfo_hardware("MT6795"));
246 	EXPECT_EQ("MediaTek MT6795M", parse_proc_cpuinfo_hardware("MT6795M"));
247 	EXPECT_EQ("MediaTek MT6795MM", parse_proc_cpuinfo_hardware("MT6795MM"));
248 	EXPECT_EQ("MediaTek MT6795T", parse_proc_cpuinfo_hardware("MT6795T"));
249 	EXPECT_EQ("MediaTek MT6797", parse_proc_cpuinfo_hardware("MT6797"));
250 	EXPECT_EQ("MediaTek MT6797M", parse_proc_cpuinfo_hardware("MT6797M"));
251 	EXPECT_EQ("MediaTek MT6797T", parse_proc_cpuinfo_hardware("MT6797T"));
252 	EXPECT_EQ("MediaTek MT6797X", parse_proc_cpuinfo_hardware("MT6797X"));
253 	EXPECT_EQ("MediaTek MT8111", parse_proc_cpuinfo_hardware("MT8111"));
254 	EXPECT_EQ("MediaTek MT8121", parse_proc_cpuinfo_hardware("MT8121"));
255 	EXPECT_EQ("MediaTek MT8125", parse_proc_cpuinfo_hardware("MT8125"));
256 	EXPECT_EQ("MediaTek MT8127", parse_proc_cpuinfo_hardware("MT8127"));
257 	EXPECT_EQ("MediaTek MT8135", parse_proc_cpuinfo_hardware("MT8135"));
258 	EXPECT_EQ("MediaTek MT8151", parse_proc_cpuinfo_hardware("MT8151"));
259 	EXPECT_EQ("MediaTek MT8161", parse_proc_cpuinfo_hardware("MT8161"));
260 	EXPECT_EQ("MediaTek MT8161A", parse_proc_cpuinfo_hardware("MT8161A"));
261 	EXPECT_EQ("MediaTek MT8161P", parse_proc_cpuinfo_hardware("MT8161P"));
262 	EXPECT_EQ("MediaTek MT8163", parse_proc_cpuinfo_hardware("MT8163"));
263 	EXPECT_EQ("MediaTek MT8165", parse_proc_cpuinfo_hardware("MT8165"));
264 	EXPECT_EQ("MediaTek MT8167A", parse_proc_cpuinfo_hardware("MT8167A"));
265 	EXPECT_EQ("MediaTek MT8167B", parse_proc_cpuinfo_hardware("MT8167B"));
266 	EXPECT_EQ("MediaTek MT8173", parse_proc_cpuinfo_hardware("MT8173"));
267 	EXPECT_EQ("MediaTek MT8176", parse_proc_cpuinfo_hardware("MT8176"));
268 	EXPECT_EQ("MediaTek MT8312", parse_proc_cpuinfo_hardware("MT8312"));
269 	EXPECT_EQ("MediaTek MT8312C", parse_proc_cpuinfo_hardware("MT8312C"));
270 	EXPECT_EQ("MediaTek MT8312D", parse_proc_cpuinfo_hardware("MT8312D"));
271 	EXPECT_EQ("MediaTek MT8317", parse_proc_cpuinfo_hardware("MT8317"));
272 	EXPECT_EQ("MediaTek MT8321", parse_proc_cpuinfo_hardware("MT8321"));
273 	EXPECT_EQ("MediaTek MT8321M", parse_proc_cpuinfo_hardware("MT8321M"));
274 	EXPECT_EQ("MediaTek MT8377", parse_proc_cpuinfo_hardware("MT8377"));
275 	EXPECT_EQ("MediaTek MT8382", parse_proc_cpuinfo_hardware("MT8382"));
276 	EXPECT_EQ("MediaTek MT8389", parse_proc_cpuinfo_hardware("MT8389"));
277 	EXPECT_EQ("MediaTek MT8389Q", parse_proc_cpuinfo_hardware("MT8389Q"));
278 	EXPECT_EQ("MediaTek MT8392", parse_proc_cpuinfo_hardware("MT8392"));
279 	EXPECT_EQ("MediaTek MT8685", parse_proc_cpuinfo_hardware("MT8685"));
280 	EXPECT_EQ("MediaTek MT8732", parse_proc_cpuinfo_hardware("MT8732"));
281 	EXPECT_EQ("MediaTek MT8732T", parse_proc_cpuinfo_hardware("MT8732T"));
282 	EXPECT_EQ("MediaTek MT8735", parse_proc_cpuinfo_hardware("MT8735"));
283 	EXPECT_EQ("MediaTek MT8735A", parse_proc_cpuinfo_hardware("MT8735A"));
284 	EXPECT_EQ("MediaTek MT8735B", parse_proc_cpuinfo_hardware("MT8735B"));
285 	EXPECT_EQ("MediaTek MT8735D", parse_proc_cpuinfo_hardware("MT8735D"));
286 	EXPECT_EQ("MediaTek MT8735M", parse_proc_cpuinfo_hardware("MT8735M"));
287 	EXPECT_EQ("MediaTek MT8735P", parse_proc_cpuinfo_hardware("MT8735P"));
288 	EXPECT_EQ("MediaTek MT8735T", parse_proc_cpuinfo_hardware("MT8735T"));
289 	EXPECT_EQ("MediaTek MT8752", parse_proc_cpuinfo_hardware("MT8752"));
290 	EXPECT_EQ("MediaTek MT8783", parse_proc_cpuinfo_hardware("MT8783"));
291 	EXPECT_EQ("MediaTek MT8783T", parse_proc_cpuinfo_hardware("MT8783T"));
292 }
293 
TEST(PROC_CPUINFO_HARDWARE,samsung_exynos)294 TEST(PROC_CPUINFO_HARDWARE, samsung_exynos) {
295 	EXPECT_EQ("Samsung Exynos 4415", parse_proc_cpuinfo_hardware("Samsung EXYNOS4415"));
296 	EXPECT_EQ("Samsung Exynos 5420", parse_proc_cpuinfo_hardware("Samsung EXYNOS5420", 4));
297 	EXPECT_EQ("Samsung Exynos 5430", parse_proc_cpuinfo_hardware("Samsung EXYNOS5430"));
298 	EXPECT_EQ("Samsung Exynos 5433", parse_proc_cpuinfo_hardware("Samsung EXYNOS5433"));
299 	EXPECT_EQ("Samsung Exynos 7420", parse_proc_cpuinfo_hardware("SAMSUNG Exynos7420"));
300 	EXPECT_EQ("Samsung Exynos 7578", parse_proc_cpuinfo_hardware("SAMSUNG Exynos7580", 4));
301 	EXPECT_EQ("Samsung Exynos 7580", parse_proc_cpuinfo_hardware("SAMSUNG Exynos7580", 8));
302 }
303 
TEST(PROC_CPUINFO_HARDWARE,samsung_universal)304 TEST(PROC_CPUINFO_HARDWARE, samsung_universal) {
305 	EXPECT_EQ("Samsung Exynos 3470", parse_proc_cpuinfo_hardware("UNIVERSAL3470"));
306 	EXPECT_EQ("Samsung Exynos 3475", parse_proc_cpuinfo_hardware("UNIVERSAL3475"));
307 	EXPECT_EQ("Samsung Exynos 5260", parse_proc_cpuinfo_hardware("UNIVERSAL5260"));
308 	EXPECT_EQ("Samsung Exynos 5410", parse_proc_cpuinfo_hardware("UNIVERSAL5410"));
309 	EXPECT_EQ("Samsung Exynos 5420", parse_proc_cpuinfo_hardware("UNIVERSAL5420", 4));
310 	EXPECT_EQ("Samsung Exynos 5422", parse_proc_cpuinfo_hardware("universal5422"));
311 	EXPECT_EQ("Samsung Exynos 5430", parse_proc_cpuinfo_hardware("UNIVERSAL5430"));
312 }
313 
314 #if CPUINFO_ARCH_ARM
TEST(PROC_CPUINFO_HARDWARE,samsung_smdk)315 TEST(PROC_CPUINFO_HARDWARE, samsung_smdk) {
316 	EXPECT_EQ("Samsung Exynos 4210", parse_proc_cpuinfo_hardware("SMDK4210"));
317 	EXPECT_EQ("Samsung Exynos 4212", parse_proc_cpuinfo_hardware("SMDK4x12", 2));
318 	EXPECT_EQ("Samsung Exynos 4412", parse_proc_cpuinfo_hardware("SMDK4x12", 4));
319 }
320 
TEST(PROC_CPUINFO_HARDWARE,samsung_special)321 TEST(PROC_CPUINFO_HARDWARE, samsung_special) {
322 	EXPECT_EQ("Samsung Exynos 5250", parse_proc_cpuinfo_hardware("Manta"));
323 }
324 #endif /* CPUINFO_ARCH_ARM */
325 
TEST(PROC_CPUINFO_HARDWARE,hisilicon_kirin)326 TEST(PROC_CPUINFO_HARDWARE, hisilicon_kirin) {
327 #if CPUINFO_ARCH_ARM
328 	EXPECT_EQ("HiSilicon Kirin 920", parse_proc_cpuinfo_hardware("Hisilicon Kirin 920"));
329 	EXPECT_EQ("HiSilicon Kirin 920", parse_proc_cpuinfo_hardware("Kirin920"));
330 	EXPECT_EQ("HiSilicon Kirin 925", parse_proc_cpuinfo_hardware("Hisilicon Kirin 925"));
331 	EXPECT_EQ("HiSilicon Kirin 925", parse_proc_cpuinfo_hardware("Kirin925"));
332 #endif /* CPUINFO_ARCH_ARM */
333 	EXPECT_EQ("HiSilicon Kirin 930", parse_proc_cpuinfo_hardware("Hisilicon Kirin 930"));
334 	EXPECT_EQ("HiSilicon Kirin 935", parse_proc_cpuinfo_hardware("Hisilicon Kirin 935"));
335 	EXPECT_EQ("HiSilicon Kirin 950", parse_proc_cpuinfo_hardware("Hisilicon Kirin 950"));
336 	EXPECT_EQ("HiSilicon Kirin 955", parse_proc_cpuinfo_hardware("Hisilicon Kirin 955"));
337 }
338 
TEST(PROC_CPUINFO_HARDWARE,hisilicon_special)339 TEST(PROC_CPUINFO_HARDWARE, hisilicon_special) {
340 	EXPECT_EQ("HiSilicon Hi3751", parse_proc_cpuinfo_hardware("hi3751"));
341 #if CPUINFO_ARCH_ARM
342 	EXPECT_EQ("HiSilicon K3V2", parse_proc_cpuinfo_hardware("k3v2oem1"));
343 #endif /* CPUINFO_ARCH_ARM */
344 	EXPECT_EQ("HiSilicon Kirin 620", parse_proc_cpuinfo_hardware("hi6210sft"));
345 	EXPECT_EQ("HiSilicon Kirin 650", parse_proc_cpuinfo_hardware("hi6250"));
346 #if CPUINFO_ARCH_ARM
347 	EXPECT_EQ("HiSilicon Kirin 910T", parse_proc_cpuinfo_hardware("hi6620oem"));
348 #endif /* CPUINFO_ARCH_ARM */
349 }
350 
351 #if CPUINFO_ARCH_ARM
TEST(PROC_CPUINFO_HARDWARE,actions)352 TEST(PROC_CPUINFO_HARDWARE, actions) {
353 	EXPECT_EQ("Actions ATM7029", parse_proc_cpuinfo_hardware("gs702a"));
354 	EXPECT_EQ("Actions ATM7029B", parse_proc_cpuinfo_hardware("gs702c"));
355 	EXPECT_EQ("Actions ATM7059A", parse_proc_cpuinfo_hardware("gs705a"));
356 }
357 #endif /* CPUINFO_ARCH_ARM */
358 
TEST(PROC_CPUINFO_HARDWARE,allwinner_sunxi)359 TEST(PROC_CPUINFO_HARDWARE, allwinner_sunxi) {
360 #if CPUINFO_ARCH_ARM
361 	EXPECT_EQ("Allwinner A10", parse_proc_cpuinfo_hardware("sun4i", 1));
362 	EXPECT_EQ("Allwinner A13", parse_proc_cpuinfo_hardware("sun5i", 1));
363 	EXPECT_EQ("Allwinner A20", parse_proc_cpuinfo_hardware("sun7i", 2));
364 	EXPECT_EQ("Allwinner A23", parse_proc_cpuinfo_hardware("sun8i", 2));
365 	EXPECT_EQ("Allwinner A31", parse_proc_cpuinfo_hardware("sun6i", 4));
366 	EXPECT_EQ("Allwinner A33", parse_proc_cpuinfo_hardware("sun8i", 4));
367 #endif /* CPUINFO_ARCH_ARM */
368 	EXPECT_EQ("Allwinner A64", parse_proc_cpuinfo_hardware("sun50iw1", 4));
369 	EXPECT_EQ("Allwinner A64", parse_proc_cpuinfo_hardware("sun50iw1p1", 4));
370 	EXPECT_EQ("Allwinner A64", parse_proc_cpuinfo_hardware("sun50iw2", 4));
371 #if CPUINFO_ARCH_ARM
372 	EXPECT_EQ("Allwinner A80", parse_proc_cpuinfo_hardware("sun9i", 8));
373 	EXPECT_EQ("Allwinner A83T", parse_proc_cpuinfo_hardware("sun8i", 8));
374 #endif /* CPUINFO_ARCH_ARM */
375 }
376 
377 #if CPUINFO_ARCH_ARM
TEST(PROC_CPUINFO_HARDWARE,amlogic)378 TEST(PROC_CPUINFO_HARDWARE, amlogic) {
379 	EXPECT_EQ("Amlogic S805", parse_proc_cpuinfo_hardware("Amlogic Meson8B"));
380 	EXPECT_EQ("Amlogic S812", parse_proc_cpuinfo_hardware("Amlogic Meson8"));
381 }
382 
TEST(PROC_CPUINFO_HARDWARE,lg)383 TEST(PROC_CPUINFO_HARDWARE, lg) {
384 	EXPECT_EQ("LG Nuclun 7111", parse_proc_cpuinfo_hardware("Odin"));
385 }
386 
TEST(PROC_CPUINFO_HARDWARE,marvell_pxa)387 TEST(PROC_CPUINFO_HARDWARE, marvell_pxa) {
388 	EXPECT_EQ("Marvell PXA1088", parse_proc_cpuinfo_hardware("PXA1088"));
389 	EXPECT_EQ("Marvell PXA1088", parse_proc_cpuinfo_hardware("PXA1L88"));
390 	EXPECT_EQ("Marvell PXA1908", parse_proc_cpuinfo_hardware("PXA1908"));
391 	EXPECT_EQ("Marvell PXA1928", parse_proc_cpuinfo_hardware("PXA1928"));
392 	EXPECT_EQ("Marvell PXA988", parse_proc_cpuinfo_hardware("PXA988"));
393 }
394 
TEST(PROC_CPUINFO_HARDWARE,mstar)395 TEST(PROC_CPUINFO_HARDWARE, mstar) {
396 	EXPECT_EQ("MStar 6A338", parse_proc_cpuinfo_hardware("Madison"));
397 }
398 
TEST(PROC_CPUINFO_HARDWARE,nvidia)399 TEST(PROC_CPUINFO_HARDWARE, nvidia) {
400 	EXPECT_EQ("Nvidia Tegra AP20H", parse_proc_cpuinfo_hardware_tegra("picasso"));
401 	EXPECT_EQ("Nvidia Tegra AP20H", parse_proc_cpuinfo_hardware_tegra("picasso_e"));
402 	EXPECT_EQ("Nvidia Tegra AP20H", parse_proc_cpuinfo_hardware_tegra("stingray"));
403 	EXPECT_EQ("Nvidia Tegra AP33", parse_proc_cpuinfo_hardware_tegra("endeavoru"));
404 	EXPECT_EQ("Nvidia Tegra AP33", parse_proc_cpuinfo_hardware_tegra("x3"));
405 	EXPECT_EQ("Nvidia Tegra SL460N", parse_proc_cpuinfo_hardware_tegra("Ceres"));
406 	EXPECT_EQ("Nvidia Tegra T114", parse_proc_cpuinfo_hardware_tegra("macallan"));
407 	EXPECT_EQ("Nvidia Tegra T114", parse_proc_cpuinfo_hardware_tegra("mozart"));
408 	EXPECT_EQ("Nvidia Tegra T114", parse_proc_cpuinfo_hardware_tegra("tostab12BA"));
409 	EXPECT_EQ("Nvidia Tegra T124", parse_proc_cpuinfo_hardware_tegra("mocha"));
410 	EXPECT_EQ("Nvidia Tegra T124", parse_proc_cpuinfo_hardware_tegra("tn8"));
411 	EXPECT_EQ("Nvidia Tegra T20", parse_proc_cpuinfo_hardware_tegra("nbx03"));
412 	EXPECT_EQ("Nvidia Tegra T20", parse_proc_cpuinfo_hardware_tegra("p3"));
413 	EXPECT_EQ("Nvidia Tegra T20", parse_proc_cpuinfo_hardware_tegra("ventana"));
414 	EXPECT_EQ("Nvidia Tegra T30", parse_proc_cpuinfo_hardware_tegra("cardhu"));
415 	EXPECT_EQ("Nvidia Tegra T30", parse_proc_cpuinfo_hardware_tegra("chagall"));
416 	EXPECT_EQ("Nvidia Tegra T30", parse_proc_cpuinfo_hardware_tegra("picasso_m"));
417 	EXPECT_EQ("Nvidia Tegra T30", parse_proc_cpuinfo_hardware_tegra("picasso_mf"));
418 	EXPECT_EQ("Nvidia Tegra T30L", parse_proc_cpuinfo_hardware_tegra("BIRCH"));
419 	EXPECT_EQ("Nvidia Tegra T30L", parse_proc_cpuinfo_hardware_tegra("NS_14T004"));
420 	EXPECT_EQ("Nvidia Tegra T30L", parse_proc_cpuinfo_hardware_tegra("avalon"));
421 	EXPECT_EQ("Nvidia Tegra T30L", parse_proc_cpuinfo_hardware_tegra("picasso_e2"));
422 	EXPECT_EQ("Nvidia Tegra T30L", parse_proc_cpuinfo_hardware_tegra("tostab12BL"));
423 	EXPECT_EQ("Nvidia Tegra T30L", parse_proc_cpuinfo_hardware_tegra("txs03"));
424 	EXPECT_EQ("Nvidia Tegra T33", parse_proc_cpuinfo_hardware_tegra("bobsleigh"));
425 	EXPECT_EQ("Nvidia Tegra T33", parse_proc_cpuinfo_hardware_tegra("enrc2b"));
426 	EXPECT_EQ("Nvidia Tegra T33", parse_proc_cpuinfo_hardware_tegra("evitareul"));
427 	EXPECT_EQ("Nvidia Tegra T33", parse_proc_cpuinfo_hardware_tegra("tegra_fjdev103"));
428 }
429 #endif /* CPUINFO_ARCH_ARM */
430 
TEST(PROC_CPUINFO_HARDWARE,rockchip_rk)431 TEST(PROC_CPUINFO_HARDWARE, rockchip_rk) {
432 	EXPECT_EQ("Rockchip RK3126", parse_proc_cpuinfo_hardware("Rockchip RK3126"));
433 	EXPECT_EQ("Rockchip RK3128", parse_proc_cpuinfo_hardware("Rockchip RK3128"));
434 	EXPECT_EQ("Rockchip RK3188", parse_proc_cpuinfo_hardware("Rockchip RK3188"));
435 	EXPECT_EQ("Rockchip RK3228H", parse_proc_cpuinfo_hardware("rockchip,rk3228h"));
436 	EXPECT_EQ("Rockchip RK3229", parse_proc_cpuinfo_hardware("Rockchip RK3229"));
437 	EXPECT_EQ("Rockchip RK3328", parse_proc_cpuinfo_hardware("rockchip,rk3328"));
438 	EXPECT_EQ("Rockchip RK3368", parse_proc_cpuinfo_hardware("rockchip,rk3368"));
439 }
440 
TEST(PROC_CPUINFO_HARDWARE,spreadtrum_sc)441 TEST(PROC_CPUINFO_HARDWARE, spreadtrum_sc) {
442 	EXPECT_EQ("Spreadtrum SC5735", parse_proc_cpuinfo_hardware("sc5735"));
443 	EXPECT_EQ("Spreadtrum SC6820I", parse_proc_cpuinfo_hardware("sc6820i"));
444 	EXPECT_EQ("Spreadtrum SC7715", parse_proc_cpuinfo_hardware("scx15"));
445 	EXPECT_EQ("Spreadtrum SC7730", parse_proc_cpuinfo_hardware("sc7730"));
446 	EXPECT_EQ("Spreadtrum SC7731", parse_proc_cpuinfo_hardware("sc7731"));
447 	EXPECT_EQ("Spreadtrum SC7731C", parse_proc_cpuinfo_hardware("sc7731c"));
448 	EXPECT_EQ("Spreadtrum SC7731G", parse_proc_cpuinfo_hardware("sc7731g"));
449 	EXPECT_EQ("Spreadtrum SC8825", parse_proc_cpuinfo_hardware("sc8825"));
450 	EXPECT_EQ("Spreadtrum SC8830", parse_proc_cpuinfo_hardware("sc8830"));
451 	EXPECT_EQ("Spreadtrum SC9830", parse_proc_cpuinfo_hardware("sc9830"));
452 	EXPECT_EQ("Spreadtrum SC9832", parse_proc_cpuinfo_hardware("sc9832"));
453 	EXPECT_EQ("Spreadtrum SC9832A", parse_proc_cpuinfo_hardware("sc9832a"));
454 }
455 
TEST(PROC_CPUINFO_HARDWARE,telechips)456 TEST(PROC_CPUINFO_HARDWARE, telechips) {
457 	EXPECT_EQ("Telechips TCC892X", parse_proc_cpuinfo_hardware("tcc892x"));
458 	EXPECT_EQ("Telechips TCC893X", parse_proc_cpuinfo_hardware("tcc893x"));
459 }
460 
TEST(PROC_CPUINFO_HARDWARE,unisoc)461 TEST(PROC_CPUINFO_HARDWARE, unisoc) {
462 	EXPECT_EQ("Unisoc T301", parse_proc_cpuinfo_hardware("Unisoc T301", 4, 1800000));
463 	EXPECT_EQ("Unisoc UMS312", parse_proc_cpuinfo_hardware("Unisoc UMS312", 4, 1800000));
464 }
465 
466 #if CPUINFO_ARCH_ARM
TEST(PROC_CPUINFO_HARDWARE,texas_instruments_omap)467 TEST(PROC_CPUINFO_HARDWARE, texas_instruments_omap) {
468 	EXPECT_EQ("Texas Instruments OMAP4430", parse_proc_cpuinfo_hardware("OMAP4430"));
469 	EXPECT_EQ("Texas Instruments OMAP4460", parse_proc_cpuinfo_hardware("OMAP4460"));
470 }
471 
TEST(PROC_CPUINFO_HARDWARE,texas_instruments_special)472 TEST(PROC_CPUINFO_HARDWARE, texas_instruments_special) {
473 	EXPECT_EQ("Texas Instruments OMAP4430", parse_proc_cpuinfo_hardware("mapphone_CDMA"));
474 	EXPECT_EQ("Texas Instruments OMAP4460", parse_proc_cpuinfo_hardware("Tuna"));
475 }
476 
TEST(PROC_CPUINFO_HARDWARE,wondermedia)477 TEST(PROC_CPUINFO_HARDWARE, wondermedia) {
478 	EXPECT_EQ("WonderMedia WM8850", parse_proc_cpuinfo_hardware("WMT", 1, 1200000));
479 	EXPECT_EQ("WonderMedia WM8880", parse_proc_cpuinfo_hardware("WMT", 2, 1500000));
480 	EXPECT_EQ("WonderMedia WM8950", parse_proc_cpuinfo_hardware("WMT", 1, 1008000));
481 }
482 #endif
483