summaryrefslogtreecommitdiff
path: root/unittests/Support/Host.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/Support/Host.cpp')
-rw-r--r--unittests/Support/Host.cpp45
1 files changed, 43 insertions, 2 deletions
diff --git a/unittests/Support/Host.cpp b/unittests/Support/Host.cpp
index 7c018ac50423..736b04c2049c 100644
--- a/unittests/Support/Host.cpp
+++ b/unittests/Support/Host.cpp
@@ -106,8 +106,17 @@ TEST(getLinuxHostCPUName, AArch64) {
"CPU part : 0x201"),
"kryo");
EXPECT_EQ(sys::detail::getHostCPUNameForARM("CPU implementer : 0x51\n"
+ "CPU part : 0x800"),
+ "cortex-a73");
+ EXPECT_EQ(sys::detail::getHostCPUNameForARM("CPU implementer : 0x51\n"
+ "CPU part : 0x801"),
+ "cortex-a73");
+ EXPECT_EQ(sys::detail::getHostCPUNameForARM("CPU implementer : 0x51\n"
"CPU part : 0xc00"),
"falkor");
+ EXPECT_EQ(sys::detail::getHostCPUNameForARM("CPU implementer : 0x51\n"
+ "CPU part : 0xc01"),
+ "saphira");
// MSM8992/4 weirdness
StringRef MSM8992ProcCpuInfo = R"(
@@ -130,6 +139,37 @@ Hardware : Qualcomm Technologies, Inc MSM8992
EXPECT_EQ(sys::detail::getHostCPUNameForARM(MSM8992ProcCpuInfo),
"cortex-a53");
+
+ // Exynos big.LITTLE weirdness
+ const std::string ExynosProcCpuInfo = R"(
+processor : 0
+Features : fp asimd evtstrm aes pmull sha1 sha2 crc32
+CPU implementer : 0x41
+CPU architecture: 8
+CPU variant : 0x0
+CPU part : 0xd03
+
+processor : 1
+Features : fp asimd evtstrm aes pmull sha1 sha2 crc32
+CPU implementer : 0x53
+CPU architecture: 8
+)";
+
+ // Verify default for Exynos.
+ EXPECT_EQ(sys::detail::getHostCPUNameForARM(ExynosProcCpuInfo +
+ "CPU variant : 0xc\n"
+ "CPU part : 0xafe"),
+ "exynos-m1");
+ // Verify Exynos M1.
+ EXPECT_EQ(sys::detail::getHostCPUNameForARM(ExynosProcCpuInfo +
+ "CPU variant : 0x1\n"
+ "CPU part : 0x001"),
+ "exynos-m1");
+ // Verify Exynos M2.
+ EXPECT_EQ(sys::detail::getHostCPUNameForARM(ExynosProcCpuInfo +
+ "CPU variant : 0x4\n"
+ "CPU part : 0x001"),
+ "exynos-m2");
}
#if defined(__APPLE__)
@@ -147,8 +187,9 @@ TEST_F(HostTest, getMacOSHostVersion) {
const char *SwVersPath = "/usr/bin/sw_vers";
const char *argv[] = {SwVersPath, "-productVersion", nullptr};
StringRef OutputPath = OutputFile.str();
- const StringRef *Redirects[] = {/*STDIN=*/nullptr, /*STDOUT=*/&OutputPath,
- /*STDERR=*/nullptr};
+ const Optional<StringRef> Redirects[] = {/*STDIN=*/None,
+ /*STDOUT=*/OutputPath,
+ /*STDERR=*/None};
int RetCode = ExecuteAndWait(SwVersPath, argv, /*env=*/nullptr, Redirects);
ASSERT_EQ(0, RetCode);