#include #include #include #include #define CPUINFO_BUILD_PROP_VALUE_MAX 92 #define CPUINFO_ARM_CHIPSET_NAME_MAX 48 extern "C" void cpuinfo_arm_android_parse_ro_arch( const char arch[CPUINFO_BUILD_PROP_VALUE_MAX], uint32_t cores, uint32_t max_cpu_freq_max, char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]); inline std::string parse_ro_arch( std::string arch, uint32_t cores=1, uint32_t max_cpu_freq_max=0) { char arch_buffer[CPUINFO_BUILD_PROP_VALUE_MAX]; strncpy(arch_buffer, arch.c_str(), CPUINFO_BUILD_PROP_VALUE_MAX); char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]; cpuinfo_arm_android_parse_ro_arch( arch_buffer, cores, max_cpu_freq_max, chipset_name); return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX)); } TEST(RO_ARCH, samsung_exynos) { EXPECT_EQ("Samsung Exynos 3470", parse_ro_arch("exynos3470")); EXPECT_EQ("Samsung Exynos 3475", parse_ro_arch("exynos3475")); EXPECT_EQ("Samsung Exynos 4415", parse_ro_arch("exynos4415")); EXPECT_EQ("Samsung Exynos 5260", parse_ro_arch("exynos5260")); EXPECT_EQ("Samsung Exynos 5410", parse_ro_arch("exynos5410")); EXPECT_EQ("Samsung Exynos 5420", parse_ro_arch("exynos5420", 4)); EXPECT_EQ("Samsung Exynos 5422", parse_ro_arch("exynos5422")); EXPECT_EQ("Samsung Exynos 5430", parse_ro_arch("exynos5430")); EXPECT_EQ("Samsung Exynos 5433", parse_ro_arch("exynos5433")); EXPECT_EQ("Samsung Exynos 7420", parse_ro_arch("exynos7420")); EXPECT_EQ("Samsung Exynos 7570", parse_ro_arch("exynos7570")); EXPECT_EQ("Samsung Exynos 7580", parse_ro_arch("exynos7580", 8)); EXPECT_EQ("Samsung Exynos 7870", parse_ro_arch("exynos7870")); EXPECT_EQ("Samsung Exynos 7872", parse_ro_arch("exynos7872")); EXPECT_EQ("Samsung Exynos 7880", parse_ro_arch("exynos7880")); EXPECT_EQ("Samsung Exynos 7885", parse_ro_arch("exynos7885")); EXPECT_EQ("Samsung Exynos 8890", parse_ro_arch("exynos8890")); EXPECT_EQ("Samsung Exynos 8895", parse_ro_arch("exynos8895")); EXPECT_EQ("Samsung Exynos 9810", parse_ro_arch("exynos9810")); }