xref: /aosp_15_r20/external/cpuinfo/test/mock/leagoo-t5c.cc (revision 2b54f0db79fd8303838913b20ff3780cddaa909f)
1*2b54f0dbSXin Li #include <gtest/gtest.h>
2*2b54f0dbSXin Li 
3*2b54f0dbSXin Li #include <cpuinfo.h>
4*2b54f0dbSXin Li #include <cpuinfo-mock.h>
5*2b54f0dbSXin Li 
6*2b54f0dbSXin Li 
TEST(PROCESSORS,count)7*2b54f0dbSXin Li TEST(PROCESSORS, count) {
8*2b54f0dbSXin Li 	ASSERT_EQ(8, cpuinfo_get_processors_count());
9*2b54f0dbSXin Li }
10*2b54f0dbSXin Li 
TEST(PROCESSORS,non_null)11*2b54f0dbSXin Li TEST(PROCESSORS, non_null) {
12*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_get_processors());
13*2b54f0dbSXin Li }
14*2b54f0dbSXin Li 
TEST(PROCESSORS,smt_id)15*2b54f0dbSXin Li TEST(PROCESSORS, smt_id) {
16*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
17*2b54f0dbSXin Li 		ASSERT_EQ(0, cpuinfo_get_processor(i)->smt_id);
18*2b54f0dbSXin Li 	}
19*2b54f0dbSXin Li }
20*2b54f0dbSXin Li 
TEST(PROCESSORS,core)21*2b54f0dbSXin Li TEST(PROCESSORS, core) {
22*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
23*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_core(i), cpuinfo_get_processor(i)->core);
24*2b54f0dbSXin Li 	}
25*2b54f0dbSXin Li }
26*2b54f0dbSXin Li 
TEST(PROCESSORS,cluster)27*2b54f0dbSXin Li TEST(PROCESSORS, cluster) {
28*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
29*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_cluster(i / 4), cpuinfo_get_processor(i)->cluster);
30*2b54f0dbSXin Li 	}
31*2b54f0dbSXin Li }
32*2b54f0dbSXin Li 
TEST(PROCESSORS,package)33*2b54f0dbSXin Li TEST(PROCESSORS, package) {
34*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
35*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_package(0), cpuinfo_get_processor(i)->package);
36*2b54f0dbSXin Li 	}
37*2b54f0dbSXin Li }
38*2b54f0dbSXin Li 
TEST(PROCESSORS,linux_id)39*2b54f0dbSXin Li TEST(PROCESSORS, linux_id) {
40*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
41*2b54f0dbSXin Li 		ASSERT_EQ(i, cpuinfo_get_processor(i)->linux_id);
42*2b54f0dbSXin Li 	}
43*2b54f0dbSXin Li }
44*2b54f0dbSXin Li 
TEST(PROCESSORS,l1i)45*2b54f0dbSXin Li TEST(PROCESSORS, l1i) {
46*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
47*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_l1i_cache(i), cpuinfo_get_processor(i)->cache.l1i);
48*2b54f0dbSXin Li 	}
49*2b54f0dbSXin Li }
50*2b54f0dbSXin Li 
TEST(PROCESSORS,l1d)51*2b54f0dbSXin Li TEST(PROCESSORS, l1d) {
52*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
53*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_l1d_cache(i), cpuinfo_get_processor(i)->cache.l1d);
54*2b54f0dbSXin Li 	}
55*2b54f0dbSXin Li }
56*2b54f0dbSXin Li 
TEST(PROCESSORS,l2)57*2b54f0dbSXin Li TEST(PROCESSORS, l2) {
58*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
59*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_l2_cache(i / 4), cpuinfo_get_processor(i)->cache.l2);
60*2b54f0dbSXin Li 	}
61*2b54f0dbSXin Li }
62*2b54f0dbSXin Li 
TEST(PROCESSORS,l3)63*2b54f0dbSXin Li TEST(PROCESSORS, l3) {
64*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
65*2b54f0dbSXin Li 		ASSERT_FALSE(cpuinfo_get_processor(i)->cache.l3);
66*2b54f0dbSXin Li 	}
67*2b54f0dbSXin Li }
68*2b54f0dbSXin Li 
TEST(PROCESSORS,l4)69*2b54f0dbSXin Li TEST(PROCESSORS, l4) {
70*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
71*2b54f0dbSXin Li 		ASSERT_FALSE(cpuinfo_get_processor(i)->cache.l4);
72*2b54f0dbSXin Li 	}
73*2b54f0dbSXin Li }
74*2b54f0dbSXin Li 
TEST(CORES,count)75*2b54f0dbSXin Li TEST(CORES, count) {
76*2b54f0dbSXin Li 	ASSERT_EQ(8, cpuinfo_get_cores_count());
77*2b54f0dbSXin Li }
78*2b54f0dbSXin Li 
TEST(CORES,non_null)79*2b54f0dbSXin Li TEST(CORES, non_null) {
80*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_get_cores());
81*2b54f0dbSXin Li }
82*2b54f0dbSXin Li 
TEST(CORES,processor_start)83*2b54f0dbSXin Li TEST(CORES, processor_start) {
84*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
85*2b54f0dbSXin Li 		ASSERT_EQ(i, cpuinfo_get_core(i)->processor_start);
86*2b54f0dbSXin Li 	}
87*2b54f0dbSXin Li }
88*2b54f0dbSXin Li 
TEST(CORES,processor_count)89*2b54f0dbSXin Li TEST(CORES, processor_count) {
90*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
91*2b54f0dbSXin Li 		ASSERT_EQ(1, cpuinfo_get_core(i)->processor_count);
92*2b54f0dbSXin Li 	}
93*2b54f0dbSXin Li }
94*2b54f0dbSXin Li 
TEST(CORES,core_id)95*2b54f0dbSXin Li TEST(CORES, core_id) {
96*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
97*2b54f0dbSXin Li 		ASSERT_EQ(i, cpuinfo_get_core(i)->core_id);
98*2b54f0dbSXin Li 	}
99*2b54f0dbSXin Li }
100*2b54f0dbSXin Li 
TEST(CORES,cluster)101*2b54f0dbSXin Li TEST(CORES, cluster) {
102*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
103*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_cluster(i / 4), cpuinfo_get_core(i)->cluster);
104*2b54f0dbSXin Li 	}
105*2b54f0dbSXin Li }
106*2b54f0dbSXin Li 
TEST(CORES,package)107*2b54f0dbSXin Li TEST(CORES, package) {
108*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
109*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_package(0), cpuinfo_get_core(i)->package);
110*2b54f0dbSXin Li 	}
111*2b54f0dbSXin Li }
112*2b54f0dbSXin Li 
TEST(CORES,vendor)113*2b54f0dbSXin Li TEST(CORES, vendor) {
114*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
115*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_vendor_intel, cpuinfo_get_core(i)->vendor);
116*2b54f0dbSXin Li 	}
117*2b54f0dbSXin Li }
118*2b54f0dbSXin Li 
TEST(CORES,uarch)119*2b54f0dbSXin Li TEST(CORES, uarch) {
120*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
121*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_uarch_airmont, cpuinfo_get_core(i)->uarch);
122*2b54f0dbSXin Li 	}
123*2b54f0dbSXin Li }
124*2b54f0dbSXin Li 
TEST(CORES,cpuid)125*2b54f0dbSXin Li TEST(CORES, cpuid) {
126*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
127*2b54f0dbSXin Li 		ASSERT_EQ(UINT32_C(0x0007065A), cpuinfo_get_core(i)->cpuid);
128*2b54f0dbSXin Li 	}
129*2b54f0dbSXin Li }
130*2b54f0dbSXin Li 
TEST(CORES,DISABLED_frequency)131*2b54f0dbSXin Li TEST(CORES, DISABLED_frequency) {
132*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
133*2b54f0dbSXin Li 		ASSERT_EQ(UINT64_C(1872000000), cpuinfo_get_core(i)->frequency);
134*2b54f0dbSXin Li 	}
135*2b54f0dbSXin Li }
136*2b54f0dbSXin Li 
TEST(CLUSTERS,count)137*2b54f0dbSXin Li TEST(CLUSTERS, count) {
138*2b54f0dbSXin Li 	ASSERT_EQ(2, cpuinfo_get_clusters_count());
139*2b54f0dbSXin Li }
140*2b54f0dbSXin Li 
TEST(CLUSTERS,non_null)141*2b54f0dbSXin Li TEST(CLUSTERS, non_null) {
142*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_get_clusters());
143*2b54f0dbSXin Li }
144*2b54f0dbSXin Li 
TEST(CLUSTERS,processor_start)145*2b54f0dbSXin Li TEST(CLUSTERS, processor_start) {
146*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
147*2b54f0dbSXin Li 		ASSERT_EQ(i * 4, cpuinfo_get_cluster(i)->processor_start);
148*2b54f0dbSXin Li 	}
149*2b54f0dbSXin Li }
150*2b54f0dbSXin Li 
TEST(CLUSTERS,processor_count)151*2b54f0dbSXin Li TEST(CLUSTERS, processor_count) {
152*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
153*2b54f0dbSXin Li 		ASSERT_EQ(4, cpuinfo_get_cluster(i)->processor_count);
154*2b54f0dbSXin Li 	}
155*2b54f0dbSXin Li }
156*2b54f0dbSXin Li 
TEST(CLUSTERS,core_start)157*2b54f0dbSXin Li TEST(CLUSTERS, core_start) {
158*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
159*2b54f0dbSXin Li 		ASSERT_EQ(i * 4, cpuinfo_get_cluster(i)->core_start);
160*2b54f0dbSXin Li 	}
161*2b54f0dbSXin Li }
162*2b54f0dbSXin Li 
TEST(CLUSTERS,core_count)163*2b54f0dbSXin Li TEST(CLUSTERS, core_count) {
164*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
165*2b54f0dbSXin Li 		ASSERT_EQ(4, cpuinfo_get_cluster(i)->core_count);
166*2b54f0dbSXin Li 	}
167*2b54f0dbSXin Li }
168*2b54f0dbSXin Li 
TEST(CLUSTERS,cluster_id)169*2b54f0dbSXin Li TEST(CLUSTERS, cluster_id) {
170*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
171*2b54f0dbSXin Li 		ASSERT_EQ(i, cpuinfo_get_cluster(i)->cluster_id);
172*2b54f0dbSXin Li 	}
173*2b54f0dbSXin Li }
174*2b54f0dbSXin Li 
TEST(CLUSTERS,package)175*2b54f0dbSXin Li TEST(CLUSTERS, package) {
176*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
177*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_package(0), cpuinfo_get_cluster(i)->package);
178*2b54f0dbSXin Li 	}
179*2b54f0dbSXin Li }
180*2b54f0dbSXin Li 
TEST(CLUSTERS,vendor)181*2b54f0dbSXin Li TEST(CLUSTERS, vendor) {
182*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
183*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_vendor_intel, cpuinfo_get_cluster(i)->vendor);
184*2b54f0dbSXin Li 	}
185*2b54f0dbSXin Li }
186*2b54f0dbSXin Li 
TEST(CLUSTERS,uarch)187*2b54f0dbSXin Li TEST(CLUSTERS, uarch) {
188*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
189*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_uarch_airmont, cpuinfo_get_cluster(i)->uarch);
190*2b54f0dbSXin Li 	}
191*2b54f0dbSXin Li }
192*2b54f0dbSXin Li 
TEST(CLUSTERS,cpuid)193*2b54f0dbSXin Li TEST(CLUSTERS, cpuid) {
194*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
195*2b54f0dbSXin Li 		ASSERT_EQ(UINT32_C(0x0007065A), cpuinfo_get_cluster(i)->cpuid);
196*2b54f0dbSXin Li 	}
197*2b54f0dbSXin Li }
198*2b54f0dbSXin Li 
TEST(CLUSTERS,DISABLED_frequency)199*2b54f0dbSXin Li TEST(CLUSTERS, DISABLED_frequency) {
200*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_clusters_count(); i++) {
201*2b54f0dbSXin Li 		ASSERT_EQ(UINT64_C(1872000000), cpuinfo_get_cluster(i)->frequency);
202*2b54f0dbSXin Li 	}
203*2b54f0dbSXin Li }
204*2b54f0dbSXin Li 
TEST(PACKAGES,count)205*2b54f0dbSXin Li TEST(PACKAGES, count) {
206*2b54f0dbSXin Li 	ASSERT_EQ(1, cpuinfo_get_packages_count());
207*2b54f0dbSXin Li }
208*2b54f0dbSXin Li 
TEST(PACKAGES,non_null)209*2b54f0dbSXin Li TEST(PACKAGES, non_null) {
210*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_get_packages());
211*2b54f0dbSXin Li }
212*2b54f0dbSXin Li 
TEST(PACKAGES,DISABLED_name)213*2b54f0dbSXin Li TEST(PACKAGES, DISABLED_name) {
214*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
215*2b54f0dbSXin Li 		ASSERT_EQ("Spreadtrum SC9853I-IA",
216*2b54f0dbSXin Li 			std::string(cpuinfo_get_package(i)->name,
217*2b54f0dbSXin Li 				strnlen(cpuinfo_get_package(i)->name, CPUINFO_PACKAGE_NAME_MAX)));
218*2b54f0dbSXin Li 	}
219*2b54f0dbSXin Li }
220*2b54f0dbSXin Li 
TEST(PACKAGES,processor_start)221*2b54f0dbSXin Li TEST(PACKAGES, processor_start) {
222*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
223*2b54f0dbSXin Li 		ASSERT_EQ(0, cpuinfo_get_package(i)->processor_start);
224*2b54f0dbSXin Li 	}
225*2b54f0dbSXin Li }
226*2b54f0dbSXin Li 
TEST(PACKAGES,processor_count)227*2b54f0dbSXin Li TEST(PACKAGES, processor_count) {
228*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
229*2b54f0dbSXin Li 		ASSERT_EQ(8, cpuinfo_get_package(i)->processor_count);
230*2b54f0dbSXin Li 	}
231*2b54f0dbSXin Li }
232*2b54f0dbSXin Li 
TEST(PACKAGES,core_start)233*2b54f0dbSXin Li TEST(PACKAGES, core_start) {
234*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
235*2b54f0dbSXin Li 		ASSERT_EQ(0, cpuinfo_get_package(i)->core_start);
236*2b54f0dbSXin Li 	}
237*2b54f0dbSXin Li }
238*2b54f0dbSXin Li 
TEST(PACKAGES,core_count)239*2b54f0dbSXin Li TEST(PACKAGES, core_count) {
240*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
241*2b54f0dbSXin Li 		ASSERT_EQ(8, cpuinfo_get_package(i)->core_count);
242*2b54f0dbSXin Li 	}
243*2b54f0dbSXin Li }
244*2b54f0dbSXin Li 
TEST(PACKAGES,cluster_start)245*2b54f0dbSXin Li TEST(PACKAGES, cluster_start) {
246*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
247*2b54f0dbSXin Li 		ASSERT_EQ(0, cpuinfo_get_package(i)->cluster_start);
248*2b54f0dbSXin Li 	}
249*2b54f0dbSXin Li }
250*2b54f0dbSXin Li 
TEST(PACKAGES,cluster_count)251*2b54f0dbSXin Li TEST(PACKAGES, cluster_count) {
252*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
253*2b54f0dbSXin Li 		ASSERT_EQ(2, cpuinfo_get_package(i)->cluster_count);
254*2b54f0dbSXin Li 	}
255*2b54f0dbSXin Li }
256*2b54f0dbSXin Li 
TEST(ISA,rdtsc)257*2b54f0dbSXin Li TEST(ISA, rdtsc) {
258*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_rdtsc());
259*2b54f0dbSXin Li }
260*2b54f0dbSXin Li 
TEST(ISA,rdtscp)261*2b54f0dbSXin Li TEST(ISA, rdtscp) {
262*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_rdtscp());
263*2b54f0dbSXin Li }
264*2b54f0dbSXin Li 
TEST(ISA,rdpid)265*2b54f0dbSXin Li TEST(ISA, rdpid) {
266*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_rdpid());
267*2b54f0dbSXin Li }
268*2b54f0dbSXin Li 
TEST(ISA,clzero)269*2b54f0dbSXin Li TEST(ISA, clzero) {
270*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_clzero());
271*2b54f0dbSXin Li }
272*2b54f0dbSXin Li 
TEST(ISA,mwait)273*2b54f0dbSXin Li TEST(ISA, mwait) {
274*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_mwait());
275*2b54f0dbSXin Li }
276*2b54f0dbSXin Li 
TEST(ISA,mwaitx)277*2b54f0dbSXin Li TEST(ISA, mwaitx) {
278*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_mwaitx());
279*2b54f0dbSXin Li }
280*2b54f0dbSXin Li 
TEST(ISA,fxsave)281*2b54f0dbSXin Li TEST(ISA, fxsave) {
282*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_fxsave());
283*2b54f0dbSXin Li }
284*2b54f0dbSXin Li 
TEST(ISA,xsave)285*2b54f0dbSXin Li TEST(ISA, xsave) {
286*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_xsave());
287*2b54f0dbSXin Li }
288*2b54f0dbSXin Li 
TEST(ISA,fpu)289*2b54f0dbSXin Li TEST(ISA, fpu) {
290*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_fpu());
291*2b54f0dbSXin Li }
292*2b54f0dbSXin Li 
TEST(ISA,mmx)293*2b54f0dbSXin Li TEST(ISA, mmx) {
294*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_mmx());
295*2b54f0dbSXin Li }
296*2b54f0dbSXin Li 
TEST(ISA,mmx_plus)297*2b54f0dbSXin Li TEST(ISA, mmx_plus) {
298*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_mmx_plus());
299*2b54f0dbSXin Li }
300*2b54f0dbSXin Li 
TEST(ISA,three_d_now)301*2b54f0dbSXin Li TEST(ISA, three_d_now) {
302*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_3dnow());
303*2b54f0dbSXin Li }
304*2b54f0dbSXin Li 
TEST(ISA,three_d_now_plus)305*2b54f0dbSXin Li TEST(ISA, three_d_now_plus) {
306*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_3dnow_plus());
307*2b54f0dbSXin Li }
308*2b54f0dbSXin Li 
TEST(ISA,three_d_now_geode)309*2b54f0dbSXin Li TEST(ISA, three_d_now_geode) {
310*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_3dnow_geode());
311*2b54f0dbSXin Li }
312*2b54f0dbSXin Li 
TEST(ISA,prefetch)313*2b54f0dbSXin Li TEST(ISA, prefetch) {
314*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_prefetch());
315*2b54f0dbSXin Li }
316*2b54f0dbSXin Li 
TEST(ISA,prefetchw)317*2b54f0dbSXin Li TEST(ISA, prefetchw) {
318*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_prefetchw());
319*2b54f0dbSXin Li }
320*2b54f0dbSXin Li 
TEST(ISA,prefetchwt1)321*2b54f0dbSXin Li TEST(ISA, prefetchwt1) {
322*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_prefetchwt1());
323*2b54f0dbSXin Li }
324*2b54f0dbSXin Li 
TEST(ISA,daz)325*2b54f0dbSXin Li TEST(ISA, daz) {
326*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_daz());
327*2b54f0dbSXin Li }
328*2b54f0dbSXin Li 
TEST(ISA,sse)329*2b54f0dbSXin Li TEST(ISA, sse) {
330*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_sse());
331*2b54f0dbSXin Li }
332*2b54f0dbSXin Li 
TEST(ISA,sse2)333*2b54f0dbSXin Li TEST(ISA, sse2) {
334*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_sse2());
335*2b54f0dbSXin Li }
336*2b54f0dbSXin Li 
TEST(ISA,sse3)337*2b54f0dbSXin Li TEST(ISA, sse3) {
338*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_sse3());
339*2b54f0dbSXin Li }
340*2b54f0dbSXin Li 
TEST(ISA,ssse3)341*2b54f0dbSXin Li TEST(ISA, ssse3) {
342*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_ssse3());
343*2b54f0dbSXin Li }
344*2b54f0dbSXin Li 
TEST(ISA,sse4_1)345*2b54f0dbSXin Li TEST(ISA, sse4_1) {
346*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_sse4_1());
347*2b54f0dbSXin Li }
348*2b54f0dbSXin Li 
TEST(ISA,sse4_2)349*2b54f0dbSXin Li TEST(ISA, sse4_2) {
350*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_sse4_2());
351*2b54f0dbSXin Li }
352*2b54f0dbSXin Li 
TEST(ISA,sse4a)353*2b54f0dbSXin Li TEST(ISA, sse4a) {
354*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_sse4a());
355*2b54f0dbSXin Li }
356*2b54f0dbSXin Li 
TEST(ISA,misaligned_sse)357*2b54f0dbSXin Li TEST(ISA, misaligned_sse) {
358*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_misaligned_sse());
359*2b54f0dbSXin Li }
360*2b54f0dbSXin Li 
TEST(ISA,avx)361*2b54f0dbSXin Li TEST(ISA, avx) {
362*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx());
363*2b54f0dbSXin Li }
364*2b54f0dbSXin Li 
TEST(ISA,fma3)365*2b54f0dbSXin Li TEST(ISA, fma3) {
366*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_fma3());
367*2b54f0dbSXin Li }
368*2b54f0dbSXin Li 
TEST(ISA,fma4)369*2b54f0dbSXin Li TEST(ISA, fma4) {
370*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_fma4());
371*2b54f0dbSXin Li }
372*2b54f0dbSXin Li 
TEST(ISA,xop)373*2b54f0dbSXin Li TEST(ISA, xop) {
374*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_xop());
375*2b54f0dbSXin Li }
376*2b54f0dbSXin Li 
TEST(ISA,f16c)377*2b54f0dbSXin Li TEST(ISA, f16c) {
378*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_f16c());
379*2b54f0dbSXin Li }
380*2b54f0dbSXin Li 
TEST(ISA,avx2)381*2b54f0dbSXin Li TEST(ISA, avx2) {
382*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx2());
383*2b54f0dbSXin Li }
384*2b54f0dbSXin Li 
TEST(ISA,avx512f)385*2b54f0dbSXin Li TEST(ISA, avx512f) {
386*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512f());
387*2b54f0dbSXin Li }
388*2b54f0dbSXin Li 
TEST(ISA,avx512pf)389*2b54f0dbSXin Li TEST(ISA, avx512pf) {
390*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512pf());
391*2b54f0dbSXin Li }
392*2b54f0dbSXin Li 
TEST(ISA,avx512er)393*2b54f0dbSXin Li TEST(ISA, avx512er) {
394*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512er());
395*2b54f0dbSXin Li }
396*2b54f0dbSXin Li 
TEST(ISA,avx512cd)397*2b54f0dbSXin Li TEST(ISA, avx512cd) {
398*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512cd());
399*2b54f0dbSXin Li }
400*2b54f0dbSXin Li 
TEST(ISA,avx512dq)401*2b54f0dbSXin Li TEST(ISA, avx512dq) {
402*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512dq());
403*2b54f0dbSXin Li }
404*2b54f0dbSXin Li 
TEST(ISA,avx512bw)405*2b54f0dbSXin Li TEST(ISA, avx512bw) {
406*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512bw());
407*2b54f0dbSXin Li }
408*2b54f0dbSXin Li 
TEST(ISA,avx512vl)409*2b54f0dbSXin Li TEST(ISA, avx512vl) {
410*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512vl());
411*2b54f0dbSXin Li }
412*2b54f0dbSXin Li 
TEST(ISA,avx512ifma)413*2b54f0dbSXin Li TEST(ISA, avx512ifma) {
414*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512ifma());
415*2b54f0dbSXin Li }
416*2b54f0dbSXin Li 
TEST(ISA,avx512vbmi)417*2b54f0dbSXin Li TEST(ISA, avx512vbmi) {
418*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512vbmi());
419*2b54f0dbSXin Li }
420*2b54f0dbSXin Li 
TEST(ISA,avx512vpopcntdq)421*2b54f0dbSXin Li TEST(ISA, avx512vpopcntdq) {
422*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512vpopcntdq());
423*2b54f0dbSXin Li }
424*2b54f0dbSXin Li 
TEST(ISA,avx512_4vnniw)425*2b54f0dbSXin Li TEST(ISA, avx512_4vnniw) {
426*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512_4vnniw());
427*2b54f0dbSXin Li }
428*2b54f0dbSXin Li 
TEST(ISA,avx512_4fmaps)429*2b54f0dbSXin Li TEST(ISA, avx512_4fmaps) {
430*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_avx512_4fmaps());
431*2b54f0dbSXin Li }
432*2b54f0dbSXin Li 
TEST(ISA,hle)433*2b54f0dbSXin Li TEST(ISA, hle) {
434*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_hle());
435*2b54f0dbSXin Li }
436*2b54f0dbSXin Li 
TEST(ISA,rtm)437*2b54f0dbSXin Li TEST(ISA, rtm) {
438*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_rtm());
439*2b54f0dbSXin Li }
440*2b54f0dbSXin Li 
TEST(ISA,xtest)441*2b54f0dbSXin Li TEST(ISA, xtest) {
442*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_xtest());
443*2b54f0dbSXin Li }
444*2b54f0dbSXin Li 
TEST(ISA,mpx)445*2b54f0dbSXin Li TEST(ISA, mpx) {
446*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_mpx());
447*2b54f0dbSXin Li }
448*2b54f0dbSXin Li 
TEST(ISA,cmov)449*2b54f0dbSXin Li TEST(ISA, cmov) {
450*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_cmov());
451*2b54f0dbSXin Li }
452*2b54f0dbSXin Li 
TEST(ISA,cmpxchg8b)453*2b54f0dbSXin Li TEST(ISA, cmpxchg8b) {
454*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_cmpxchg8b());
455*2b54f0dbSXin Li }
456*2b54f0dbSXin Li 
TEST(ISA,cmpxchg16b)457*2b54f0dbSXin Li TEST(ISA, cmpxchg16b) {
458*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_cmpxchg16b());
459*2b54f0dbSXin Li }
460*2b54f0dbSXin Li 
TEST(ISA,clwb)461*2b54f0dbSXin Li TEST(ISA, clwb) {
462*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_clwb());
463*2b54f0dbSXin Li }
464*2b54f0dbSXin Li 
TEST(ISA,movbe)465*2b54f0dbSXin Li TEST(ISA, movbe) {
466*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_movbe());
467*2b54f0dbSXin Li }
468*2b54f0dbSXin Li 
TEST(ISA,lahf_sahf)469*2b54f0dbSXin Li TEST(ISA, lahf_sahf) {
470*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_lahf_sahf());
471*2b54f0dbSXin Li }
472*2b54f0dbSXin Li 
TEST(ISA,lzcnt)473*2b54f0dbSXin Li TEST(ISA, lzcnt) {
474*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_lzcnt());
475*2b54f0dbSXin Li }
476*2b54f0dbSXin Li 
TEST(ISA,popcnt)477*2b54f0dbSXin Li TEST(ISA, popcnt) {
478*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_popcnt());
479*2b54f0dbSXin Li }
480*2b54f0dbSXin Li 
TEST(ISA,tbm)481*2b54f0dbSXin Li TEST(ISA, tbm) {
482*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_tbm());
483*2b54f0dbSXin Li }
484*2b54f0dbSXin Li 
TEST(ISA,bmi)485*2b54f0dbSXin Li TEST(ISA, bmi) {
486*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_bmi());
487*2b54f0dbSXin Li }
488*2b54f0dbSXin Li 
TEST(ISA,bmi2)489*2b54f0dbSXin Li TEST(ISA, bmi2) {
490*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_bmi2());
491*2b54f0dbSXin Li }
492*2b54f0dbSXin Li 
TEST(ISA,adx)493*2b54f0dbSXin Li TEST(ISA, adx) {
494*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_adx());
495*2b54f0dbSXin Li }
496*2b54f0dbSXin Li 
TEST(ISA,aes)497*2b54f0dbSXin Li TEST(ISA, aes) {
498*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_aes());
499*2b54f0dbSXin Li }
500*2b54f0dbSXin Li 
TEST(ISA,pclmulqdq)501*2b54f0dbSXin Li TEST(ISA, pclmulqdq) {
502*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_has_x86_pclmulqdq());
503*2b54f0dbSXin Li }
504*2b54f0dbSXin Li 
TEST(ISA,rdrand)505*2b54f0dbSXin Li TEST(ISA, rdrand) {
506*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_rdrand());
507*2b54f0dbSXin Li }
508*2b54f0dbSXin Li 
TEST(ISA,rdseed)509*2b54f0dbSXin Li TEST(ISA, rdseed) {
510*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_rdseed());
511*2b54f0dbSXin Li }
512*2b54f0dbSXin Li 
TEST(ISA,sha)513*2b54f0dbSXin Li TEST(ISA, sha) {
514*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_has_x86_sha());
515*2b54f0dbSXin Li }
516*2b54f0dbSXin Li 
TEST(L1I,count)517*2b54f0dbSXin Li TEST(L1I, count) {
518*2b54f0dbSXin Li 	ASSERT_EQ(8, cpuinfo_get_l1i_caches_count());
519*2b54f0dbSXin Li }
520*2b54f0dbSXin Li 
TEST(L1I,non_null)521*2b54f0dbSXin Li TEST(L1I, non_null) {
522*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_get_l1i_caches());
523*2b54f0dbSXin Li }
524*2b54f0dbSXin Li 
TEST(L1I,size)525*2b54f0dbSXin Li TEST(L1I, size) {
526*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1i_caches_count(); i++) {
527*2b54f0dbSXin Li 		ASSERT_EQ(32 * 1024, cpuinfo_get_l1i_cache(i)->size);
528*2b54f0dbSXin Li 	}
529*2b54f0dbSXin Li }
530*2b54f0dbSXin Li 
TEST(L1I,associativity)531*2b54f0dbSXin Li TEST(L1I, associativity) {
532*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1i_caches_count(); i++) {
533*2b54f0dbSXin Li 		ASSERT_EQ(8, cpuinfo_get_l1i_cache(i)->associativity);
534*2b54f0dbSXin Li 	}
535*2b54f0dbSXin Li }
536*2b54f0dbSXin Li 
TEST(L1I,sets)537*2b54f0dbSXin Li TEST(L1I, sets) {
538*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1i_caches_count(); i++) {
539*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_l1i_cache(i)->size,
540*2b54f0dbSXin Li 			cpuinfo_get_l1i_cache(i)->sets * cpuinfo_get_l1i_cache(i)->line_size * cpuinfo_get_l1i_cache(i)->partitions * cpuinfo_get_l1i_cache(i)->associativity);
541*2b54f0dbSXin Li 	}
542*2b54f0dbSXin Li }
543*2b54f0dbSXin Li 
TEST(L1I,partitions)544*2b54f0dbSXin Li TEST(L1I, partitions) {
545*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1i_caches_count(); i++) {
546*2b54f0dbSXin Li 		ASSERT_EQ(1, cpuinfo_get_l1i_cache(i)->partitions);
547*2b54f0dbSXin Li 	}
548*2b54f0dbSXin Li }
549*2b54f0dbSXin Li 
TEST(L1I,line_size)550*2b54f0dbSXin Li TEST(L1I, line_size) {
551*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1i_caches_count(); i++) {
552*2b54f0dbSXin Li 		ASSERT_EQ(64, cpuinfo_get_l1i_cache(i)->line_size);
553*2b54f0dbSXin Li 	}
554*2b54f0dbSXin Li }
555*2b54f0dbSXin Li 
TEST(L1I,flags)556*2b54f0dbSXin Li TEST(L1I, flags) {
557*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1i_caches_count(); i++) {
558*2b54f0dbSXin Li 		ASSERT_EQ(0, cpuinfo_get_l1i_cache(i)->flags);
559*2b54f0dbSXin Li 	}
560*2b54f0dbSXin Li }
561*2b54f0dbSXin Li 
TEST(L1I,processors)562*2b54f0dbSXin Li TEST(L1I, processors) {
563*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1i_caches_count(); i++) {
564*2b54f0dbSXin Li 		ASSERT_EQ(i, cpuinfo_get_l1i_cache(i)->processor_start);
565*2b54f0dbSXin Li 		ASSERT_EQ(1, cpuinfo_get_l1i_cache(i)->processor_count);
566*2b54f0dbSXin Li 	}
567*2b54f0dbSXin Li }
568*2b54f0dbSXin Li 
TEST(L1D,count)569*2b54f0dbSXin Li TEST(L1D, count) {
570*2b54f0dbSXin Li 	ASSERT_EQ(8, cpuinfo_get_l1d_caches_count());
571*2b54f0dbSXin Li }
572*2b54f0dbSXin Li 
TEST(L1D,non_null)573*2b54f0dbSXin Li TEST(L1D, non_null) {
574*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_get_l1d_caches());
575*2b54f0dbSXin Li }
576*2b54f0dbSXin Li 
TEST(L1D,size)577*2b54f0dbSXin Li TEST(L1D, size) {
578*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1d_caches_count(); i++) {
579*2b54f0dbSXin Li 		ASSERT_EQ(16 * 1024, cpuinfo_get_l1d_cache(i)->size);
580*2b54f0dbSXin Li 	}
581*2b54f0dbSXin Li }
582*2b54f0dbSXin Li 
TEST(L1D,associativity)583*2b54f0dbSXin Li TEST(L1D, associativity) {
584*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1d_caches_count(); i++) {
585*2b54f0dbSXin Li 		ASSERT_EQ(4, cpuinfo_get_l1d_cache(i)->associativity);
586*2b54f0dbSXin Li 	}
587*2b54f0dbSXin Li }
588*2b54f0dbSXin Li 
TEST(L1D,sets)589*2b54f0dbSXin Li TEST(L1D, sets) {
590*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1d_caches_count(); i++) {
591*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_l1d_cache(i)->size,
592*2b54f0dbSXin Li 			cpuinfo_get_l1d_cache(i)->sets * cpuinfo_get_l1d_cache(i)->line_size * cpuinfo_get_l1d_cache(i)->partitions * cpuinfo_get_l1d_cache(i)->associativity);
593*2b54f0dbSXin Li 	}
594*2b54f0dbSXin Li }
595*2b54f0dbSXin Li 
TEST(L1D,partitions)596*2b54f0dbSXin Li TEST(L1D, partitions) {
597*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1d_caches_count(); i++) {
598*2b54f0dbSXin Li 		ASSERT_EQ(1, cpuinfo_get_l1d_cache(i)->partitions);
599*2b54f0dbSXin Li 	}
600*2b54f0dbSXin Li }
601*2b54f0dbSXin Li 
TEST(L1D,line_size)602*2b54f0dbSXin Li TEST(L1D, line_size) {
603*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1d_caches_count(); i++) {
604*2b54f0dbSXin Li 		ASSERT_EQ(64, cpuinfo_get_l1d_cache(i)->line_size);
605*2b54f0dbSXin Li 	}
606*2b54f0dbSXin Li }
607*2b54f0dbSXin Li 
TEST(L1D,flags)608*2b54f0dbSXin Li TEST(L1D, flags) {
609*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1d_caches_count(); i++) {
610*2b54f0dbSXin Li 		ASSERT_EQ(0, cpuinfo_get_l1d_cache(i)->flags);
611*2b54f0dbSXin Li 	}
612*2b54f0dbSXin Li }
613*2b54f0dbSXin Li 
TEST(L1D,processors)614*2b54f0dbSXin Li TEST(L1D, processors) {
615*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l1d_caches_count(); i++) {
616*2b54f0dbSXin Li 		ASSERT_EQ(i, cpuinfo_get_l1d_cache(i)->processor_start);
617*2b54f0dbSXin Li 		ASSERT_EQ(1, cpuinfo_get_l1d_cache(i)->processor_count);
618*2b54f0dbSXin Li 	}
619*2b54f0dbSXin Li }
620*2b54f0dbSXin Li 
TEST(L2,count)621*2b54f0dbSXin Li TEST(L2, count) {
622*2b54f0dbSXin Li 	ASSERT_EQ(2, cpuinfo_get_l2_caches_count());
623*2b54f0dbSXin Li }
624*2b54f0dbSXin Li 
TEST(L2,non_null)625*2b54f0dbSXin Li TEST(L2, non_null) {
626*2b54f0dbSXin Li 	ASSERT_TRUE(cpuinfo_get_l2_caches());
627*2b54f0dbSXin Li }
628*2b54f0dbSXin Li 
TEST(L2,size)629*2b54f0dbSXin Li TEST(L2, size) {
630*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l2_caches_count(); i++) {
631*2b54f0dbSXin Li 		ASSERT_EQ(1024 * 1024, cpuinfo_get_l2_cache(i)->size);
632*2b54f0dbSXin Li 	}
633*2b54f0dbSXin Li }
634*2b54f0dbSXin Li 
TEST(L2,associativity)635*2b54f0dbSXin Li TEST(L2, associativity) {
636*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l2_caches_count(); i++) {
637*2b54f0dbSXin Li 		ASSERT_EQ(16, cpuinfo_get_l2_cache(i)->associativity);
638*2b54f0dbSXin Li 	}
639*2b54f0dbSXin Li }
640*2b54f0dbSXin Li 
TEST(L2,sets)641*2b54f0dbSXin Li TEST(L2, sets) {
642*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l2_caches_count(); i++) {
643*2b54f0dbSXin Li 		ASSERT_EQ(cpuinfo_get_l2_cache(i)->size,
644*2b54f0dbSXin Li 			cpuinfo_get_l2_cache(i)->sets * cpuinfo_get_l2_cache(i)->line_size * cpuinfo_get_l2_cache(i)->partitions * cpuinfo_get_l2_cache(i)->associativity);
645*2b54f0dbSXin Li 	}
646*2b54f0dbSXin Li }
647*2b54f0dbSXin Li 
TEST(L2,partitions)648*2b54f0dbSXin Li TEST(L2, partitions) {
649*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l2_caches_count(); i++) {
650*2b54f0dbSXin Li 		ASSERT_EQ(1, cpuinfo_get_l2_cache(i)->partitions);
651*2b54f0dbSXin Li 	}
652*2b54f0dbSXin Li }
653*2b54f0dbSXin Li 
TEST(L2,line_size)654*2b54f0dbSXin Li TEST(L2, line_size) {
655*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l2_caches_count(); i++) {
656*2b54f0dbSXin Li 		ASSERT_EQ(64, cpuinfo_get_l2_cache(i)->line_size);
657*2b54f0dbSXin Li 	}
658*2b54f0dbSXin Li }
659*2b54f0dbSXin Li 
TEST(L2,flags)660*2b54f0dbSXin Li TEST(L2, flags) {
661*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l2_caches_count(); i++) {
662*2b54f0dbSXin Li 		ASSERT_EQ(CPUINFO_CACHE_UNIFIED, cpuinfo_get_l2_cache(i)->flags);
663*2b54f0dbSXin Li 	}
664*2b54f0dbSXin Li }
665*2b54f0dbSXin Li 
TEST(L2,processors)666*2b54f0dbSXin Li TEST(L2, processors) {
667*2b54f0dbSXin Li 	for (uint32_t i = 0; i < cpuinfo_get_l2_caches_count(); i++) {
668*2b54f0dbSXin Li 		ASSERT_EQ(i * 4, cpuinfo_get_l2_cache(i)->processor_start);
669*2b54f0dbSXin Li 		ASSERT_EQ(4, cpuinfo_get_l2_cache(i)->processor_count);
670*2b54f0dbSXin Li 	}
671*2b54f0dbSXin Li }
672*2b54f0dbSXin Li 
TEST(L3,none)673*2b54f0dbSXin Li TEST(L3, none) {
674*2b54f0dbSXin Li 	ASSERT_EQ(0, cpuinfo_get_l3_caches_count());
675*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_get_l3_caches());
676*2b54f0dbSXin Li }
677*2b54f0dbSXin Li 
TEST(L4,none)678*2b54f0dbSXin Li TEST(L4, none) {
679*2b54f0dbSXin Li 	ASSERT_EQ(0, cpuinfo_get_l4_caches_count());
680*2b54f0dbSXin Li 	ASSERT_FALSE(cpuinfo_get_l4_caches());
681*2b54f0dbSXin Li }
682*2b54f0dbSXin Li 
683*2b54f0dbSXin Li #include <leagoo-t5c.h>
684*2b54f0dbSXin Li 
main(int argc,char * argv[])685*2b54f0dbSXin Li int main(int argc, char* argv[]) {
686*2b54f0dbSXin Li 	cpuinfo_mock_filesystem(filesystem);
687*2b54f0dbSXin Li 	cpuinfo_mock_set_cpuid(cpuid_dump, sizeof(cpuid_dump) / sizeof(cpuinfo_mock_cpuid));
688*2b54f0dbSXin Li 	cpuinfo_initialize();
689*2b54f0dbSXin Li 	::testing::InitGoogleTest(&argc, argv);
690*2b54f0dbSXin Li 	return RUN_ALL_TESTS();
691*2b54f0dbSXin Li }
692