| #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_chipname( |
| const char chipname[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_chipname( |
| std::string chipname, uint32_t cores=1, uint32_t max_cpu_freq_max=0) |
| { |
| char chipname_buffer[CPUINFO_BUILD_PROP_VALUE_MAX]; |
| strncpy(chipname_buffer, chipname.c_str(), CPUINFO_BUILD_PROP_VALUE_MAX); |
| char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]; |
| cpuinfo_arm_android_parse_ro_chipname( |
| chipname_buffer, cores, max_cpu_freq_max, chipset_name); |
| return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX)); |
| } |
| |
| TEST(RO_CHIPNAME, qualcomm_msm) { |
| EXPECT_EQ("Qualcomm MSM7630", |
| parse_ro_chipname("MSM7630_SURF")); |
| EXPECT_EQ("Qualcomm MSM8210", |
| parse_ro_chipname("MSM8210")); |
| EXPECT_EQ("Qualcomm MSM8226", |
| parse_ro_chipname("MSM8226")); |
| EXPECT_EQ("Qualcomm MSM8228", |
| parse_ro_chipname("MSM8228")); |
| EXPECT_EQ("Qualcomm MSM8230AB", |
| parse_ro_chipname("MSM8230AB")); |
| EXPECT_EQ("Qualcomm MSM8230VV", |
| parse_ro_chipname("MSM8230VV")); |
| EXPECT_EQ("Qualcomm MSM8239", |
| parse_ro_chipname("MSM8239")); |
| EXPECT_EQ("Qualcomm MSM8260A", |
| parse_ro_chipname("MSM8260A")); |
| EXPECT_EQ("Qualcomm MSM8274", |
| parse_ro_chipname("MSM8274")); |
| EXPECT_EQ("Qualcomm MSM8610", |
| parse_ro_chipname("MSM8610", 2)); |
| EXPECT_EQ("Qualcomm MSM8626", |
| parse_ro_chipname("MSM8626")); |
| EXPECT_EQ("Qualcomm MSM8660", |
| parse_ro_chipname("MSM8660_SURF")); |
| EXPECT_EQ("Qualcomm MSM8674", |
| parse_ro_chipname("MSM8674")); |
| EXPECT_EQ("Qualcomm MSM8674PRO", |
| parse_ro_chipname("MSM8674PRO")); |
| EXPECT_EQ("Qualcomm MSM8916", |
| parse_ro_chipname("MSM8216")); |
| EXPECT_EQ("Qualcomm MSM8916", |
| parse_ro_chipname("MSM8916", 4)); |
| EXPECT_EQ("Qualcomm MSM8916", |
| parse_ro_chipname("msm8916", 4)); |
| EXPECT_EQ("Qualcomm MSM8917", |
| parse_ro_chipname("MSM8937", 4)); |
| EXPECT_EQ("Qualcomm MSM8926", |
| parse_ro_chipname("MSM8926")); |
| EXPECT_EQ("Qualcomm MSM8928", |
| parse_ro_chipname("MSM8928")); |
| EXPECT_EQ("Qualcomm MSM8929", |
| parse_ro_chipname("MSM8929")); |
| EXPECT_EQ("Qualcomm MSM8930", |
| parse_ro_chipname("MSM8930")); |
| EXPECT_EQ("Qualcomm MSM8930AB", |
| parse_ro_chipname("MSM8930AB")); |
| EXPECT_EQ("Qualcomm MSM8930VV", |
| parse_ro_chipname("MSM8930VV")); |
| EXPECT_EQ("Qualcomm MSM8939", |
| parse_ro_chipname("MSM8939")); |
| EXPECT_EQ("Qualcomm MSM8952", |
| parse_ro_chipname("MSM8952")); |
| EXPECT_EQ("Qualcomm MSM8953", |
| parse_ro_chipname("MSM8953")); |
| EXPECT_EQ("Qualcomm MSM8960", |
| parse_ro_chipname("MSM8960", 2)); |
| EXPECT_EQ("Qualcomm MSM8974", |
| parse_ro_chipname("MSM8974")); |
| EXPECT_EQ("Qualcomm MSM8974PRO", |
| parse_ro_chipname("MSM8974PRO")); |
| EXPECT_EQ("Qualcomm MSM8976", |
| parse_ro_chipname("MSM8976")); |
| EXPECT_EQ("Qualcomm MSM8996", |
| parse_ro_chipname("MSM8996", 4)); |
| EXPECT_EQ("Qualcomm MSM8998", |
| parse_ro_chipname("MSM8998")); |
| } |
| |
| TEST(RO_CHIPNAME, qualcomm_apq) { |
| EXPECT_EQ("Qualcomm APQ8016", |
| parse_ro_chipname("APQ8016")); |
| EXPECT_EQ("Qualcomm APQ8026", |
| parse_ro_chipname("APQ8026")); |
| EXPECT_EQ("Qualcomm APQ8064", |
| parse_ro_chipname("apq8064")); |
| EXPECT_EQ("Qualcomm APQ8074", |
| parse_ro_chipname("APQ8074")); |
| EXPECT_EQ("Qualcomm APQ8076", |
| parse_ro_chipname("APQ8076")); |
| EXPECT_EQ("Qualcomm APQ8084", |
| parse_ro_chipname("APQ8084")); |
| } |
| |
| TEST(RO_CHIPNAME, mediatek_mt) { |
| EXPECT_EQ("MediaTek MT6737T", |
| parse_ro_chipname("MT6737T")); |
| EXPECT_EQ("MediaTek MT6757", |
| parse_ro_chipname("MT6757")); |
| } |
| |
| TEST(RO_CHIPNAME, samsung_exynos) { |
| EXPECT_EQ("Samsung Exynos 3470", |
| parse_ro_chipname("exynos3470")); |
| EXPECT_EQ("Samsung Exynos 3475", |
| parse_ro_chipname("exynos3475")); |
| EXPECT_EQ("Samsung Exynos 4415", |
| parse_ro_chipname("exynos4415")); |
| EXPECT_EQ("Samsung Exynos 5260", |
| parse_ro_chipname("exynos5260")); |
| EXPECT_EQ("Samsung Exynos 5410", |
| parse_ro_chipname("exynos5410")); |
| EXPECT_EQ("Samsung Exynos 5420", |
| parse_ro_chipname("exynos5420", 4)); |
| EXPECT_EQ("Samsung Exynos 5422", |
| parse_ro_chipname("exynos5422")); |
| EXPECT_EQ("Samsung Exynos 5430", |
| parse_ro_chipname("exynos5430")); |
| EXPECT_EQ("Samsung Exynos 5433", |
| parse_ro_chipname("exynos5433")); |
| EXPECT_EQ("Samsung Exynos 7420", |
| parse_ro_chipname("exynos7420")); |
| EXPECT_EQ("Samsung Exynos 7570", |
| parse_ro_chipname("exynos7570")); |
| EXPECT_EQ("Samsung Exynos 7578", |
| parse_ro_chipname("exynos7580", 4)); |
| EXPECT_EQ("Samsung Exynos 7580", |
| parse_ro_chipname("exynos7580", 8)); |
| EXPECT_EQ("Samsung Exynos 7870", |
| parse_ro_chipname("exynos7870")); |
| EXPECT_EQ("Samsung Exynos 7880", |
| parse_ro_chipname("exynos7880")); |
| EXPECT_EQ("Samsung Exynos 8890", |
| parse_ro_chipname("exynos8890")); |
| EXPECT_EQ("Samsung Exynos 8895", |
| parse_ro_chipname("exynos8895")); |
| } |
| |
| #if CPUINFO_ARCH_ARM |
| TEST(RO_CHIPNAME, marvell_pxa) { |
| EXPECT_EQ("Marvell PXA1088", |
| parse_ro_chipname("PXA1088")); |
| EXPECT_EQ("Marvell PXA986", |
| parse_ro_chipname("PXA986")); |
| } |
| |
| TEST(RO_CHIPNAME, renesas) { |
| EXPECT_EQ("Renesas MP5232", |
| parse_ro_chipname("mp523x")); |
| } |
| #endif /* CPUINFO_ARCH_ARM */ |
| |
| TEST(RO_CHIPNAME, spreadtrum) { |
| EXPECT_EQ("Spreadtrum SC6815AS", |
| parse_ro_chipname("SC6815AS")); |
| EXPECT_EQ("Spreadtrum SC7715A", |
| parse_ro_chipname("SC7715A")); |
| EXPECT_EQ("Spreadtrum SC7715T", |
| parse_ro_chipname("SC7715T")); |
| EXPECT_EQ("Spreadtrum SC7727S", |
| parse_ro_chipname("SC7727S")); |
| EXPECT_EQ("Spreadtrum SC7727S", |
| parse_ro_chipname("sc7727s")); |
| EXPECT_EQ("Spreadtrum SC7727SE", |
| parse_ro_chipname("SC7727SE")); |
| EXPECT_EQ("Spreadtrum SC7730S", |
| parse_ro_chipname("sc7730s")); |
| EXPECT_EQ("Spreadtrum SC7730SE", |
| parse_ro_chipname("SC7730SE")); |
| EXPECT_EQ("Spreadtrum SC7730SW", |
| parse_ro_chipname("SC7730SW")); |
| EXPECT_EQ("Spreadtrum SC7735S", |
| parse_ro_chipname("sc7735s")); |
| EXPECT_EQ("Spreadtrum SC9830I", |
| parse_ro_chipname("SC9830I")); |
| } |