1*2b54f0dbSXin Li #include <gtest/gtest.h>
2*2b54f0dbSXin Li
3*2b54f0dbSXin Li #include <stdint.h>
4*2b54f0dbSXin Li #include <string.h>
5*2b54f0dbSXin Li
6*2b54f0dbSXin Li #include <string>
7*2b54f0dbSXin Li
8*2b54f0dbSXin Li #define CPUINFO_BUILD_PROP_VALUE_MAX 92
9*2b54f0dbSXin Li #define CPUINFO_ARM_CHIPSET_NAME_MAX 48
10*2b54f0dbSXin Li
11*2b54f0dbSXin Li extern "C" void cpuinfo_arm_android_parse_ro_arch(
12*2b54f0dbSXin Li const char arch[CPUINFO_BUILD_PROP_VALUE_MAX],
13*2b54f0dbSXin Li uint32_t cores,
14*2b54f0dbSXin Li uint32_t max_cpu_freq_max,
15*2b54f0dbSXin Li char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]);
16*2b54f0dbSXin Li
parse_ro_arch(std::string arch,uint32_t cores=1,uint32_t max_cpu_freq_max=0)17*2b54f0dbSXin Li inline std::string parse_ro_arch(
18*2b54f0dbSXin Li std::string arch, uint32_t cores=1, uint32_t max_cpu_freq_max=0)
19*2b54f0dbSXin Li {
20*2b54f0dbSXin Li char arch_buffer[CPUINFO_BUILD_PROP_VALUE_MAX];
21*2b54f0dbSXin Li strncpy(arch_buffer, arch.c_str(), CPUINFO_BUILD_PROP_VALUE_MAX);
22*2b54f0dbSXin Li char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
23*2b54f0dbSXin Li cpuinfo_arm_android_parse_ro_arch(
24*2b54f0dbSXin Li arch_buffer, cores, max_cpu_freq_max, chipset_name);
25*2b54f0dbSXin Li return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
26*2b54f0dbSXin Li }
27*2b54f0dbSXin Li
TEST(RO_ARCH,samsung_exynos)28*2b54f0dbSXin Li TEST(RO_ARCH, samsung_exynos) {
29*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 3470",
30*2b54f0dbSXin Li parse_ro_arch("exynos3470"));
31*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 3475",
32*2b54f0dbSXin Li parse_ro_arch("exynos3475"));
33*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 4415",
34*2b54f0dbSXin Li parse_ro_arch("exynos4415"));
35*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 5260",
36*2b54f0dbSXin Li parse_ro_arch("exynos5260"));
37*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 5410",
38*2b54f0dbSXin Li parse_ro_arch("exynos5410"));
39*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 5420",
40*2b54f0dbSXin Li parse_ro_arch("exynos5420", 4));
41*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 5422",
42*2b54f0dbSXin Li parse_ro_arch("exynos5422"));
43*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 5430",
44*2b54f0dbSXin Li parse_ro_arch("exynos5430"));
45*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 5433",
46*2b54f0dbSXin Li parse_ro_arch("exynos5433"));
47*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 7420",
48*2b54f0dbSXin Li parse_ro_arch("exynos7420"));
49*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 7570",
50*2b54f0dbSXin Li parse_ro_arch("exynos7570"));
51*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 7580",
52*2b54f0dbSXin Li parse_ro_arch("exynos7580", 8));
53*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 7870",
54*2b54f0dbSXin Li parse_ro_arch("exynos7870"));
55*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 7872",
56*2b54f0dbSXin Li parse_ro_arch("exynos7872"));
57*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 7880",
58*2b54f0dbSXin Li parse_ro_arch("exynos7880"));
59*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 7885",
60*2b54f0dbSXin Li parse_ro_arch("exynos7885"));
61*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 8890",
62*2b54f0dbSXin Li parse_ro_arch("exynos8890"));
63*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 8895",
64*2b54f0dbSXin Li parse_ro_arch("exynos8895"));
65*2b54f0dbSXin Li EXPECT_EQ("Samsung Exynos 9810",
66*2b54f0dbSXin Li parse_ro_arch("exynos9810"));
67*2b54f0dbSXin Li }
68