blob: 48a2d72b0ef9ba1f960171f53c54dc654858fe2a [file] [log] [blame]
#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_product_board(
const char board[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_product_board(
std::string board, uint32_t cores=1, uint32_t max_cpu_freq_max=0)
{
char board_buffer[CPUINFO_BUILD_PROP_VALUE_MAX];
strncpy(board_buffer, board.c_str(), CPUINFO_BUILD_PROP_VALUE_MAX);
char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
cpuinfo_arm_android_parse_ro_product_board(
board_buffer, cores, max_cpu_freq_max, chipset_name);
return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
}
TEST(RO_PRODUCT_BOARD, qualcomm_msm) {
EXPECT_EQ("Qualcomm APQ8064",
parse_ro_product_board("MSM8960", 4));
EXPECT_EQ("Qualcomm MSM7630",
parse_ro_product_board("MSM7630_SURF"));
EXPECT_EQ("Qualcomm MSM8209",
parse_ro_product_board("MSM8209"));
EXPECT_EQ("Qualcomm MSM8210",
parse_ro_product_board("MSM8210"));
EXPECT_EQ("Qualcomm MSM8212",
parse_ro_product_board("MSM8212"));
EXPECT_EQ("Qualcomm MSM8225",
parse_ro_product_board("MSM8225"));
EXPECT_EQ("Qualcomm MSM8226",
parse_ro_product_board("MSM8226"));
EXPECT_EQ("Qualcomm MSM8227",
parse_ro_product_board("MSM8227"));
EXPECT_EQ("Qualcomm MSM8228",
parse_ro_product_board("MSM8228"));
EXPECT_EQ("Qualcomm MSM8230",
parse_ro_product_board("MSM8230"));
EXPECT_EQ("Qualcomm MSM8260A",
parse_ro_product_board("MSM8260A"));
EXPECT_EQ("Qualcomm MSM8274",
parse_ro_product_board("MSM8274"));
#if CPUINFO_ARCH_ARM
EXPECT_EQ("Qualcomm MSM8610",
parse_ro_product_board("MSM8610", 2));
EXPECT_EQ("Qualcomm MSM8612",
parse_ro_product_board("MSM8610", 4));
#endif /* CPUINFO_ARCH_ARM */
EXPECT_EQ("Qualcomm MSM8612",
parse_ro_product_board("MSM8612"));
EXPECT_EQ("Qualcomm MSM8625",
parse_ro_product_board("MSM8625"));
EXPECT_EQ("Qualcomm MSM8626",
parse_ro_product_board("MSM8626"));
EXPECT_EQ("Qualcomm MSM8660",
parse_ro_product_board("MSM8660_SURF"));
EXPECT_EQ("Qualcomm MSM8674",
parse_ro_product_board("MSM8674"));
EXPECT_EQ("Qualcomm MSM8909",
parse_ro_product_board("MSM8909"));
EXPECT_EQ("Qualcomm MSM8909",
parse_ro_product_board("msm8909"));
EXPECT_EQ("Qualcomm MSM8916",
parse_ro_product_board("MSM8216"));
EXPECT_EQ("Qualcomm MSM8916",
parse_ro_product_board("MSM8916", 4));
EXPECT_EQ("Qualcomm MSM8916",
parse_ro_product_board("msm8916", 4));
EXPECT_EQ("Qualcomm MSM8917",
parse_ro_product_board("MSM8917"));
EXPECT_EQ("Qualcomm MSM8917",
parse_ro_product_board("msm8937", 4));
EXPECT_EQ("Qualcomm MSM8917",
parse_ro_product_board("msm8937_32", 4));
EXPECT_EQ("Qualcomm MSM8926",
parse_ro_product_board("MSM8926"));
EXPECT_EQ("Qualcomm MSM8928",
parse_ro_product_board("MSM8928"));
EXPECT_EQ("Qualcomm MSM8929",
parse_ro_product_board("MSM8929"));
EXPECT_EQ("Qualcomm MSM8929",
parse_ro_product_board("msm8929"));
EXPECT_EQ("Qualcomm MSM8937",
parse_ro_product_board("MSM8937", 8));
EXPECT_EQ("Qualcomm MSM8937",
parse_ro_product_board("msm8937", 8));
EXPECT_EQ("Qualcomm MSM8937",
parse_ro_product_board("msm8937_32", 8));
EXPECT_EQ("Qualcomm MSM8939",
parse_ro_product_board("MSM8916", 8));
EXPECT_EQ("Qualcomm MSM8939",
parse_ro_product_board("MSM8939"));
EXPECT_EQ("Qualcomm MSM8939",
parse_ro_product_board("msm8916", 8));
EXPECT_EQ("Qualcomm MSM8939",
parse_ro_product_board("msm8939"));
EXPECT_EQ("Qualcomm MSM8939",
parse_ro_product_board("msm8939_64"));
EXPECT_EQ("Qualcomm MSM8940",
parse_ro_product_board("MSM8940"));
EXPECT_EQ("Qualcomm MSM8952",
parse_ro_product_board("MSM8952"));
EXPECT_EQ("Qualcomm MSM8952",
parse_ro_product_board("msm8952"));
EXPECT_EQ("Qualcomm MSM8953",
parse_ro_product_board("msm8953"));
EXPECT_EQ("Qualcomm MSM8960",
parse_ro_product_board("MSM8960", 2));
EXPECT_EQ("Qualcomm MSM8974",
parse_ro_product_board("MSM8974"));
EXPECT_EQ("Qualcomm MSM8974",
parse_ro_product_board("msm8974"));
EXPECT_EQ("Qualcomm MSM8976",
parse_ro_product_board("MSM8976"));
EXPECT_EQ("Qualcomm MSM8992",
parse_ro_product_board("MSM8992"));
EXPECT_EQ("Qualcomm MSM8992",
parse_ro_product_board("msm8992"));
EXPECT_EQ("Qualcomm MSM8994",
parse_ro_product_board("MSM8994"));
EXPECT_EQ("Qualcomm MSM8994",
parse_ro_product_board("msm8994"));
EXPECT_EQ("Qualcomm MSM8996",
parse_ro_product_board("msm8996", 4));
EXPECT_EQ("Qualcomm MSM8998",
parse_ro_product_board("msm8998"));
}
TEST(RO_PRODUCT_BOARD, qualcomm_apq) {
EXPECT_EQ("Qualcomm APQ8064",
parse_ro_product_board("APQ8064"));
EXPECT_EQ("Qualcomm APQ8064A",
parse_ro_product_board("APQ8064A"));
EXPECT_EQ("Qualcomm APQ8064PRO",
parse_ro_product_board("APQ8064Pro"));
EXPECT_EQ("Qualcomm APQ8084",
parse_ro_product_board("APQ8084"));
}
TEST(RO_PRODUCT_BOARD, qualcomm_special) {
EXPECT_EQ("Qualcomm MSM8996PRO-AB",
parse_ro_product_board("marlin"));
EXPECT_EQ("Qualcomm MSM8996PRO-AB",
parse_ro_product_board("sailfish"));
}
TEST(RO_PRODUCT_BOARD, mediatek_mt) {
EXPECT_EQ("MediaTek MT5861",
parse_ro_product_board("mt5861"));
EXPECT_EQ("MediaTek MT5882",
parse_ro_product_board("mt5882"));
EXPECT_EQ("MediaTek MT6572",
parse_ro_product_board("mt6572"));
EXPECT_EQ("MediaTek MT6572M",
parse_ro_product_board("MT6572M"));
EXPECT_EQ("MediaTek MT6575",
parse_ro_product_board("MTK6575"));
EXPECT_EQ("MediaTek MT6575",
parse_ro_product_board("mt6575"));
EXPECT_EQ("MediaTek MT6577",
parse_ro_product_board("MTK6577"));
EXPECT_EQ("MediaTek MT6577",
parse_ro_product_board("mt6577"));
EXPECT_EQ("MediaTek MT6580",
parse_ro_product_board("MT6580"));
EXPECT_EQ("MediaTek MT6580",
parse_ro_product_board("mt6580"));
EXPECT_EQ("MediaTek MT6580A",
parse_ro_product_board("MT6580A"));
EXPECT_EQ("MediaTek MT6580M",
parse_ro_product_board("MT6580M"));
EXPECT_EQ("MediaTek MT6582",
parse_ro_product_board("MT6582"));
EXPECT_EQ("MediaTek MT6582",
parse_ro_product_board("mt6582"));
EXPECT_EQ("MediaTek MT6582M",
parse_ro_product_board("MTK6582M"));
EXPECT_EQ("MediaTek MT6582V",
parse_ro_product_board("MT6582V"));
EXPECT_EQ("MediaTek MT6582W",
parse_ro_product_board("MT6582W"));
EXPECT_EQ("MediaTek MT6589",
parse_ro_product_board("MT6589"));
EXPECT_EQ("MediaTek MT6589T",
parse_ro_product_board("MT6589T"));
EXPECT_EQ("MediaTek MT6592",
parse_ro_product_board("MT6592"));
EXPECT_EQ("MediaTek MT6592",
parse_ro_product_board("mt6592"));
EXPECT_EQ("MediaTek MT6592M",
parse_ro_product_board("MT6592M"));
EXPECT_EQ("MediaTek MT6595",
parse_ro_product_board("MT6595"));
EXPECT_EQ("MediaTek MT6732",
parse_ro_product_board("MT6732"));
EXPECT_EQ("MediaTek MT6735",
parse_ro_product_board("MT6735"));
EXPECT_EQ("MediaTek MT6735",
parse_ro_product_board("mt6735"));
EXPECT_EQ("MediaTek MT6735M",
parse_ro_product_board("MT6735M"));
EXPECT_EQ("MediaTek MT6735M",
parse_ro_product_board("mt6735m"));
EXPECT_EQ("MediaTek MT6735P",
parse_ro_product_board("MT6735P"));
EXPECT_EQ("MediaTek MT6735V",
parse_ro_product_board("MT6735V"));
EXPECT_EQ("MediaTek MT6737",
parse_ro_product_board("MT6737"));
EXPECT_EQ("MediaTek MT6737M",
parse_ro_product_board("mt6737m"));
EXPECT_EQ("MediaTek MT6737T",
parse_ro_product_board("MT6737T"));
EXPECT_EQ("MediaTek MT6750",
parse_ro_product_board("MT6750"));
EXPECT_EQ("MediaTek MT6750",
parse_ro_product_board("mt6750"));
EXPECT_EQ("MediaTek MT6752",
parse_ro_product_board("MT6752", 8));
EXPECT_EQ("MediaTek MT6753",
parse_ro_product_board("MT6753"));
EXPECT_EQ("MediaTek MT6753",
parse_ro_product_board("mt6753"));
EXPECT_EQ("MediaTek MT6755",
parse_ro_product_board("mt6755"));
EXPECT_EQ("MediaTek MT6755M",
parse_ro_product_board("MT6755M"));
EXPECT_EQ("MediaTek MT6757",
parse_ro_product_board("MT6757"));
EXPECT_EQ("MediaTek MT6795",
parse_ro_product_board("mt6795"));
EXPECT_EQ("MediaTek MT6797",
parse_ro_product_board("MT6797"));
EXPECT_EQ("MediaTek MT8127",
parse_ro_product_board("mt8127"));
EXPECT_EQ("MediaTek MT8151",
parse_ro_product_board("mt8151"));
EXPECT_EQ("MediaTek MT8163",
parse_ro_product_board("mt8163"));
EXPECT_EQ("MediaTek MT8312",
parse_ro_product_board("MT8312"));
EXPECT_EQ("MediaTek MT8321",
parse_ro_product_board("MT8321"));
EXPECT_EQ("MediaTek MT8382",
parse_ro_product_board("MT8382"));
EXPECT_EQ("MediaTek MT8382V",
parse_ro_product_board("MT8382V"));
EXPECT_EQ("MediaTek MT8389",
parse_ro_product_board("MT8389"));
EXPECT_EQ("MediaTek MT8735M",
parse_ro_product_board("MT8735m"));
EXPECT_EQ("MediaTek MT8735P",
parse_ro_product_board("MT8735P"));
EXPECT_EQ("MediaTek MT8783",
parse_ro_product_board("MT8783"));
}
TEST(RO_PRODUCT_BOARD, samsung_universal) {
EXPECT_EQ("Samsung Exynos 3470",
parse_ro_product_board("universal3470"));
EXPECT_EQ("Samsung Exynos 3475",
parse_ro_product_board("universal3475"));
EXPECT_EQ("Samsung Exynos 4415",
parse_ro_product_board("universal4415"));
EXPECT_EQ("Samsung Exynos 5260",
parse_ro_product_board("universal5260"));
EXPECT_EQ("Samsung Exynos 5410",
parse_ro_product_board("universal5410"));
EXPECT_EQ("Samsung Exynos 5420",
parse_ro_product_board("universal5420", 4));
EXPECT_EQ("Samsung Exynos 5422",
parse_ro_product_board("universal5422"));
EXPECT_EQ("Samsung Exynos 5430",
parse_ro_product_board("universal5430"));
EXPECT_EQ("Samsung Exynos 5433",
parse_ro_product_board("universal5433"));
EXPECT_EQ("Samsung Exynos 7420",
parse_ro_product_board("universal7420"));
EXPECT_EQ("Samsung Exynos 7570",
parse_ro_product_board("universal7570"));
EXPECT_EQ("Samsung Exynos 7578",
parse_ro_product_board("universal7580", 4));
EXPECT_EQ("Samsung Exynos 7580",
parse_ro_product_board("universal7580", 8));
EXPECT_EQ("Samsung Exynos 7870",
parse_ro_product_board("universal7870"));
EXPECT_EQ("Samsung Exynos 7880",
parse_ro_product_board("universal7880"));
EXPECT_EQ("Samsung Exynos 8890",
parse_ro_product_board("universal8890"));
EXPECT_EQ("Samsung Exynos 8895",
parse_ro_product_board("universal8895"));
}
#if CPUINFO_ARCH_ARM
TEST(RO_PRODUCT_BOARD, samsung_smdk) {
EXPECT_EQ("Samsung Exynos 4212",
parse_ro_product_board("smdk4x12", 2));
EXPECT_EQ("Samsung Exynos 4412",
parse_ro_product_board("smdk4x12", 4));
}
#endif
TEST(RO_PRODUCT_BOARD, hisilicon_huawei) {
EXPECT_EQ("HiSilicon Kirin 659",
parse_ro_product_board("BAC"));
EXPECT_EQ("HiSilicon Kirin 950",
parse_ro_product_board("FRD"));
EXPECT_EQ("HiSilicon Kirin 950",
parse_ro_product_board("FRD-L09"));
EXPECT_EQ("HiSilicon Kirin 950",
parse_ro_product_board("NXT"));
EXPECT_EQ("HiSilicon Kirin 950",
parse_ro_product_board("NXT-AL10"));
EXPECT_EQ("HiSilicon Kirin 950",
parse_ro_product_board("NXT-L09"));
EXPECT_EQ("HiSilicon Kirin 950",
parse_ro_product_board("NXT-L29"));
EXPECT_EQ("HiSilicon Kirin 955",
parse_ro_product_board("EVA"));
EXPECT_EQ("HiSilicon Kirin 955",
parse_ro_product_board("EVA-AL10"));
EXPECT_EQ("HiSilicon Kirin 955",
parse_ro_product_board("EVA-L09"));
EXPECT_EQ("HiSilicon Kirin 955",
parse_ro_product_board("EVA-L19"));
EXPECT_EQ("HiSilicon Kirin 955",
parse_ro_product_board("VIE-L09"));
EXPECT_EQ("HiSilicon Kirin 955",
parse_ro_product_board("VIE-L29"));
EXPECT_EQ("HiSilicon Kirin 960",
parse_ro_product_board("DUK"));
EXPECT_EQ("HiSilicon Kirin 960",
parse_ro_product_board("LON"));
EXPECT_EQ("HiSilicon Kirin 960",
parse_ro_product_board("MHA"));
EXPECT_EQ("HiSilicon Kirin 960",
parse_ro_product_board("STF"));
EXPECT_EQ("HiSilicon Kirin 960",
parse_ro_product_board("VKY"));
EXPECT_EQ("HiSilicon Kirin 960",
parse_ro_product_board("VTR"));
}
TEST(RO_PRODUCT_BOARD, hisilicon_special) {
EXPECT_EQ("HiSilicon Kirin 620",
parse_ro_product_board("hi6210sft"));
EXPECT_EQ("HiSilicon Kirin 650",
parse_ro_product_board("hi6250"));
#if CPUINFO_ARCH_ARM
EXPECT_EQ("HiSilicon Kirin 920",
parse_ro_product_board("hi3630"));
#endif /* CPUINFO_ARCH_ARM */
EXPECT_EQ("HiSilicon Kirin 930",
parse_ro_product_board("hi3635"));
EXPECT_EQ("HiSilicon Kirin 950",
parse_ro_product_board("hi3650"));
EXPECT_EQ("HiSilicon Kirin 960",
parse_ro_product_board("hi3660"));
EXPECT_EQ("HiSilicon Kirin 950",
parse_ro_product_board("BEETHOVEN"));
}
#if CPUINFO_ARCH_ARM
TEST(RO_PRODUCT_BOARD, broadcom) {
EXPECT_EQ("Broadcom BCM28155",
parse_ro_product_board("capri", 2, 1200000));
EXPECT_EQ("Broadcom BCM28155",
parse_ro_product_board("capri", 2, 1300000));
EXPECT_EQ("Broadcom BCM28155",
parse_ro_product_board("capri", 2, 1399999));
EXPECT_EQ("Broadcom BCM28155",
parse_ro_product_board("capri", 2, 1399999));
EXPECT_EQ("Broadcom BCM23550",
parse_ro_product_board("java", 4, 1200000));
EXPECT_EQ("Broadcom BCM23550",
parse_ro_product_board("java", 4, 1300000));
EXPECT_EQ("Broadcom BCM21654",
parse_ro_product_board("rhea", 1, 849999));
EXPECT_EQ("Broadcom BCM21654G",
parse_ro_product_board("rhea", 1, 999999));
EXPECT_EQ("Broadcom BCM21663",
parse_ro_product_board("hawaii", 1, 999999));
EXPECT_EQ("Broadcom BCM21664",
parse_ro_product_board("hawaii", 2, 999999));
EXPECT_EQ("Broadcom BCM21664T",
parse_ro_product_board("hawaii", 2, 1200000));
}
TEST(RO_PRODUCT_BOARD, leadcore_lc) {
EXPECT_EQ("Leadcore LC1810",
parse_ro_product_board("lc1810"));
}
TEST(RO_PRODUCT_BOARD, marvell_pxa) {
EXPECT_EQ("Marvell PXA1088",
parse_ro_product_board("PXA1088"));
EXPECT_EQ("Marvell PXA986",
parse_ro_product_board("PXA986"));
EXPECT_EQ("Marvell PXA988",
parse_ro_product_board("PXA988"));
}
TEST(RO_PRODUCT_BOARD, nvidia) {
EXPECT_EQ("Nvidia Tegra SL460N",
parse_ro_product_board("g2mv"));
EXPECT_EQ("Nvidia Tegra T132",
parse_ro_product_board("flounder"));
EXPECT_EQ("Nvidia Tegra T210",
parse_ro_product_board("dragon"));
EXPECT_EQ("Nvidia Tegra T30L",
parse_ro_product_board("grouper"));
}
TEST(RO_PRODUCT_BOARD, renesas) {
EXPECT_EQ("Renesas MP5232",
parse_ro_product_board("mp523x"));
}
TEST(RO_PRODUCT_BOARD, rockchip) {
EXPECT_EQ("Rockchip RK3066",
parse_ro_product_board("T7H"));
EXPECT_EQ("Rockchip RK3168",
parse_ro_product_board("hws7701u"));
EXPECT_EQ("Rockchip RK3188",
parse_ro_product_board("K00F"));
}
#endif
TEST(RO_PRODUCT_BOARD, spreadtrum) {
EXPECT_EQ("Spreadtrum SC6815AS",
parse_ro_product_board("SC6815AS"));
EXPECT_EQ("Spreadtrum SC7715",
parse_ro_product_board("SC7715"));
EXPECT_EQ("Spreadtrum SC7715A",
parse_ro_product_board("SC7715A"));
EXPECT_EQ("Spreadtrum SC7715T",
parse_ro_product_board("SC7715T"));
EXPECT_EQ("Spreadtrum SC7727S",
parse_ro_product_board("SC7727S"));
EXPECT_EQ("Spreadtrum SC7727S",
parse_ro_product_board("sc7727s"));
EXPECT_EQ("Spreadtrum SC7727SE",
parse_ro_product_board("SC7727SE"));
EXPECT_EQ("Spreadtrum SC7730S",
parse_ro_product_board("sc7730s"));
EXPECT_EQ("Spreadtrum SC7730SE",
parse_ro_product_board("SC7730SE"));
EXPECT_EQ("Spreadtrum SC7730SW",
parse_ro_product_board("SC7730SW"));
EXPECT_EQ("Spreadtrum SC7731",
parse_ro_product_board("SC7731"));
EXPECT_EQ("Spreadtrum SC7731C",
parse_ro_product_board("SC7731C"));
EXPECT_EQ("Spreadtrum SC7731G",
parse_ro_product_board("SC7731G"));
EXPECT_EQ("Spreadtrum SC7735S",
parse_ro_product_board("sc7735s"));
EXPECT_EQ("Spreadtrum SC9830A",
parse_ro_product_board("SC9830A"));
EXPECT_EQ("Spreadtrum SC9830I",
parse_ro_product_board("SC9830I"));
}
#if CPUINFO_ARCH_ARM
TEST(RO_PRODUCT_BOARD, texas_instruments) {
EXPECT_EQ("Texas Instruments OMAP4460",
parse_ro_product_board("tuna"));
}
#endif /* CPUINFO_ARCH_ARM */