xref: /aosp_15_r20/external/cpuinfo/test/name/brand-string.cc (revision 2b54f0db79fd8303838913b20ff3780cddaa909f)
1*2b54f0dbSXin Li #include <gtest/gtest.h>
2*2b54f0dbSXin Li 
3*2b54f0dbSXin Li #include <string>
4*2b54f0dbSXin Li #include <algorithm>
5*2b54f0dbSXin Li #include <cstring>
6*2b54f0dbSXin Li 
7*2b54f0dbSXin Li 
8*2b54f0dbSXin Li extern "C" uint32_t cpuinfo_x86_normalize_brand_string(
9*2b54f0dbSXin Li 	const char* raw_name, char* normalized_name);
10*2b54f0dbSXin Li 
11*2b54f0dbSXin Li 
normalize_brand_string(const char name[48])12*2b54f0dbSXin Li inline std::string normalize_brand_string(const char name[48]) {
13*2b54f0dbSXin Li 	char normalized_name[48];
14*2b54f0dbSXin Li 	cpuinfo_x86_normalize_brand_string(name, normalized_name);
15*2b54f0dbSXin Li 	return std::string(normalized_name);
16*2b54f0dbSXin Li }
17*2b54f0dbSXin Li 
TEST(BRAND_STRING,intel)18*2b54f0dbSXin Li TEST(BRAND_STRING, intel) {
19*2b54f0dbSXin Li 	EXPECT_EQ("",
20*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU                  @ 2.33GHz\0"));
21*2b54f0dbSXin Li 	EXPECT_EQ("",
22*2b54f0dbSXin Li 		normalize_brand_string("                   Genuine Intel(R) CPU 3.00GHz\0"));
23*2b54f0dbSXin Li 	EXPECT_EQ("",
24*2b54f0dbSXin Li 		normalize_brand_string("                Genuine Intel(R) CPU  @ 2.60GHz\0"));
25*2b54f0dbSXin Li 	EXPECT_EQ("",
26*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU             0000 @ 1.73GHz\0"));
27*2b54f0dbSXin Li 	EXPECT_EQ("",
28*2b54f0dbSXin Li 		normalize_brand_string("         Genuine Intel(R) CPU         @ 728\0MHz\0"));
29*2b54f0dbSXin Li 	EXPECT_EQ("",
30*2b54f0dbSXin Li 		normalize_brand_string("                   Genuine Intel(R) CPU 3.46GHz\0"));
31*2b54f0dbSXin Li 	EXPECT_EQ("",
32*2b54f0dbSXin Li 		normalize_brand_string("          Genuine Intel(R) CPU        @ 1.66GHz\0"));
33*2b54f0dbSXin Li 	EXPECT_EQ("",
34*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU             0000 @ 2.40GHz\0"));
35*2b54f0dbSXin Li 	EXPECT_EQ("",
36*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) processor               800MHz\0"));
37*2b54f0dbSXin Li 	EXPECT_EQ("",
38*2b54f0dbSXin Li 		normalize_brand_string("                Genuine Intel(R) CPU  @ 2.40GHz\0"));
39*2b54f0dbSXin Li 	EXPECT_EQ("",
40*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU            0     @ 1.60GHz\0"));
41*2b54f0dbSXin Li 	EXPECT_EQ("",
42*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU                  @ 2.66GHz\0"));
43*2b54f0dbSXin Li 	EXPECT_EQ("",
44*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU             000  @ 2.13GHz\0"));
45*2b54f0dbSXin Li 	EXPECT_EQ("",
46*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU           @ 0000 @ 2.67GHz\0"));
47*2b54f0dbSXin Li 	EXPECT_EQ("",
48*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU             000  @ 2>13GHz\0"));
49*2b54f0dbSXin Li 	EXPECT_EQ("",
50*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU           @ 0000 @ 1.87GHz\0"));
51*2b54f0dbSXin Li 	EXPECT_EQ("",
52*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU                  @ 2.13GHz\0"));
53*2b54f0dbSXin Li 	EXPECT_EQ("",
54*2b54f0dbSXin Li 		normalize_brand_string("Genuine Intel(R) CPU             000  @ 3.20GHz\0"));
55*2b54f0dbSXin Li 	EXPECT_EQ("4000",
56*2b54f0dbSXin Li 		normalize_brand_string("         Genuine Intel(R) CPU   4000  @ 1.00GHz\0"));
57*2b54f0dbSXin Li 	EXPECT_EQ("5Y70",
58*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Processor 5Y70 CPU @ 1.10GHz\0\0\0\0\0\0\0\0\0\0\0"));
59*2b54f0dbSXin Li 	EXPECT_EQ("Atom 230",
60*2b54f0dbSXin Li 		normalize_brand_string("         Intel(R) Atom(TM) CPU  230   @ 1.60GHz\0"));
61*2b54f0dbSXin Li 	EXPECT_EQ("Atom 330",
62*2b54f0dbSXin Li 		normalize_brand_string("         Intel(R) Atom(TM) CPU  330   @ 1.60GHz\0"));
63*2b54f0dbSXin Li 	EXPECT_EQ("Atom C2750",
64*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Atom(TM) CPU  C2750  @ 2.40GHz\0"));
65*2b54f0dbSXin Li 	EXPECT_EQ("Atom C2758",
66*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Atom(TM) CPU  C2758  @ 2.40GHz\0"));
67*2b54f0dbSXin Li 	EXPECT_EQ("Atom D2500",
68*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Atom(TM) CPU D2500   @ 1.86GHz\0"));
69*2b54f0dbSXin Li 	EXPECT_EQ("Atom D2700",
70*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Atom(TM) CPU D2700   @ 2.13GHz\0"));
71*2b54f0dbSXin Li 	EXPECT_EQ("Atom D525",
72*2b54f0dbSXin Li 		normalize_brand_string("         Intel(R) Atom(TM) CPU D525   @ 1.80GHz\0"));
73*2b54f0dbSXin Li 	EXPECT_EQ("Atom N455",
74*2b54f0dbSXin Li 		normalize_brand_string("         Intel(R) Atom(TM) CPU N455   @ 1.66GHz\0"));
75*2b54f0dbSXin Li 	EXPECT_EQ("Atom S1260",
76*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Atom(TM) CPU S1260   @ 2.00GHz\0"));
77*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z2460",
78*2b54f0dbSXin Li 		normalize_brand_string("         Intel(R) Atom(TM) CPU Z2460  @ 1.60GHz\0"));
79*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z2760",
80*2b54f0dbSXin Li 		normalize_brand_string("         Intel(R) Atom(TM) CPU Z2760  @ 1.80GHz\0"));
81*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3740",
82*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Atom(TM) CPU  Z3740  @ 1.33GHz\0"));
83*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3745",
84*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Atom(TM) CPU  Z3745  @ 1.33GHz\0"));
85*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z670",
86*2b54f0dbSXin Li 		normalize_brand_string("         Intel(R) Atom(TM) CPU Z670   @ 1.50GHz\0"));
87*2b54f0dbSXin Li 	EXPECT_EQ("Atom x7-Z8700",
88*2b54f0dbSXin Li 		normalize_brand_string("      Intel(R) Atom(TM) x7-Z8700  CPU @ 1.60GHz\0"));
89*2b54f0dbSXin Li 	EXPECT_EQ("Celeron 1.70GHz",
90*2b54f0dbSXin Li 		normalize_brand_string("                Intel(R) Celeron(R) CPU 1.70GHz\0"));
91*2b54f0dbSXin Li 	EXPECT_EQ("Celeron 2.00GHz",
92*2b54f0dbSXin Li 		normalize_brand_string("                Intel(R) Celeron(R) CPU 2.00GHz\0"));
93*2b54f0dbSXin Li 	EXPECT_EQ("Celeron 2.53GHz",
94*2b54f0dbSXin Li 		normalize_brand_string("                Intel(R) Celeron(R) CPU 2.53GHz\0"));
95*2b54f0dbSXin Li 	EXPECT_EQ("Celeron 215",
96*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) CPU          215  @ 1.33GHz\0"));
97*2b54f0dbSXin Li 	EXPECT_EQ("Celeron 420",
98*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) CPU          420  @ 1.60GHz\0"));
99*2b54f0dbSXin Li 	EXPECT_EQ("Celeron 600MHz",
100*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) processor            600MHz\0"));
101*2b54f0dbSXin Li 	EXPECT_EQ("Celeron D 3.06GHz",
102*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Celeron(R) D CPU 3.06GHz\0"));
103*2b54f0dbSXin Li 	EXPECT_EQ("Celeron G1610",
104*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Celeron(R) CPU G1610 @ 2.60GHz\0"));
105*2b54f0dbSXin Li 	EXPECT_EQ("Celeron J1900",
106*2b54f0dbSXin Li 		normalize_brand_string("      Intel(R) Celeron(R) CPU  J1900  @ 1.99GHz\0"));
107*2b54f0dbSXin Li 	EXPECT_EQ("Celeron J3455",
108*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) CPU J3455 @ 1.50GHz\0\0\0\0\0\0\0\0\0"));
109*2b54f0dbSXin Li 	EXPECT_EQ("Celeron M 1300MHz",
110*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) M processor         1300MHz\0"));
111*2b54f0dbSXin Li 	EXPECT_EQ("Celeron M 430",
112*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) M CPU        430  @ 1.73GHz\0"));
113*2b54f0dbSXin Li 	EXPECT_EQ("Celeron N3050",
114*2b54f0dbSXin Li 		normalize_brand_string("      Intel(R) Celeron(R) CPU  N3050  @ 1.60GHz\0"));
115*2b54f0dbSXin Li 	EXPECT_EQ("Celeron N3150",
116*2b54f0dbSXin Li 		normalize_brand_string("      Intel(R) Celeron(R) CPU  N3150  @ 1.60GHz\0"));
117*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 6300",
118*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 CPU          6300  @ 1.86GHz\0"));
119*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 6700",
120*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 CPU          6700  @ 2.66GHz\0"));
121*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 Duo P8400",
122*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 Duo CPU     P8400  @ 2.26GHz\0"));
123*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 Duo T8300",
124*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 Duo CPU     T8300  @ 2.40GHz\0"));
125*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 Extreme X9650",
126*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 Extreme CPU X9650  @ 3.00GHz\0"));
127*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 Quad 2.66GHz",
128*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 Quad CPU           @ 2.66GHz\0"));
129*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 Quad Q6600",
130*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz\0"));
131*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 Quad Q9300",
132*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 Quad  CPU   Q9300  @ 2.50GHz\0"));
133*2b54f0dbSXin Li 	EXPECT_EQ("Core 2 T5600",
134*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM)2 CPU         T5600  @ 1.83GHz\0"));
135*2b54f0dbSXin Li 	EXPECT_EQ("Core 820Q",
136*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) CPU          Q 820  @ 1.73GHz\0"));
137*2b54f0dbSXin Li 	EXPECT_EQ("Core i3 380M",
138*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i3 CPU       M 380  @ 2.53GHz\0"));
139*2b54f0dbSXin Li 	EXPECT_EQ("Core i5 480M",
140*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5 CPU       M 480  @ 2.67GHz\0"));
141*2b54f0dbSXin Li 	EXPECT_EQ("Core i5 650",
142*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5 CPU         650  @ 3.20GHz\0"));
143*2b54f0dbSXin Li 	EXPECT_EQ("Core i5 750",
144*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5 CPU         750  @ 2.67GHz\0"));
145*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-2400",
146*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz\0"));
147*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-2450M",
148*2b54f0dbSXin Li 		normalize_brand_string("       Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz\0"));
149*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-5250U",
150*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-5250U CPU @ 1.60GHz\0\0\0\0\0\0\0\0"));
151*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-6400T",
152*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-6400T CPU @ 2.20GHz\0\0\0\0\0\0\0\0"));
153*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-7200U",
154*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz\0\0\0\0\0\0\0\0"));
155*2b54f0dbSXin Li 	EXPECT_EQ("Core i7 720Q",
156*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7 CPU       Q 720  @ 1.60GHz\0"));
157*2b54f0dbSXin Li 	EXPECT_EQ("Core i7 860",
158*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz\0"));
159*2b54f0dbSXin Li 	EXPECT_EQ("Core i7 990X",
160*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7 CPU       X 990  @ 3.47GHz\0"));
161*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-2600",
162*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz\0"));
163*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-2600K",
164*2b54f0dbSXin Li 		normalize_brand_string("       Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz\0"));
165*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-3770K",
166*2b54f0dbSXin Li 		normalize_brand_string("       Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz\0"));
167*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-3960X",
168*2b54f0dbSXin Li 		normalize_brand_string("       Intel(R) Core(TM) i7-3960X CPU @ 3.30GHz\0"));
169*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-4500U",
170*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz\0\0\0\0\0\0\0\0"));
171*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-4770",
172*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz\0\0\0\0\0\0\0\0\0"));
173*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-4770R",
174*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-4770R CPU @ 3.20GHz\0\0\0\0\0\0\0\0"));
175*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-4930K",
176*2b54f0dbSXin Li 		normalize_brand_string("       Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz\0"));
177*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-5775C",
178*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-5775C CPU @ 3.30GHz\0\0\0\0\0\0\0\0"));
179*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-5820K",
180*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz\0\0\0\0\0\0\0\0"));
181*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-6500U",
182*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz\0\0\0\0\0\0\0\0"));
183*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-6800K",
184*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\0\0\0\0\0\0\0\0"));
185*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-6850K",
186*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz\0\0\0\0\0\0\0\0"));
187*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-6950X",
188*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-6950X CPU @ 3.00GHz\0\0\0\0\0\0\0\0"));
189*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-7700K",
190*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz\0\0\0\0\0\0\0\0"));
191*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-7800X",
192*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-7800X CPU @ 3.50GHz\0\0\0\0\0\0\0\0"));
193*2b54f0dbSXin Li 	EXPECT_EQ("Core i9-7900X",
194*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i9-7900X CPU @ 3.30GHz\0\0\0\0\0\0\0\0"));
195*2b54f0dbSXin Li 	EXPECT_EQ("Core m3-6Y30",
196*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) m3-6Y30 CPU @ 0.90GHz\0\0\0\0\0\0\0\0\0"));
197*2b54f0dbSXin Li 	EXPECT_EQ("Pentium 4 1.60GHz",
198*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Pentium(R) 4 CPU 1.60GHz\0"));
199*2b54f0dbSXin Li 	EXPECT_EQ("Pentium 4 2.40GHz",
200*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Pentium(R) 4 CPU 2.40GHz\0"));
201*2b54f0dbSXin Li 	EXPECT_EQ("Pentium 4 2.80GHz",
202*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Pentium(R) 4 CPU 2.80GHz\0"));
203*2b54f0dbSXin Li 	EXPECT_EQ("Pentium 4 3.00GHz",
204*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Pentium(R) 4 CPU 3.00GHz\0"));
205*2b54f0dbSXin Li 	EXPECT_EQ("Pentium 4 3.20GHz",
206*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Pentium(R) 4 CPU 3.20GHz\0"));
207*2b54f0dbSXin Li 	EXPECT_EQ("Pentium 4 3.46GHz",
208*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Pentium(R) 4 CPU 3.46GHz\0"));
209*2b54f0dbSXin Li 	EXPECT_EQ("Pentium 4 3.73GHz",
210*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Pentium(R) 4 CPU 3.73GHz\0"));
211*2b54f0dbSXin Li 	EXPECT_EQ("Pentium D 2.80GHz",
212*2b54f0dbSXin Li 		normalize_brand_string("              Intel(R) Pentium(R) D CPU 2.80GHz\0"));
213*2b54f0dbSXin Li 	EXPECT_EQ("Pentium Dual E2220",
214*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Pentium(R) Dual  CPU  E2220  @ 2.40GHz\0"));
215*2b54f0dbSXin Li 	EXPECT_EQ("Pentium G840",
216*2b54f0dbSXin Li 		normalize_brand_string("         Intel(R) Pentium(R) CPU G840 @ 2.80GHz\0"));
217*2b54f0dbSXin Li 	EXPECT_EQ("Pentium III 1266MHz",
218*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Pentium(R) III CPU family      1266MHz\0"));
219*2b54f0dbSXin Li 	EXPECT_EQ("Pentium M 1.60GHz",
220*2b54f0dbSXin Li 		normalize_brand_string("        Intel(R) Pentium(R) M processor 1.60GHz\0"));
221*2b54f0dbSXin Li 	EXPECT_EQ("Pentium M 2.00GHz",
222*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Pentium(R) M CPU        000  @ 2.00GHz\0"));
223*2b54f0dbSXin Li 	EXPECT_EQ("Pentium N4200",
224*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Pentium(R) CPU N4200 @ 1.10GHz\0\0\0\0\0\0\0\0\0"));
225*2b54f0dbSXin Li 	EXPECT_EQ("Pentium T4200",
226*2b54f0dbSXin Li 		normalize_brand_string("Pentium(R) Dual-Core CPU       T4200  @ 2.00GHz\0"));
227*2b54f0dbSXin Li 	EXPECT_EQ("Pentium T4500",
228*2b54f0dbSXin Li 		normalize_brand_string("Pentium(R) Dual-Core CPU       T4500  @ 2.30GHz\0"));
229*2b54f0dbSXin Li 	EXPECT_EQ("Xeon 2.66GHz",
230*2b54f0dbSXin Li 		normalize_brand_string("                  Intel(R) Xeon(TM) CPU 2.66GHz\0"));
231*2b54f0dbSXin Li 	EXPECT_EQ("Xeon 2.80GHz",
232*2b54f0dbSXin Li 		normalize_brand_string("                  Intel(R) Xeon(TM) CPU 2.80GHz\0"));
233*2b54f0dbSXin Li 	EXPECT_EQ("Xeon 3.06GHz",
234*2b54f0dbSXin Li 		normalize_brand_string("                  Intel(R) Xeon(TM) CPU 3.06GHz\0"));
235*2b54f0dbSXin Li 	EXPECT_EQ("Xeon 3.20GHz",
236*2b54f0dbSXin Li 		normalize_brand_string("                  Intel(R) Xeon(TM) CPU 3.20GHz\0"));
237*2b54f0dbSXin Li 	EXPECT_EQ("Xeon 3.40GHz",
238*2b54f0dbSXin Li 		normalize_brand_string("                  Intel(R) Xeon(TM) CPU 3.40GHz\0"));
239*2b54f0dbSXin Li 	EXPECT_EQ("Xeon D-1540",
240*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz\0\0\0\0\0\0\0\0\0\0\0"));
241*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E3-1230 v2",
242*2b54f0dbSXin Li 		normalize_brand_string("      Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz\0"));
243*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E3-1245 v3",
244*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU E3-1245 v3 @ 3.40GHz\0\0\0\0\0\0\0"));
245*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E5-2660 v3",
246*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz\0\0\0\0\0\0\0"));
247*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E5-2696 v4",
248*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU E5-2696 v4 @ 2.20GHz\0\0\0\0\0\0\0"));
249*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E5-2697 v2",
250*2b54f0dbSXin Li 		normalize_brand_string("      Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz\0"));
251*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E5-2697 v4",
252*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz\0\0\0\0\0\0\0"));
253*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E5-2699 v3",
254*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz\0\0\0\0\0\0\0"));
255*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E5462",
256*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU           E5462  @ 2.80GHz\0"));
257*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E7-4870",
258*2b54f0dbSXin Li 		normalize_brand_string("       Intel(R) Xeon(R) CPU E7- 4870  @ 2.40GHz\0"));
259*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E7-8870",
260*2b54f0dbSXin Li 		normalize_brand_string("       Intel(R) Xeon(R) CPU E7- 8870  @ 2.40GHz\0"));
261*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E7450",
262*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU           E7450  @ 2.40GHz\0"));
263*2b54f0dbSXin Li 	EXPECT_EQ("Xeon E7520",
264*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU           E7520  @ 1.87GHz\0"));
265*2b54f0dbSXin Li 	EXPECT_EQ("Xeon Gold 6130",
266*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz\0\0\0\0\0\0\0\0"));
267*2b54f0dbSXin Li 	EXPECT_EQ("Xeon Gold 6154",
268*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz\0\0\0\0\0\0\0\0"));
269*2b54f0dbSXin Li 	EXPECT_EQ("Xeon L5320",
270*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU           L5320  @ 1.86GHz\0"));
271*2b54f0dbSXin Li 	EXPECT_EQ("Xeon Phi 7210",
272*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon Phi(TM) CPU 7210 @ 1.30GHz\0\0\0\0\0\0\0\0"));
273*2b54f0dbSXin Li 	EXPECT_EQ("Xeon Platinum 8180",
274*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz\0\0\0\0"));
275*2b54f0dbSXin Li 	EXPECT_EQ("Xeon X3210",
276*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU           X3210  @ 2.13GHz\0"));
277*2b54f0dbSXin Li 	EXPECT_EQ("Xeon X3323",
278*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU           X3323  @ 2.50GHz\0"));
279*2b54f0dbSXin Li 	EXPECT_EQ("Xeon X5667",
280*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU           X5667  @ 3.07GHz\0"));
281*2b54f0dbSXin Li 	EXPECT_EQ("Xeon X6550",
282*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Xeon(R) CPU           X6550  @ 2.00GHz\0"));
283*2b54f0dbSXin Li }
284*2b54f0dbSXin Li 
TEST(BRAND_STRING,intel_android)285*2b54f0dbSXin Li TEST(BRAND_STRING, intel_android) {
286*2b54f0dbSXin Li 	EXPECT_EQ("Atom N2600",
287*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU N2600   @ 1.60GHz\0\0\0\0\0\0\0\0\0"));
288*2b54f0dbSXin Li 	EXPECT_EQ("Atom Sofia3GR",
289*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Sofia3GR\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
290*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z2420",
291*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z2420  @ 1.20GHz\0\0\0\0\0\0\0\0\0\0"));
292*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z2460",
293*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z2460  @ 1.60GHz\0\0\0\0\0\0\0\0\0\0"));
294*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z2480",
295*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z2480  @ 2.00GHz\0\0\0\0\0\0\0\0\0\0"));
296*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z2520",
297*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z2520  @ 1.20GHz\0\0\0\0\0\0\0\0\0\0"));
298*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z2560",
299*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z2560  @ 1.60GHz\0\0\0\0\0\0\0\0\0\0"));
300*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z2580",
301*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z2580  @ 2.00GHz\0\0\0\0\0\0\0\0\0\0"));
302*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3460",
303*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3460  @ 1.06GHz\0\0\0\0\0\0\0\0\0"));
304*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3480",
305*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3480  @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
306*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3530",
307*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z3530 @ 1.33GHz\0\0\0\0\0\0\0\0\0\0\0"));
308*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3530",
309*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z3530  @ 1.33GHz\0\0\0\0\0\0\0\0\0\0"));
310*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3530",
311*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3530  @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
312*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3560",
313*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3560  @ 1.00GHz\0\0\0\0\0\0\0\0\0"));
314*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3560",
315*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z3560  @ 1.83GHz\0\0\0\0\0\0\0\0\0\0"));
316*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3560",
317*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z3560 @ 1.83GHz\0\0\0\0\0\0\0\0\0\0\0"));
318*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3580",
319*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3580  @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
320*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3580",
321*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU Z3580  @ 2.33GHz\0\0\0\0\0\0\0\0\0\0"));
322*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3590",
323*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3590  @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
324*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3735D",
325*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3735D @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
326*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3735E",
327*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3735E @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
328*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3735F",
329*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3735F @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
330*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3735G",
331*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3735G @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
332*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3736F",
333*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3736F @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
334*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3736G",
335*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3736G @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
336*2b54f0dbSXin Li 	EXPECT_EQ("Atom Z3745",
337*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) CPU  Z3745  @ 1.33GHz\0\0\0\0\0\0\0\0\0"));
338*2b54f0dbSXin Li 	EXPECT_EQ("Atom x5-Z8300",
339*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) x5-Z8300  CPU @ 1.44GHz\0\0\0\0\0\0\0"));
340*2b54f0dbSXin Li 	EXPECT_EQ("Atom x5-Z8350",
341*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) x5-Z8350  CPU @ 1.44GHz\0\0\0\0\0\0\0"));
342*2b54f0dbSXin Li 	EXPECT_EQ("Atom x5-Z8500",
343*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) x5-Z8500  CPU @ 1.44GHz\0\0\0\0\0\0\0"));
344*2b54f0dbSXin Li 	EXPECT_EQ("Atom x5-Z8550",
345*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) x5-Z8550  CPU @ 1.44GHz\0\0\0\0\0\0\0"));
346*2b54f0dbSXin Li 	EXPECT_EQ("Atom x7-Z8700",
347*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) x7-Z8700  CPU @ 1.60GHz\0\0\0\0\0\0\0"));
348*2b54f0dbSXin Li 	EXPECT_EQ("Atom x7-Z8750",
349*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Atom(TM) x7-Z8750  CPU @ 1.60GHz\0\0\0\0\0\0\0"));
350*2b54f0dbSXin Li 	EXPECT_EQ("Celeron 847",
351*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) CPU 847 @ 1.10GHz\0\0\0\0\0\0\0\0\0\0\0"));
352*2b54f0dbSXin Li 	EXPECT_EQ("Celeron N3060",
353*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) CPU  N3060  @ 1.60GHz\0\0\0\0\0\0\0"));
354*2b54f0dbSXin Li 	EXPECT_EQ("Celeron N3160",
355*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Celeron(R) CPU  N3160  @ 1.60GHz\0\0\0\0\0\0\0"));
356*2b54f0dbSXin Li 	EXPECT_EQ("Core i3-2100",
357*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz\0\0\0\0\0\0\0\0\0"));
358*2b54f0dbSXin Li 	EXPECT_EQ("Core i3-2120",
359*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz\0\0\0\0\0\0\0\0\0"));
360*2b54f0dbSXin Li 	EXPECT_EQ("Core i3-3110M",
361*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz\0\0\0\0\0\0\0\0"));
362*2b54f0dbSXin Li 	EXPECT_EQ("Core i3-3217U",
363*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz\0\0\0\0\0\0\0\0"));
364*2b54f0dbSXin Li 	EXPECT_EQ("Core i3-3220",
365*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz\0\0\0\0\0\0\0\0\0"));
366*2b54f0dbSXin Li 	EXPECT_EQ("Core i3-4005U",
367*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz\0\0\0\0\0\0\0\0"));
368*2b54f0dbSXin Li 	EXPECT_EQ("Core i3-5005U",
369*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i3-5005U CPU @ 2.00GHz\0\0\0\0\0\0\0\0"));
370*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-2467M",
371*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-2467M CPU @ 1.60GHz\0\0\0\0\0\0\0\0"));
372*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-3210M",
373*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz\0\0\0\0\0\0\0\0"));
374*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-3230M",
375*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz\0\0\0\0\0\0\0\0"));
376*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-3470",
377*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz\0\0\0\0\0\0\0\0\0"));
378*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-4210U",
379*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz\0\0\0\0\0\0\0\0"));
380*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-4460",
381*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz\0\0\0\0\0\0\0\0"));
382*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-5200U",
383*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz\0\0\0\0\0\0\0\0"));
384*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-6200U",
385*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz\0\0\0\0\0\0\0\0"));
386*2b54f0dbSXin Li 	EXPECT_EQ("Core i5-6400",
387*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz\0\0\0\0\0\0\0\0\0"));
388*2b54f0dbSXin Li 	EXPECT_EQ("Core i7-4790",
389*2b54f0dbSXin Li 		normalize_brand_string("Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz\0\0\0\0\0\0\0\0\0"));
390*2b54f0dbSXin Li }
391*2b54f0dbSXin Li 
TEST(BRAND_STRING,amd)392*2b54f0dbSXin Li TEST(BRAND_STRING, amd) {
393*2b54f0dbSXin Li 	EXPECT_EQ("",
394*2b54f0dbSXin Li 		normalize_brand_string("AMD Processor model unknown\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
395*2b54f0dbSXin Li 	EXPECT_EQ("",
396*2b54f0dbSXin Li 		normalize_brand_string("AMD Engineering Sample\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
397*2b54f0dbSXin Li 	EXPECT_EQ("A10-4600M",
398*2b54f0dbSXin Li 		normalize_brand_string("AMD A10-4600M APU with Radeon(tm) HD Graphics  \0"));
399*2b54f0dbSXin Li 	EXPECT_EQ("A10-5800K",
400*2b54f0dbSXin Li 		normalize_brand_string("AMD A10-5800K APU with Radeon(tm) HD Graphics  \0"));
401*2b54f0dbSXin Li 	EXPECT_EQ("A10-6800K",
402*2b54f0dbSXin Li 		normalize_brand_string("AMD A10-6800K APU with Radeon(tm) HD Graphics  \0"));
403*2b54f0dbSXin Li 	EXPECT_EQ("A10-7850K",
404*2b54f0dbSXin Li 		normalize_brand_string("AMD A10-7850K APU with Radeon(TM) R7 Graphics  \0"));
405*2b54f0dbSXin Li 	EXPECT_EQ("A12-9700P",
406*2b54f0dbSXin Li 		normalize_brand_string("AMD A12-9700P RADEON R7, 10 COMPUTE CORES 4C+6G\0"));
407*2b54f0dbSXin Li 	EXPECT_EQ("A12-9800",
408*2b54f0dbSXin Li 		normalize_brand_string("AMD A12-9800 RADEON R7, 12 COMPUTE CORES 4C+8G \0"));
409*2b54f0dbSXin Li 	EXPECT_EQ("A4-5000",
410*2b54f0dbSXin Li 		normalize_brand_string("AMD A4-5000 APU with Radeon(TM) HD Graphics    \0"));
411*2b54f0dbSXin Li 	EXPECT_EQ("A6-6310",
412*2b54f0dbSXin Li 		normalize_brand_string("AMD A6-6310 APU with AMD Radeon R4 Graphics    \0"));
413*2b54f0dbSXin Li 	EXPECT_EQ("A8-3850",
414*2b54f0dbSXin Li 		normalize_brand_string("AMD A8-3850 APU with Radeon(tm) HD Graphics\0\0\0\0\0"));
415*2b54f0dbSXin Li 	EXPECT_EQ("A8-6410",
416*2b54f0dbSXin Li 		normalize_brand_string("AMD A8-6410 APU with AMD Radeon R5 Graphics    \0"));
417*2b54f0dbSXin Li 	EXPECT_EQ("A8-7670K",
418*2b54f0dbSXin Li 		normalize_brand_string("AMD A8-7670K Radeon R7, 10 Compute Cores 4C+6G \0"));
419*2b54f0dbSXin Li 	EXPECT_EQ("A9-9410",
420*2b54f0dbSXin Li 		normalize_brand_string("AMD A9-9410 RADEON R5, 5 COMPUTE CORES 2C+3G   \0"));
421*2b54f0dbSXin Li 	EXPECT_EQ("Athlon",
422*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
423*2b54f0dbSXin Li 	EXPECT_EQ("Athlon 5350",
424*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) 5350 APU with Radeon(tm) R3     \0"));
425*2b54f0dbSXin Li 	EXPECT_EQ("Athlon 64 2800+",
426*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) 64 Processor 2800+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
427*2b54f0dbSXin Li 	EXPECT_EQ("Athlon 64 3200+",
428*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) 64 Processor 3200+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
429*2b54f0dbSXin Li 	EXPECT_EQ("Athlon 64 X2 3800+",
430*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) 64 X2 Dual Core Processor 3800+\0\0"));
431*2b54f0dbSXin Li 	EXPECT_EQ("Athlon 64 X2 4000+",
432*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) 64 X2 Dual Core Processor 4000+\0\0"));
433*2b54f0dbSXin Li 	EXPECT_EQ("Athlon 64 X2 6000+",
434*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) 64 X2 Dual Core Processor 6000+\0\0"));
435*2b54f0dbSXin Li 	EXPECT_EQ("Athlon 64 X2 6400+",
436*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) 64 X2 Dual Core Processor 6400+\0\0"));
437*2b54f0dbSXin Li 	EXPECT_EQ("Athlon 7750",
438*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) 7750 Dual-Core Processor\0\0\0\0\0\0\0\0\0"));
439*2b54f0dbSXin Li 	EXPECT_EQ("Athlon II X2 245",
440*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) II X2 245 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
441*2b54f0dbSXin Li 	EXPECT_EQ("Athlon II X4 620",
442*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) II X4 620 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
443*2b54f0dbSXin Li 	EXPECT_EQ("Athlon XP",
444*2b54f0dbSXin Li 		normalize_brand_string("Athlon XP (Palomin?00+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
445*2b54f0dbSXin Li 	EXPECT_EQ("Athlon XP 2200+",
446*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) XP 2200+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
447*2b54f0dbSXin Li 	EXPECT_EQ("Athlon XP 3200+",
448*2b54f0dbSXin Li 		normalize_brand_string("AMD Athlon(tm) XP 3200+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
449*2b54f0dbSXin Li 	EXPECT_EQ("C-50",
450*2b54f0dbSXin Li 		normalize_brand_string("AMD C-50 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
451*2b54f0dbSXin Li 	EXPECT_EQ("Duron",
452*2b54f0dbSXin Li 		normalize_brand_string("AMD Duron(tm) processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
453*2b54f0dbSXin Li 	EXPECT_EQ("E-350",
454*2b54f0dbSXin Li 		normalize_brand_string("AMD E-350 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
455*2b54f0dbSXin Li 	EXPECT_EQ("E-450",
456*2b54f0dbSXin Li 		normalize_brand_string("AMD E-450 APU with Radeon(tm) HD Graphics\0\0\0\0\0\0\0"));
457*2b54f0dbSXin Li 	EXPECT_EQ("E2-3000M",
458*2b54f0dbSXin Li 		normalize_brand_string("AMD E2-3000M APU with Radeon(tm) HD Graphics\0\0\0\0"));
459*2b54f0dbSXin Li 	EXPECT_EQ("FX-6100",
460*2b54f0dbSXin Li 		normalize_brand_string("AMD FX(tm)-6100 Six-Core Processor             \0"));
461*2b54f0dbSXin Li 	EXPECT_EQ("FX-8150",
462*2b54f0dbSXin Li 		normalize_brand_string("AMD FX(tm)-8150 Eight-Core Processor           \0"));
463*2b54f0dbSXin Li 	EXPECT_EQ("FX-8350",
464*2b54f0dbSXin Li 		normalize_brand_string("AMD FX(tm)-8350 Eight-Core Processor           \0"));
465*2b54f0dbSXin Li 	EXPECT_EQ("FX-8800P",
466*2b54f0dbSXin Li 		normalize_brand_string("AMD FX-8800P Radeon R7, 12 Compute Cores 4C+8G \0"));
467*2b54f0dbSXin Li 	EXPECT_EQ("G-T56N",
468*2b54f0dbSXin Li 		normalize_brand_string("AMD G-T56N Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
469*2b54f0dbSXin Li 	EXPECT_EQ("GX-212JC",
470*2b54f0dbSXin Li 		normalize_brand_string("AMD GX-212JC SOC with Radeon(TM) R2E Graphics  \0"));
471*2b54f0dbSXin Li 	EXPECT_EQ("Geode",
472*2b54f0dbSXin Li 		normalize_brand_string("Geode(TM) Integrated Processor by AMD PCS\0\0\0\0\0\0\0"));
473*2b54f0dbSXin Li 	EXPECT_EQ("K5",
474*2b54f0dbSXin Li 		normalize_brand_string("AMD-K5(tm) Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
475*2b54f0dbSXin Li 	EXPECT_EQ("K6",
476*2b54f0dbSXin Li 		normalize_brand_string("AMD-K6tm w/ multimedia extensions\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
477*2b54f0dbSXin Li 	EXPECT_EQ("K6 3D",
478*2b54f0dbSXin Li 		normalize_brand_string("AMD-K6(tm) 3D processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
479*2b54f0dbSXin Li 	EXPECT_EQ("K6 3D+",
480*2b54f0dbSXin Li 		normalize_brand_string("AMD-K6(tm) 3D+ Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
481*2b54f0dbSXin Li 	EXPECT_EQ("K6-III",
482*2b54f0dbSXin Li 		normalize_brand_string("AMD-K6(tm)-III Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
483*2b54f0dbSXin Li 	EXPECT_EQ("K7",
484*2b54f0dbSXin Li 		normalize_brand_string("AMD-K7(tm) Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
485*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 2210 HE",
486*2b54f0dbSXin Li 		normalize_brand_string("Dual-Core AMD Opteron(tm) Processor 2210 HE\0\0\0\0\0"));
487*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 2344 HE",
488*2b54f0dbSXin Li 		normalize_brand_string("Quad-Core AMD Opteron(tm) Processor 2344 HE\0\0\0\0\0"));
489*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 2347 HE",
490*2b54f0dbSXin Li 		normalize_brand_string("Quad-Core AMD Opteron(tm) Processor 2347 HE\0\0\0\0\0"));
491*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 2378",
492*2b54f0dbSXin Li 		normalize_brand_string("Quad-Core AMD Opteron(tm) Processor 2378\0\0\0\0\0\0\0\0"));
493*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 240 HE",
494*2b54f0dbSXin Li 		normalize_brand_string("AMD Opteron(tm) Processor 240 HE\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
495*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 2431",
496*2b54f0dbSXin Li 		normalize_brand_string("Six-Core AMD Opteron(tm) Processor 2431\0\0\0\0\0\0\0\0\0"));
497*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 248",
498*2b54f0dbSXin Li 		normalize_brand_string("AMD Opteron(tm) Processor 248\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
499*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 4176 HE",
500*2b54f0dbSXin Li 		normalize_brand_string("AMD Opteron(tm) Processor 4176 HE\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
501*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 6180 SE",
502*2b54f0dbSXin Li 		normalize_brand_string("AMD Opteron(tm) Processor 6180 SE\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
503*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 6274",
504*2b54f0dbSXin Li 		normalize_brand_string("AMD Opteron(TM) Processor 6274                 \0"));
505*2b54f0dbSXin Li 	EXPECT_EQ("Opteron 8220 SE",
506*2b54f0dbSXin Li 		normalize_brand_string("Dual-Core AMD Opteron(tm) Processor 8220 SE\0\0\0\0\0"));
507*2b54f0dbSXin Li 	EXPECT_EQ("Phenom 9500",
508*2b54f0dbSXin Li 		normalize_brand_string("AMD Phenom(tm) 9500 Quad-Core Processor\0\0\0\0\0\0\0\0\0"));
509*2b54f0dbSXin Li 	EXPECT_EQ("Phenom II 42 TWKR Black Edition",
510*2b54f0dbSXin Li 		normalize_brand_string("AMD Phenom(tm) II 42 TWKR Black Edition\0\0\0\0\0\0\0\0\0"));
511*2b54f0dbSXin Li 	EXPECT_EQ("Phenom II X2 550",
512*2b54f0dbSXin Li 		normalize_brand_string("AMD Phenom(tm) II X2 550 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
513*2b54f0dbSXin Li 	EXPECT_EQ("Phenom II X4 940",
514*2b54f0dbSXin Li 		normalize_brand_string("AMD Phenom(tm) II X4 940 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
515*2b54f0dbSXin Li 	EXPECT_EQ("Phenom II X4 955",
516*2b54f0dbSXin Li 		normalize_brand_string("AMD Phenom(tm) II X4 955 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
517*2b54f0dbSXin Li 	EXPECT_EQ("Phenom II X4 965",
518*2b54f0dbSXin Li 		normalize_brand_string("AMD Phenom(tm) II X4 965 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
519*2b54f0dbSXin Li 	EXPECT_EQ("Phenom II X6 1055T",
520*2b54f0dbSXin Li 		normalize_brand_string("AMD Phenom(tm) II X6 1055T Processor\0\0\0\0\0\0\0\0\0\0\0\0"));
521*2b54f0dbSXin Li 	EXPECT_EQ("Ryzen 5 1500X",
522*2b54f0dbSXin Li 		normalize_brand_string("AMD Ryzen 5 1500X Quad-Core Processor          \0"));
523*2b54f0dbSXin Li 	EXPECT_EQ("Ryzen 7 1700X",
524*2b54f0dbSXin Li 		normalize_brand_string("AMD Ryzen 7 1700X Eight-Core Processor         \0"));
525*2b54f0dbSXin Li 	EXPECT_EQ("Ryzen 7 1800X",
526*2b54f0dbSXin Li 		normalize_brand_string("AMD Ryzen 7 1800X Eight-Core Processor         \0"));
527*2b54f0dbSXin Li 	EXPECT_EQ("Ryzen Threadripper 1950X",
528*2b54f0dbSXin Li 		normalize_brand_string("AMD Ryzen Threadripper 1950X 16-Core Processor \0"));
529*2b54f0dbSXin Li 	EXPECT_EQ("Sempron 140",
530*2b54f0dbSXin Li 		normalize_brand_string("AMD Sempron(tm) 140 Processor\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
531*2b54f0dbSXin Li 	EXPECT_EQ("Sempron 2600+",
532*2b54f0dbSXin Li 		normalize_brand_string("AMD Sempron(tm) Processor 2600+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
533*2b54f0dbSXin Li 	EXPECT_EQ("Sempron 2800+",
534*2b54f0dbSXin Li 		normalize_brand_string("AMD Sempron(tm) Processor 2800+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
535*2b54f0dbSXin Li 	EXPECT_EQ("Sempron 3000+",
536*2b54f0dbSXin Li 		normalize_brand_string("AMD Sempron(tm) Processor 3000+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
537*2b54f0dbSXin Li 	EXPECT_EQ("Turion RM-70",
538*2b54f0dbSXin Li 		normalize_brand_string("AMD Turion Dual-Core RM-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
539*2b54f0dbSXin Li 	EXPECT_EQ("Turion X2 Ultra ZM-82",
540*2b54f0dbSXin Li 		normalize_brand_string("AMD Turion(tm) X2 Ultra Dual-Core Mobile ZM-82\0\0"));
541*2b54f0dbSXin Li }
542*2b54f0dbSXin Li 
TEST(BRAND_STRING,via)543*2b54f0dbSXin Li TEST(BRAND_STRING, via) {
544*2b54f0dbSXin Li 	EXPECT_EQ("C3 Ezra",
545*2b54f0dbSXin Li 		normalize_brand_string("VIA C3 Ezra\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
546*2b54f0dbSXin Li 	EXPECT_EQ("C7-M 1200MHz",
547*2b54f0dbSXin Li 		normalize_brand_string("                     VIA C7-M Processor 1200MHz\0"));
548*2b54f0dbSXin Li 	EXPECT_EQ("CNA 1800MHz",
549*2b54f0dbSXin Li 		normalize_brand_string("                      VIA CNA processor 1800MHz "));
550*2b54f0dbSXin Li 	EXPECT_EQ("CNA 2667MHz",
551*2b54f0dbSXin Li 		normalize_brand_string("                      VIA CNA processor 2667MHz "));
552*2b54f0dbSXin Li 	EXPECT_EQ("Eden X4 C4250",
553*2b54f0dbSXin Li 		normalize_brand_string("                      VIA Eden X4 [email protected]+GHz\0"));
554*2b54f0dbSXin Li 	EXPECT_EQ("Esther 1500MHz",
555*2b54f0dbSXin Li 		normalize_brand_string("                   VIA Esther processor 1500MHz\0"));
556*2b54f0dbSXin Li 	EXPECT_EQ("Ezra",
557*2b54f0dbSXin Li 		normalize_brand_string("VIA Ezra\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
558*2b54f0dbSXin Li 	EXPECT_EQ("L4700",
559*2b54f0dbSXin Li 		normalize_brand_string("                  VIA QuadCore L4700 @ 1.2+ GHz\0"));
560*2b54f0dbSXin Li 	EXPECT_EQ("Nano 1800MHz",
561*2b54f0dbSXin Li 		normalize_brand_string("               VIA Nano processor      @1800MHz\0"));
562*2b54f0dbSXin Li 	EXPECT_EQ("Nano L2200",
563*2b54f0dbSXin Li 		normalize_brand_string("               VIA Nano processor L2200@1600MHz\0"));
564*2b54f0dbSXin Li 	EXPECT_EQ("Nano L3050",
565*2b54f0dbSXin Li 		normalize_brand_string("                         VIA Nano L3050@1800MHz\0"));
566*2b54f0dbSXin Li 	EXPECT_EQ("Nehemiah",
567*2b54f0dbSXin Li 		normalize_brand_string("VIA Nehemiah\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
568*2b54f0dbSXin Li 	EXPECT_EQ("Samuel",
569*2b54f0dbSXin Li 		normalize_brand_string("VIA Samuel\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
570*2b54f0dbSXin Li 	EXPECT_EQ("Samuel 2",
571*2b54f0dbSXin Li 		normalize_brand_string("VIA Samuel 2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
572*2b54f0dbSXin Li 	EXPECT_EQ("Samuel M",
573*2b54f0dbSXin Li 		normalize_brand_string("VIA Samuel\0\0M\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
574*2b54f0dbSXin Li }
575*2b54f0dbSXin Li 
TEST(BRAND_STRING,transmeta)576*2b54f0dbSXin Li TEST(BRAND_STRING, transmeta) {
577*2b54f0dbSXin Li 	EXPECT_EQ("Crusoe TM5800",
578*2b54f0dbSXin Li 		normalize_brand_string("Transmeta(tm) Crusoe(tm) Processor TM5800\0\0\0\0\0\0\0"));
579*2b54f0dbSXin Li 	EXPECT_EQ("Efficeon TM8000",
580*2b54f0dbSXin Li 		normalize_brand_string("Transmeta Efficeon(tm) Processor TM8000\0\0\0\0\0\0\0\0\0"));
581*2b54f0dbSXin Li }
582*2b54f0dbSXin Li 
TEST(BRAND_STRING,other)583*2b54f0dbSXin Li TEST(BRAND_STRING, other) {
584*2b54f0dbSXin Li 	EXPECT_EQ("",
585*2b54f0dbSXin Li 		normalize_brand_string("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
586*2b54f0dbSXin Li 	EXPECT_EQ("",
587*2b54f0dbSXin Li 		normalize_brand_string("Quad-Core Processor (up to 1.4GHz)             \0"));
588*2b54f0dbSXin Li 	EXPECT_EQ("Geode",
589*2b54f0dbSXin Li 		normalize_brand_string("Geode(TM) Integrated Processor by National Semi\0"));
590*2b54f0dbSXin Li 	EXPECT_EQ("MediaGX",
591*2b54f0dbSXin Li 		normalize_brand_string("Cyrix MediaGXtm MMXtm Enhanced\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
592*2b54f0dbSXin Li 	EXPECT_EQ("WinChip 2-3D",
593*2b54f0dbSXin Li 		normalize_brand_string("IDT WinChip 2-3D\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"));
594*2b54f0dbSXin Li }
595