| #include <gtest/gtest.h> |
| |
| #include <stdint.h> |
| #include <string.h> |
| |
| #include <string> |
| |
| #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")); |
| 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")); |
| } |