#include <gtest/gtest.h>

#include <stdint.h>
#include <string.h>

#include <string>

#define CPUINFO_HARDWARE_VALUE_MAX 64
#define CPUINFO_ARM_CHIPSET_NAME_MAX 48

extern "C" void cpuinfo_arm_android_parse_proc_cpuinfo_hardware(
	const char hardware[CPUINFO_HARDWARE_VALUE_MAX],
	uint32_t cores,
	uint32_t max_cpu_freq_max,
	bool is_tegra,
	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]);

inline std::string parse_proc_cpuinfo_hardware(
	std::string hardware,
	uint32_t cores=1,
	uint32_t max_cpu_freq_max=0)
{
	char hardware_buffer[CPUINFO_HARDWARE_VALUE_MAX];
	strncpy(hardware_buffer, hardware.c_str(), CPUINFO_HARDWARE_VALUE_MAX);
	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
	cpuinfo_arm_android_parse_proc_cpuinfo_hardware(
		hardware_buffer, cores, max_cpu_freq_max, false, chipset_name);
	return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
}

inline std::string parse_proc_cpuinfo_hardware_tegra(
	std::string hardware,
	uint32_t cores=1,
	uint32_t max_cpu_freq_max=0)
{
	char hardware_buffer[CPUINFO_HARDWARE_VALUE_MAX];
	strncpy(hardware_buffer, hardware.c_str(), CPUINFO_HARDWARE_VALUE_MAX);
	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
	cpuinfo_arm_android_parse_proc_cpuinfo_hardware(
		hardware_buffer, cores, max_cpu_freq_max, true, chipset_name);
	return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
}

TEST(PROC_CPUINFO_HARDWARE, qualcomm_msm) {
	EXPECT_EQ("Qualcomm MSM7225AB",
		parse_proc_cpuinfo_hardware("LG MSM7225AB"));
	EXPECT_EQ("Qualcomm MSM7225AB",
		parse_proc_cpuinfo_hardware("LG MSM7225AB V1"));
	EXPECT_EQ("Qualcomm MSM7625A",
		parse_proc_cpuinfo_hardware("QCT MSM7625a FFA"));
	EXPECT_EQ("Qualcomm MSM8208",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8208"));
	EXPECT_EQ("Qualcomm MSM8209",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8209"));
	EXPECT_EQ("Qualcomm MSM8210",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8210"));
	EXPECT_EQ("Qualcomm MSM8212",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8212 (Flattened Device Tree)"));
	EXPECT_EQ("Qualcomm MSM8212",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8212"));
	EXPECT_EQ("Qualcomm MSM8225",
		parse_proc_cpuinfo_hardware("QCT MSM8225 SURF"));
	EXPECT_EQ("Qualcomm MSM8226",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8226 (Flattened Device Tree)"));
	EXPECT_EQ("Qualcomm MSM8226",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8226"));
	EXPECT_EQ("Qualcomm MSM8228",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8228"));
	EXPECT_EQ("Qualcomm MSM8230",
		parse_proc_cpuinfo_hardware("LGE MSM8230 L9II"));
	EXPECT_EQ("Qualcomm MSM8239",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8239"));
	EXPECT_EQ("Qualcomm MSM8609",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8609"));
	EXPECT_EQ("Qualcomm MSM8610",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8610 (Flattened Device Tree)", 2));
	EXPECT_EQ("Qualcomm MSM8610",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8610", 2));
	EXPECT_EQ("Qualcomm MSM8612",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8610 (Flattened Device Tree)", 4));
	EXPECT_EQ("Qualcomm MSM8612",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8612 (Flattened Device Tree)"));
	EXPECT_EQ("Qualcomm MSM8625",
		parse_proc_cpuinfo_hardware("LG MSM8625 V7"));
	EXPECT_EQ("Qualcomm MSM8625",
		parse_proc_cpuinfo_hardware("QCT MSM8625 FFA"));
	EXPECT_EQ("Qualcomm MSM8625",
		parse_proc_cpuinfo_hardware("QCT MSM8625 SURF"));
	EXPECT_EQ("Qualcomm MSM8625Q",
		parse_proc_cpuinfo_hardware("QRD MSM8625Q SKUD"));
	EXPECT_EQ("Qualcomm MSM8626",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8626"));
	EXPECT_EQ("Qualcomm MSM8627",
		parse_proc_cpuinfo_hardware("QCT MSM8627 MTP"));
	EXPECT_EQ("Qualcomm MSM8628",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8628"));
	EXPECT_EQ("Qualcomm MSM8909",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8909"));
	EXPECT_EQ("Qualcomm MSM8916",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8216"));
	EXPECT_EQ("Qualcomm MSM8916",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8916", 4));
	EXPECT_EQ("Qualcomm MSM8916",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8916MSM8916", 4));
	EXPECT_EQ("Qualcomm MSM8917",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8917", 4));
	EXPECT_EQ("Qualcomm MSM8920",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8920"));
	EXPECT_EQ("Qualcomm MSM8926",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8926 (Flattened Device Tree)"));
	EXPECT_EQ("Qualcomm MSM8926",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8926"));
	EXPECT_EQ("Qualcomm MSM8928",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8928"));
	EXPECT_EQ("Qualcomm MSM8928",
		parse_proc_cpuinfo_hardware("Qualcomm msm 8928"));
	EXPECT_EQ("Qualcomm MSM8929",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8929"));
	EXPECT_EQ("Qualcomm MSM8930",
		parse_proc_cpuinfo_hardware("LGE MSM8930 FX3"));
	EXPECT_EQ("Qualcomm MSM8930",
		parse_proc_cpuinfo_hardware("QCT MSM8930 CDP"));
	EXPECT_EQ("Qualcomm MSM8930",
		parse_proc_cpuinfo_hardware("QCT MSM8930 MTP"));
	EXPECT_EQ("Qualcomm MSM8937",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8937", 8));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI ALE_L04"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI ATH-UL01"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KII-L05"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L21"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L22"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L23"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L24"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI KIW-L33"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI RIO-L01_VB"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI RIO-L02"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI RIO-L03"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8939 HUAWEI TEXAS-A1"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8939"));
	EXPECT_EQ("Qualcomm MSM8939",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8939_BC"));
	EXPECT_EQ("Qualcomm MSM8940",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8940"));
	EXPECT_EQ("Qualcomm MSM8952",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8952"));
	EXPECT_EQ("Qualcomm MSM8952",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8952MSM8952"));
	EXPECT_EQ("Qualcomm MSM8952",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc. MSM8952 QRD SKUM"));
	EXPECT_EQ("Qualcomm MSM8953",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8953"));
	EXPECT_EQ("Qualcomm MSM8953PRO",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8953Pro"));
	EXPECT_EQ("Qualcomm MSM8956",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8956"));
	EXPECT_EQ("Qualcomm MSM8960",
		parse_proc_cpuinfo_hardware("LGE MSM8960 D1L KR", 2));
	EXPECT_EQ("Qualcomm MSM8960",
		parse_proc_cpuinfo_hardware("LGE MSM8960 FX1", 2));
	EXPECT_EQ("Qualcomm MSM8960",
		parse_proc_cpuinfo_hardware("LGE MSM8960 Lx", 2));
	EXPECT_EQ("Qualcomm MSM8960",
		parse_proc_cpuinfo_hardware("LGE MSM8960 VU2", 2));
	EXPECT_EQ("Qualcomm MSM8960",
		parse_proc_cpuinfo_hardware("QCT MSM8960 CDP", 2));
	EXPECT_EQ("Qualcomm MSM8960",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8960", 2));
	EXPECT_EQ("Qualcomm MSM8960DT",
		parse_proc_cpuinfo_hardware("msm8960dt"));
	EXPECT_EQ("Qualcomm MSM8974",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8974 (Flattened Device Tree)"));
	EXPECT_EQ("Qualcomm MSM8974",
		parse_proc_cpuinfo_hardware("Qualcomm MSM 8974 HAMMERHEAD (Flattened Device Tree)"));
	EXPECT_EQ("Qualcomm MSM8974",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8974"));
	EXPECT_EQ("Qualcomm MSM8974PRO-AA",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8974PRO-AA"));
	EXPECT_EQ("Qualcomm MSM8974PRO-AB",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8974PRO-AB"));
	EXPECT_EQ("Qualcomm MSM8974PRO-AC",
		parse_proc_cpuinfo_hardware("Qualcomm MSM8974PRO-AC"));
	EXPECT_EQ("Qualcomm MSM8976",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8976"));
	EXPECT_EQ("Qualcomm MSM8976PRO",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8976SG"));
	EXPECT_EQ("Qualcomm MSM8992",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8992"));
	EXPECT_EQ("Qualcomm MSM8994",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8994"));
	EXPECT_EQ("Qualcomm MSM8994V",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc. MSM8994v2.1 MTP"));
	EXPECT_EQ("Qualcomm MSM8996",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996", 4));
	EXPECT_EQ("Qualcomm MSM8996PRO-AB",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996pro", 4, 1593600 /* LITTLE core */));
	EXPECT_EQ("Qualcomm MSM8996PRO-AB",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996pro", 4, 2150400 /* big core */));
	EXPECT_EQ("Qualcomm MSM8996PRO-AC",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996pro", 4, 2188800 /* LITTLE core */));
	EXPECT_EQ("Qualcomm MSM8996PRO-AC",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8996pro", 4, 2342400 /* big core */));
	EXPECT_EQ("Qualcomm MSM8998",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc MSM8998"));
}

TEST(PROC_CPUINFO_HARDWARE, qualcomm_apq) {
	EXPECT_EQ("Qualcomm APQ8009",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8009"));
	EXPECT_EQ("Qualcomm APQ8016",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8016"));
	EXPECT_EQ("Qualcomm APQ8016",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8016APQ8016"));
	EXPECT_EQ("Qualcomm APQ8017",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8017"));
	EXPECT_EQ("Qualcomm APQ8026",
		parse_proc_cpuinfo_hardware("Qualcomm APQ8026"));
	EXPECT_EQ("Qualcomm APQ8028",
		parse_proc_cpuinfo_hardware("Qualcomm APQ8028"));
	EXPECT_EQ("Qualcomm APQ8039",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8039"));
	EXPECT_EQ("Qualcomm APQ8053",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8053"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF48S"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF49K"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF50L"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF51K"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF51L"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF51S"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF52K"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF52L"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("PANTECH APQ8064 EF52S"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("QCT APQ8064 AWIFI"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("QCT APQ8064 DEB"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("QCT APQ8064 DUMA"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("QCT APQ8064 FLO"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("QCT APQ8064 LEOPARDCAT"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("QCT APQ8064 MAKO"));
	EXPECT_EQ("Qualcomm APQ8064",
		parse_proc_cpuinfo_hardware("QCT APQ8064 MTP"));
	EXPECT_EQ("Qualcomm APQ8074PRO-AB",
		parse_proc_cpuinfo_hardware("Qualcomm APQ8074PRO-AB"));
	EXPECT_EQ("Qualcomm APQ8076",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8076"));
	EXPECT_EQ("Qualcomm APQ8084",
		parse_proc_cpuinfo_hardware("Qualcomm APQ 8084 (Flattened Device Tree)"));
	EXPECT_EQ("Qualcomm APQ8084",
		parse_proc_cpuinfo_hardware("Qualcomm APQ8084"));
	EXPECT_EQ("Qualcomm APQ8094",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8094"));
	EXPECT_EQ("Qualcomm APQ8096",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc APQ8096"));
}

TEST(PROC_CPUINFO_HARDWARE, qualcomm_sdm) {
	EXPECT_EQ("Qualcomm Snapdragon 630",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc SDM630"));
	EXPECT_EQ("Qualcomm Snapdragon 660",
		parse_proc_cpuinfo_hardware("Qualcomm Technologies, Inc SDM660"));
}

TEST(PROC_CPUINFO_HARDWARE, mediatek_mt) {
	EXPECT_EQ("MediaTek MT5507",
		parse_proc_cpuinfo_hardware("MT5507"));
	EXPECT_EQ("MediaTek MT5508",
		parse_proc_cpuinfo_hardware("MT5508"));
	EXPECT_EQ("MediaTek MT6517",
		parse_proc_cpuinfo_hardware("MT6517"));
	EXPECT_EQ("MediaTek MT6570",
		parse_proc_cpuinfo_hardware("MT6570"));
	EXPECT_EQ("MediaTek MT6571",
		parse_proc_cpuinfo_hardware("MT6571"));
	EXPECT_EQ("MediaTek MT6572",
		parse_proc_cpuinfo_hardware("MT6572"));
	EXPECT_EQ("MediaTek MT6575",
		parse_proc_cpuinfo_hardware("MT6575"));
	EXPECT_EQ("MediaTek MT6577",
		parse_proc_cpuinfo_hardware("MT6577"));
	EXPECT_EQ("MediaTek MT6580",
		parse_proc_cpuinfo_hardware("MT6580"));
	EXPECT_EQ("MediaTek MT6580M",
		parse_proc_cpuinfo_hardware("MT6580M"));
	EXPECT_EQ("MediaTek MT6581",
		parse_proc_cpuinfo_hardware("MT6581"));
	EXPECT_EQ("MediaTek MT6582",
		parse_proc_cpuinfo_hardware("MT6582"));
	EXPECT_EQ("MediaTek MT6582",
		parse_proc_cpuinfo_hardware("Mediatek MT6582"));
	EXPECT_EQ("MediaTek MT6588",
		parse_proc_cpuinfo_hardware("MT6588"));
	EXPECT_EQ("MediaTek MT6589",
		parse_proc_cpuinfo_hardware("MT6589"));
	EXPECT_EQ("MediaTek MT6591",
		parse_proc_cpuinfo_hardware("MT6591"));
	EXPECT_EQ("MediaTek MT6592",
		parse_proc_cpuinfo_hardware("MT6592"));
	EXPECT_EQ("MediaTek MT6592T",
		parse_proc_cpuinfo_hardware("MT6592T"));
	EXPECT_EQ("MediaTek MT6592T",
		parse_proc_cpuinfo_hardware("MT6592trubo"));
	EXPECT_EQ("MediaTek MT6592T",
		parse_proc_cpuinfo_hardware("MT6592turbo"));
	EXPECT_EQ("MediaTek MT6595",
		parse_proc_cpuinfo_hardware("MT6595"));
	EXPECT_EQ("MediaTek MT6732",
		parse_proc_cpuinfo_hardware("MT6732"));
	EXPECT_EQ("MediaTek MT6732",
		parse_proc_cpuinfo_hardware("MT6752", 4));
	EXPECT_EQ("MediaTek MT6732M",
		parse_proc_cpuinfo_hardware("MT6732M"));
	EXPECT_EQ("MediaTek MT6735",
		parse_proc_cpuinfo_hardware("MT6735"));
	EXPECT_EQ("MediaTek MT6735M",
		parse_proc_cpuinfo_hardware("MT6735M"));
	EXPECT_EQ("MediaTek MT6735P",
		parse_proc_cpuinfo_hardware("MT6735P"));
	EXPECT_EQ("MediaTek MT6737",
		parse_proc_cpuinfo_hardware("MT6737"));
	EXPECT_EQ("MediaTek MT6737M",
		parse_proc_cpuinfo_hardware("MT6737M"));
	EXPECT_EQ("MediaTek MT6737T",
		parse_proc_cpuinfo_hardware("MT6737T"));
	EXPECT_EQ("MediaTek MT6737T",
		parse_proc_cpuinfo_hardware("Samsung GrandPrimePlus LTE CIS rev04 board based on MT6737T"));
	EXPECT_EQ("MediaTek MT6737T",
		parse_proc_cpuinfo_hardware("Samsung GrandPrimePlus LTE LTN DTV rev04 board based on MT6737T"));
	EXPECT_EQ("MediaTek MT6737T",
		parse_proc_cpuinfo_hardware("Samsung GrandPrimePlus LTE LTN OPEN rev04 board based on MT6737T"));
	EXPECT_EQ("MediaTek MT6738",
		parse_proc_cpuinfo_hardware("MT6738"));
	EXPECT_EQ("MediaTek MT6750",
		parse_proc_cpuinfo_hardware("MT6750"));
	EXPECT_EQ("MediaTek MT6750T",
		parse_proc_cpuinfo_hardware("MT6750T"));
	EXPECT_EQ("MediaTek MT6752",
		parse_proc_cpuinfo_hardware("MT6752", 8));
	EXPECT_EQ("MediaTek MT6752M",
		parse_proc_cpuinfo_hardware("MT6752M", 8));
	EXPECT_EQ("MediaTek MT6753",
		parse_proc_cpuinfo_hardware("MT6753"));
	EXPECT_EQ("MediaTek MT6753T",
		parse_proc_cpuinfo_hardware("MT6753T"));
	EXPECT_EQ("MediaTek MT6755",
		parse_proc_cpuinfo_hardware("MT6755"));
	EXPECT_EQ("MediaTek MT6755BM",
		parse_proc_cpuinfo_hardware("MT6755BM"));
	EXPECT_EQ("MediaTek MT6755M",
		parse_proc_cpuinfo_hardware("MT6755M"));
	EXPECT_EQ("MediaTek MT6755V/B",
		parse_proc_cpuinfo_hardware("MT6755V/B"));
	EXPECT_EQ("MediaTek MT6755V/BM",
		parse_proc_cpuinfo_hardware("MT6755V/BM"));
	EXPECT_EQ("MediaTek MT6755V/C",
		parse_proc_cpuinfo_hardware("MT6755V/C"));
	EXPECT_EQ("MediaTek MT6755V/CM",
		parse_proc_cpuinfo_hardware("MT6755V/CM"));
	EXPECT_EQ("MediaTek MT6755V/W",
		parse_proc_cpuinfo_hardware("MT6755V/W"));
	EXPECT_EQ("MediaTek MT6755V/WM",
		parse_proc_cpuinfo_hardware("MT6755V/WM"));
	EXPECT_EQ("MediaTek MT6755V/WT",
		parse_proc_cpuinfo_hardware("MT6755V/WT"));
	EXPECT_EQ("MediaTek MT6757",
		parse_proc_cpuinfo_hardware("MT6757"));
	EXPECT_EQ("MediaTek MT6757",
		parse_proc_cpuinfo_hardware("Samsung J7 Max LTE SWA rev02a board based on MT6757"));
	EXPECT_EQ("MediaTek MT6757CD",
		parse_proc_cpuinfo_hardware("MT6757CD"));
	EXPECT_EQ("MediaTek MT6757CH",
		parse_proc_cpuinfo_hardware("MT6757CH"));
	EXPECT_EQ("MediaTek MT6795",
		parse_proc_cpuinfo_hardware("MT6795"));
	EXPECT_EQ("MediaTek MT6795M",
		parse_proc_cpuinfo_hardware("MT6795M"));
	EXPECT_EQ("MediaTek MT6795MM",
		parse_proc_cpuinfo_hardware("MT6795MM"));
	EXPECT_EQ("MediaTek MT6795T",
		parse_proc_cpuinfo_hardware("MT6795T"));
	EXPECT_EQ("MediaTek MT6797",
		parse_proc_cpuinfo_hardware("MT6797"));
	EXPECT_EQ("MediaTek MT6797M",
		parse_proc_cpuinfo_hardware("MT6797M"));
	EXPECT_EQ("MediaTek MT6797T",
		parse_proc_cpuinfo_hardware("MT6797T"));
	EXPECT_EQ("MediaTek MT6797X",
		parse_proc_cpuinfo_hardware("MT6797X"));
	EXPECT_EQ("MediaTek MT8111",
		parse_proc_cpuinfo_hardware("MT8111"));
	EXPECT_EQ("MediaTek MT8121",
		parse_proc_cpuinfo_hardware("MT8121"));
	EXPECT_EQ("MediaTek MT8125",
		parse_proc_cpuinfo_hardware("MT8125"));
	EXPECT_EQ("MediaTek MT8127",
		parse_proc_cpuinfo_hardware("MT8127"));
	EXPECT_EQ("MediaTek MT8135",
		parse_proc_cpuinfo_hardware("MT8135"));
	EXPECT_EQ("MediaTek MT8151",
		parse_proc_cpuinfo_hardware("MT8151"));
	EXPECT_EQ("MediaTek MT8161",
		parse_proc_cpuinfo_hardware("MT8161"));
	EXPECT_EQ("MediaTek MT8161A",
		parse_proc_cpuinfo_hardware("MT8161A"));
	EXPECT_EQ("MediaTek MT8161P",
		parse_proc_cpuinfo_hardware("MT8161P"));
	EXPECT_EQ("MediaTek MT8163",
		parse_proc_cpuinfo_hardware("MT8163"));
	EXPECT_EQ("MediaTek MT8165",
		parse_proc_cpuinfo_hardware("MT8165"));
	EXPECT_EQ("MediaTek MT8167A",
		parse_proc_cpuinfo_hardware("MT8167A"));
	EXPECT_EQ("MediaTek MT8167B",
		parse_proc_cpuinfo_hardware("MT8167B"));
	EXPECT_EQ("MediaTek MT8173",
		parse_proc_cpuinfo_hardware("MT8173"));
	EXPECT_EQ("MediaTek MT8176",
		parse_proc_cpuinfo_hardware("MT8176"));
	EXPECT_EQ("MediaTek MT8312",
		parse_proc_cpuinfo_hardware("MT8312"));
	EXPECT_EQ("MediaTek MT8312C",
		parse_proc_cpuinfo_hardware("MT8312C"));
	EXPECT_EQ("MediaTek MT8312D",
		parse_proc_cpuinfo_hardware("MT8312D"));
	EXPECT_EQ("MediaTek MT8317",
		parse_proc_cpuinfo_hardware("MT8317"));
	EXPECT_EQ("MediaTek MT8321",
		parse_proc_cpuinfo_hardware("MT8321"));
	EXPECT_EQ("MediaTek MT8321M",
		parse_proc_cpuinfo_hardware("MT8321M"));
	EXPECT_EQ("MediaTek MT8377",
		parse_proc_cpuinfo_hardware("MT8377"));
	EXPECT_EQ("MediaTek MT8382",
		parse_proc_cpuinfo_hardware("MT8382"));
	EXPECT_EQ("MediaTek MT8389",
		parse_proc_cpuinfo_hardware("MT8389"));
	EXPECT_EQ("MediaTek MT8389Q",
		parse_proc_cpuinfo_hardware("MT8389Q"));
	EXPECT_EQ("MediaTek MT8392",
		parse_proc_cpuinfo_hardware("MT8392"));
	EXPECT_EQ("MediaTek MT8685",
		parse_proc_cpuinfo_hardware("MT8685"));
	EXPECT_EQ("MediaTek MT8732",
		parse_proc_cpuinfo_hardware("MT8732"));
	EXPECT_EQ("MediaTek MT8732T",
		parse_proc_cpuinfo_hardware("MT8732T"));
	EXPECT_EQ("MediaTek MT8735",
		parse_proc_cpuinfo_hardware("MT8735"));
	EXPECT_EQ("MediaTek MT8735A",
		parse_proc_cpuinfo_hardware("MT8735A"));
	EXPECT_EQ("MediaTek MT8735B",
		parse_proc_cpuinfo_hardware("MT8735B"));
	EXPECT_EQ("MediaTek MT8735D",
		parse_proc_cpuinfo_hardware("MT8735D"));
	EXPECT_EQ("MediaTek MT8735M",
		parse_proc_cpuinfo_hardware("MT8735M"));
	EXPECT_EQ("MediaTek MT8735P",
		parse_proc_cpuinfo_hardware("MT8735P"));
	EXPECT_EQ("MediaTek MT8735T",
		parse_proc_cpuinfo_hardware("MT8735T"));
	EXPECT_EQ("MediaTek MT8752",
		parse_proc_cpuinfo_hardware("MT8752"));
	EXPECT_EQ("MediaTek MT8783",
		parse_proc_cpuinfo_hardware("MT8783"));
	EXPECT_EQ("MediaTek MT8783T",
		parse_proc_cpuinfo_hardware("MT8783T"));
}

TEST(PROC_CPUINFO_HARDWARE, samsung_exynos) {
	EXPECT_EQ("Samsung Exynos 4415",
		parse_proc_cpuinfo_hardware("Samsung EXYNOS4415"));
	EXPECT_EQ("Samsung Exynos 5420",
		parse_proc_cpuinfo_hardware("Samsung EXYNOS5420", 4));
	EXPECT_EQ("Samsung Exynos 5430",
		parse_proc_cpuinfo_hardware("Samsung EXYNOS5430"));
	EXPECT_EQ("Samsung Exynos 5433",
		parse_proc_cpuinfo_hardware("Samsung EXYNOS5433"));
	EXPECT_EQ("Samsung Exynos 7420",
		parse_proc_cpuinfo_hardware("SAMSUNG Exynos7420"));
	EXPECT_EQ("Samsung Exynos 7578",
		parse_proc_cpuinfo_hardware("SAMSUNG Exynos7580", 4));
	EXPECT_EQ("Samsung Exynos 7580",
		parse_proc_cpuinfo_hardware("SAMSUNG Exynos7580", 8));
}

TEST(PROC_CPUINFO_HARDWARE, samsung_universal) {
	EXPECT_EQ("Samsung Exynos 3470",
		parse_proc_cpuinfo_hardware("UNIVERSAL3470"));
	EXPECT_EQ("Samsung Exynos 3475",
		parse_proc_cpuinfo_hardware("UNIVERSAL3475"));
	EXPECT_EQ("Samsung Exynos 5260",
		parse_proc_cpuinfo_hardware("UNIVERSAL5260"));
	EXPECT_EQ("Samsung Exynos 5410",
		parse_proc_cpuinfo_hardware("UNIVERSAL5410"));
	EXPECT_EQ("Samsung Exynos 5420",
		parse_proc_cpuinfo_hardware("UNIVERSAL5420", 4));
	EXPECT_EQ("Samsung Exynos 5422",
		parse_proc_cpuinfo_hardware("universal5422"));
	EXPECT_EQ("Samsung Exynos 5430",
		parse_proc_cpuinfo_hardware("UNIVERSAL5430"));
}

TEST(PROC_CPUINFO_HARDWARE, samsung_smdk) {
	EXPECT_EQ("Samsung Exynos 4210",
		parse_proc_cpuinfo_hardware("SMDK4210"));
	EXPECT_EQ("Samsung Exynos 4212",
		parse_proc_cpuinfo_hardware("SMDK4x12", 2));
	EXPECT_EQ("Samsung Exynos 4412",
		parse_proc_cpuinfo_hardware("SMDK4x12", 4));
}

TEST(PROC_CPUINFO_HARDWARE, samsung_special) {
	EXPECT_EQ("Samsung Exynos 5250",
		parse_proc_cpuinfo_hardware("Manta"));
}

TEST(PROC_CPUINFO_HARDWARE, hisilicon_kirin) {
	EXPECT_EQ("HiSilicon Kirin 920",
		parse_proc_cpuinfo_hardware("Hisilicon Kirin 920"));
	EXPECT_EQ("HiSilicon Kirin 920",
		parse_proc_cpuinfo_hardware("Kirin920"));
	EXPECT_EQ("HiSilicon Kirin 925",
		parse_proc_cpuinfo_hardware("Hisilicon Kirin 925"));
	EXPECT_EQ("HiSilicon Kirin 925",
		parse_proc_cpuinfo_hardware("Kirin925"));
	EXPECT_EQ("HiSilicon Kirin 930",
		parse_proc_cpuinfo_hardware("Hisilicon Kirin 930"));
	EXPECT_EQ("HiSilicon Kirin 935",
		parse_proc_cpuinfo_hardware("Hisilicon Kirin 935"));
	EXPECT_EQ("HiSilicon Kirin 950",
		parse_proc_cpuinfo_hardware("Hisilicon Kirin 950"));
	EXPECT_EQ("HiSilicon Kirin 955",
		parse_proc_cpuinfo_hardware("Hisilicon Kirin 955"));
}

TEST(PROC_CPUINFO_HARDWARE, hisilicon_special) {
	EXPECT_EQ("HiSilicon Hi3751",
		parse_proc_cpuinfo_hardware("hi3751"));
	EXPECT_EQ("HiSilicon K3V2",
		parse_proc_cpuinfo_hardware("k3v2oem1"));
	EXPECT_EQ("HiSilicon Kirin 620",
		parse_proc_cpuinfo_hardware("hi6210sft"));
	EXPECT_EQ("HiSilicon Kirin 650",
		parse_proc_cpuinfo_hardware("hi6250"));
	EXPECT_EQ("HiSilicon Kirin 910T",
		parse_proc_cpuinfo_hardware("hi6620oem"));
}

TEST(PROC_CPUINFO_HARDWARE, actions) {
	EXPECT_EQ("Actions ATM7029",
		parse_proc_cpuinfo_hardware("gs702a"));
	EXPECT_EQ("Actions ATM7029B",
		parse_proc_cpuinfo_hardware("gs702c"));
	EXPECT_EQ("Actions ATM7059A",
		parse_proc_cpuinfo_hardware("gs705a"));
}

TEST(PROC_CPUINFO_HARDWARE, allwinner_sunxi) {
	EXPECT_EQ("Allwinner A10",
		parse_proc_cpuinfo_hardware("sun4i", 1));
	EXPECT_EQ("Allwinner A13",
		parse_proc_cpuinfo_hardware("sun5i", 1));
	EXPECT_EQ("Allwinner A20",
		parse_proc_cpuinfo_hardware("sun7i", 2));
	EXPECT_EQ("Allwinner A23",
		parse_proc_cpuinfo_hardware("sun8i", 2));
	EXPECT_EQ("Allwinner A31",
		parse_proc_cpuinfo_hardware("sun6i", 4));
	EXPECT_EQ("Allwinner A33",
		parse_proc_cpuinfo_hardware("sun8i", 4));
	EXPECT_EQ("Allwinner A64",
		parse_proc_cpuinfo_hardware("sun50iw1", 4));
	EXPECT_EQ("Allwinner A64",
		parse_proc_cpuinfo_hardware("sun50iw1p1", 4));
	EXPECT_EQ("Allwinner A64",
		parse_proc_cpuinfo_hardware("sun50iw2", 4));
	EXPECT_EQ("Allwinner A80",
		parse_proc_cpuinfo_hardware("sun9i", 8));
	EXPECT_EQ("Allwinner A83T",
		parse_proc_cpuinfo_hardware("sun8i", 8));
}

TEST(PROC_CPUINFO_HARDWARE, amlogic) {
	EXPECT_EQ("Amlogic S805",
		parse_proc_cpuinfo_hardware("Amlogic Meson8B"));
	EXPECT_EQ("Amlogic S812",
		parse_proc_cpuinfo_hardware("Amlogic Meson8"));
}

TEST(PROC_CPUINFO_HARDWARE, lg) {
	EXPECT_EQ("LG Nuclun 7111",
		parse_proc_cpuinfo_hardware("Odin"));
}

TEST(PROC_CPUINFO_HARDWARE, marvell_pxa) {
	EXPECT_EQ("Marvell PXA1088",
		parse_proc_cpuinfo_hardware("PXA1088"));
	EXPECT_EQ("Marvell PXA1088",
		parse_proc_cpuinfo_hardware("PXA1L88"));
	EXPECT_EQ("Marvell PXA1908",
		parse_proc_cpuinfo_hardware("PXA1908"));
	EXPECT_EQ("Marvell PXA1928",
		parse_proc_cpuinfo_hardware("PXA1928"));
	EXPECT_EQ("Marvell PXA988",
		parse_proc_cpuinfo_hardware("PXA988"));
}

TEST(PROC_CPUINFO_HARDWARE, mstar) {
	EXPECT_EQ("MStar 6A338",
		parse_proc_cpuinfo_hardware("Madison"));
}

TEST(PROC_CPUINFO_HARDWARE, nvidia) {
	EXPECT_EQ("Nvidia Tegra AP20H",
		parse_proc_cpuinfo_hardware_tegra("picasso"));
	EXPECT_EQ("Nvidia Tegra AP20H",
		parse_proc_cpuinfo_hardware_tegra("picasso_e"));
	EXPECT_EQ("Nvidia Tegra AP20H",
		parse_proc_cpuinfo_hardware_tegra("stingray"));
	EXPECT_EQ("Nvidia Tegra AP33",
		parse_proc_cpuinfo_hardware_tegra("endeavoru"));
	EXPECT_EQ("Nvidia Tegra AP33",
		parse_proc_cpuinfo_hardware_tegra("x3"));
	EXPECT_EQ("Nvidia Tegra SL460N",
		parse_proc_cpuinfo_hardware_tegra("Ceres"));
	EXPECT_EQ("Nvidia Tegra T114",
		parse_proc_cpuinfo_hardware_tegra("macallan"));
	EXPECT_EQ("Nvidia Tegra T114",
		parse_proc_cpuinfo_hardware_tegra("mozart"));
	EXPECT_EQ("Nvidia Tegra T114",
		parse_proc_cpuinfo_hardware_tegra("tostab12BA"));
	EXPECT_EQ("Nvidia Tegra T124",
		parse_proc_cpuinfo_hardware_tegra("mocha"));
	EXPECT_EQ("Nvidia Tegra T124",
		parse_proc_cpuinfo_hardware_tegra("tn8"));
	EXPECT_EQ("Nvidia Tegra T20",
		parse_proc_cpuinfo_hardware_tegra("nbx03"));
	EXPECT_EQ("Nvidia Tegra T20",
		parse_proc_cpuinfo_hardware_tegra("p3"));
	EXPECT_EQ("Nvidia Tegra T20",
		parse_proc_cpuinfo_hardware_tegra("ventana"));
	EXPECT_EQ("Nvidia Tegra T30",
		parse_proc_cpuinfo_hardware_tegra("cardhu"));
	EXPECT_EQ("Nvidia Tegra T30",
		parse_proc_cpuinfo_hardware_tegra("chagall"));
	EXPECT_EQ("Nvidia Tegra T30",
		parse_proc_cpuinfo_hardware_tegra("picasso_m"));
	EXPECT_EQ("Nvidia Tegra T30",
		parse_proc_cpuinfo_hardware_tegra("picasso_mf"));
	EXPECT_EQ("Nvidia Tegra T30L",
		parse_proc_cpuinfo_hardware_tegra("BIRCH"));
	EXPECT_EQ("Nvidia Tegra T30L",
		parse_proc_cpuinfo_hardware_tegra("NS_14T004"));
	EXPECT_EQ("Nvidia Tegra T30L",
		parse_proc_cpuinfo_hardware_tegra("avalon"));
	EXPECT_EQ("Nvidia Tegra T30L",
		parse_proc_cpuinfo_hardware_tegra("picasso_e2"));
	EXPECT_EQ("Nvidia Tegra T30L",
		parse_proc_cpuinfo_hardware_tegra("tostab12BL"));
	EXPECT_EQ("Nvidia Tegra T30L",
		parse_proc_cpuinfo_hardware_tegra("txs03"));
	EXPECT_EQ("Nvidia Tegra T33",
		parse_proc_cpuinfo_hardware_tegra("bobsleigh"));
	EXPECT_EQ("Nvidia Tegra T33",
		parse_proc_cpuinfo_hardware_tegra("enrc2b"));
	EXPECT_EQ("Nvidia Tegra T33",
		parse_proc_cpuinfo_hardware_tegra("evitareul"));
	EXPECT_EQ("Nvidia Tegra T33",
		parse_proc_cpuinfo_hardware_tegra("tegra_fjdev103"));
}

TEST(PROC_CPUINFO_HARDWARE, rockchip_rk) {
	EXPECT_EQ("Rockchip RK3126",
		parse_proc_cpuinfo_hardware("Rockchip RK3126"));
	EXPECT_EQ("Rockchip RK3128",
		parse_proc_cpuinfo_hardware("Rockchip RK3128"));
	EXPECT_EQ("Rockchip RK3188",
		parse_proc_cpuinfo_hardware("Rockchip RK3188"));
	EXPECT_EQ("Rockchip RK3228H",
		parse_proc_cpuinfo_hardware("rockchip,rk3228h"));
	EXPECT_EQ("Rockchip RK3229",
		parse_proc_cpuinfo_hardware("Rockchip RK3229"));
	EXPECT_EQ("Rockchip RK3328",
		parse_proc_cpuinfo_hardware("rockchip,rk3328"));
	EXPECT_EQ("Rockchip RK3368",
		parse_proc_cpuinfo_hardware("rockchip,rk3368"));
}

TEST(PROC_CPUINFO_HARDWARE, spreadtrum_sc) {
	EXPECT_EQ("Spreadtrum SC5735",
		parse_proc_cpuinfo_hardware("sc5735"));
	EXPECT_EQ("Spreadtrum SC6820I",
		parse_proc_cpuinfo_hardware("sc6820i"));
	EXPECT_EQ("Spreadtrum SC7715",
		parse_proc_cpuinfo_hardware("scx15"));
	EXPECT_EQ("Spreadtrum SC7730",
		parse_proc_cpuinfo_hardware("sc7730"));
	EXPECT_EQ("Spreadtrum SC7731",
		parse_proc_cpuinfo_hardware("sc7731"));
	EXPECT_EQ("Spreadtrum SC7731C",
		parse_proc_cpuinfo_hardware("sc7731c"));
	EXPECT_EQ("Spreadtrum SC7731G",
		parse_proc_cpuinfo_hardware("sc7731g"));
	EXPECT_EQ("Spreadtrum SC8825",
		parse_proc_cpuinfo_hardware("sc8825"));
	EXPECT_EQ("Spreadtrum SC8830",
		parse_proc_cpuinfo_hardware("sc8830"));
	EXPECT_EQ("Spreadtrum SC9830",
		parse_proc_cpuinfo_hardware("sc9830"));
	EXPECT_EQ("Spreadtrum SC9832",
		parse_proc_cpuinfo_hardware("sc9832"));
	EXPECT_EQ("Spreadtrum SC9832A",
		parse_proc_cpuinfo_hardware("sc9832a"));
}

TEST(PROC_CPUINFO_HARDWARE, telechips) {
	EXPECT_EQ("Telechips TCC892X",
		parse_proc_cpuinfo_hardware("tcc892x"));
	EXPECT_EQ("Telechips TCC893X",
		parse_proc_cpuinfo_hardware("tcc893x"));
}

TEST(PROC_CPUINFO_HARDWARE, texas_instruments_omap) {
	EXPECT_EQ("Texas Instruments OMAP4430",
		parse_proc_cpuinfo_hardware("OMAP4430"));
	EXPECT_EQ("Texas Instruments OMAP4460",
		parse_proc_cpuinfo_hardware("OMAP4460"));
}

TEST(PROC_CPUINFO_HARDWARE, texas_instruments_special) {
	EXPECT_EQ("Texas Instruments OMAP4430",
		parse_proc_cpuinfo_hardware("mapphone_CDMA"));
	EXPECT_EQ("Texas Instruments OMAP4460",
		parse_proc_cpuinfo_hardware("Tuna"));
}

TEST(PROC_CPUINFO_HARDWARE, wondermedia) {
	EXPECT_EQ("WonderMedia WM8850",
		parse_proc_cpuinfo_hardware("WMT", 1, 1200000));
	EXPECT_EQ("WonderMedia WM8880",
		parse_proc_cpuinfo_hardware("WMT", 2, 1500000));
	EXPECT_EQ("WonderMedia WM8950",
		parse_proc_cpuinfo_hardware("WMT", 1, 1008000));
}
