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_mediatek_platform(
12*2b54f0dbSXin Li const char platform[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_mediatek_platform(std::string platform,uint32_t cores=1,uint32_t max_cpu_freq_max=0)17*2b54f0dbSXin Li inline std::string parse_ro_mediatek_platform(
18*2b54f0dbSXin Li std::string platform, uint32_t cores=1, uint32_t max_cpu_freq_max=0)
19*2b54f0dbSXin Li {
20*2b54f0dbSXin Li char platform_buffer[CPUINFO_BUILD_PROP_VALUE_MAX];
21*2b54f0dbSXin Li strncpy(platform_buffer, platform.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_mediatek_platform(
24*2b54f0dbSXin Li platform_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_MEDIATEK_PLATFORM,qualcomm)28*2b54f0dbSXin Li TEST(RO_MEDIATEK_PLATFORM, qualcomm) {
29*2b54f0dbSXin Li EXPECT_EQ("", parse_ro_mediatek_platform("MSM8225Q"));
30*2b54f0dbSXin Li EXPECT_EQ("", parse_ro_mediatek_platform("Qualcomm Snapdragon 805"));
31*2b54f0dbSXin Li EXPECT_EQ("", parse_ro_mediatek_platform("Qualcomm Snapdragon 820"));
32*2b54f0dbSXin Li }
33*2b54f0dbSXin Li
TEST(RO_MEDIATEK_PLATFORM,samsung)34*2b54f0dbSXin Li TEST(RO_MEDIATEK_PLATFORM, samsung) {
35*2b54f0dbSXin Li EXPECT_EQ("", parse_ro_mediatek_platform("EXYNOS5420"));
36*2b54f0dbSXin Li EXPECT_EQ("", parse_ro_mediatek_platform("Samsung Exynos 5420"));
37*2b54f0dbSXin Li }
38*2b54f0dbSXin Li
TEST(RO_MEDIATEK_PLATFORM,apple)39*2b54f0dbSXin Li TEST(RO_MEDIATEK_PLATFORM, apple) {
40*2b54f0dbSXin Li EXPECT_EQ("", parse_ro_mediatek_platform("Apple A9"));
41*2b54f0dbSXin Li EXPECT_EQ("", parse_ro_mediatek_platform("Apple A10"));
42*2b54f0dbSXin Li }
43*2b54f0dbSXin Li
TEST(RO_MEDIATEK_PLATFORM,mediatek_mt)44*2b54f0dbSXin Li TEST(RO_MEDIATEK_PLATFORM, mediatek_mt) {
45*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT5861",
46*2b54f0dbSXin Li parse_ro_mediatek_platform("mt5861"));
47*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT5882",
48*2b54f0dbSXin Li parse_ro_mediatek_platform("mt5882"));
49*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6570",
50*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6570"));
51*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6572",
52*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6572"));
53*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6572A",
54*2b54f0dbSXin Li parse_ro_mediatek_platform("MT6572A"));
55*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6575",
56*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6575"));
57*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6577",
58*2b54f0dbSXin Li parse_ro_mediatek_platform("MT6577"));
59*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6577",
60*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6577"));
61*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6580",
62*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6580"));
63*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6582",
64*2b54f0dbSXin Li parse_ro_mediatek_platform("MTK6582"));
65*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6582",
66*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6582"));
67*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6582M",
68*2b54f0dbSXin Li parse_ro_mediatek_platform("MTK6582M"));
69*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6589",
70*2b54f0dbSXin Li parse_ro_mediatek_platform("MT6589"));
71*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6589",
72*2b54f0dbSXin Li parse_ro_mediatek_platform("MTK6589"));
73*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6592",
74*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6592"));
75*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6592T",
76*2b54f0dbSXin Li parse_ro_mediatek_platform("MTK6592T"));
77*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6595",
78*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6595"));
79*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6732",
80*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6752", 4));
81*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6735",
82*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6735"));
83*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6735M",
84*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6735m"));
85*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6737",
86*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6737"));
87*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6737M",
88*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6737m"));
89*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6737T",
90*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6737t"));
91*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6750",
92*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6750"));
93*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6752",
94*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6752", 8));
95*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6753",
96*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6753"));
97*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6755",
98*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6755"));
99*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6757",
100*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6757"));
101*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6795",
102*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6795"));
103*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT6797",
104*2b54f0dbSXin Li parse_ro_mediatek_platform("mt6797"));
105*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8111",
106*2b54f0dbSXin Li parse_ro_mediatek_platform("MT8111"));
107*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8127",
108*2b54f0dbSXin Li parse_ro_mediatek_platform("MT8127"));
109*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8127",
110*2b54f0dbSXin Li parse_ro_mediatek_platform("mt8127"));
111*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8135",
112*2b54f0dbSXin Li parse_ro_mediatek_platform("mt8135"));
113*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8151",
114*2b54f0dbSXin Li parse_ro_mediatek_platform("mt8151"));
115*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8163",
116*2b54f0dbSXin Li parse_ro_mediatek_platform("mt8163"));
117*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8167",
118*2b54f0dbSXin Li parse_ro_mediatek_platform("mt8167"));
119*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8173",
120*2b54f0dbSXin Li parse_ro_mediatek_platform("mt8173"));
121*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8312",
122*2b54f0dbSXin Li parse_ro_mediatek_platform("MT8312"));
123*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8382",
124*2b54f0dbSXin Li parse_ro_mediatek_platform("MT8382"));
125*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8382V",
126*2b54f0dbSXin Li parse_ro_mediatek_platform("MT8382V"));
127*2b54f0dbSXin Li EXPECT_EQ("MediaTek MT8392",
128*2b54f0dbSXin Li parse_ro_mediatek_platform("MT8392"));
129*2b54f0dbSXin Li }
130