• 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_BUILD_PROP_VALUE_MAX 92
9 #define CPUINFO_ARM_CHIPSET_NAME_MAX 48
10 
11 extern "C" void cpuinfo_arm_android_parse_ro_arch(
12 	const char arch[CPUINFO_BUILD_PROP_VALUE_MAX],
13 	uint32_t cores,
14 	uint32_t max_cpu_freq_max,
15 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]);
16 
parse_ro_arch(std::string arch,uint32_t cores=1,uint32_t max_cpu_freq_max=0)17 inline std::string parse_ro_arch(std::string arch, uint32_t cores = 1, uint32_t max_cpu_freq_max = 0) {
18 	char arch_buffer[CPUINFO_BUILD_PROP_VALUE_MAX];
19 	strncpy(arch_buffer, arch.c_str(), CPUINFO_BUILD_PROP_VALUE_MAX);
20 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
21 	cpuinfo_arm_android_parse_ro_arch(arch_buffer, cores, max_cpu_freq_max, chipset_name);
22 	return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
23 }
24 
TEST(RO_ARCH,samsung_exynos)25 TEST(RO_ARCH, samsung_exynos) {
26 	EXPECT_EQ("Samsung Exynos 3470", parse_ro_arch("exynos3470"));
27 	EXPECT_EQ("Samsung Exynos 3475", parse_ro_arch("exynos3475"));
28 	EXPECT_EQ("Samsung Exynos 4415", parse_ro_arch("exynos4415"));
29 	EXPECT_EQ("Samsung Exynos 5260", parse_ro_arch("exynos5260"));
30 	EXPECT_EQ("Samsung Exynos 5410", parse_ro_arch("exynos5410"));
31 	EXPECT_EQ("Samsung Exynos 5420", parse_ro_arch("exynos5420", 4));
32 	EXPECT_EQ("Samsung Exynos 5422", parse_ro_arch("exynos5422"));
33 	EXPECT_EQ("Samsung Exynos 5430", parse_ro_arch("exynos5430"));
34 	EXPECT_EQ("Samsung Exynos 5433", parse_ro_arch("exynos5433"));
35 	EXPECT_EQ("Samsung Exynos 7420", parse_ro_arch("exynos7420"));
36 	EXPECT_EQ("Samsung Exynos 7570", parse_ro_arch("exynos7570"));
37 	EXPECT_EQ("Samsung Exynos 7580", parse_ro_arch("exynos7580", 8));
38 	EXPECT_EQ("Samsung Exynos 7870", parse_ro_arch("exynos7870"));
39 	EXPECT_EQ("Samsung Exynos 7872", parse_ro_arch("exynos7872"));
40 	EXPECT_EQ("Samsung Exynos 7880", parse_ro_arch("exynos7880"));
41 	EXPECT_EQ("Samsung Exynos 7885", parse_ro_arch("exynos7885"));
42 	EXPECT_EQ("Samsung Exynos 8890", parse_ro_arch("exynos8890"));
43 	EXPECT_EQ("Samsung Exynos 8895", parse_ro_arch("exynos8895"));
44 	EXPECT_EQ("Samsung Exynos 9810", parse_ro_arch("exynos9810"));
45 }
46