diff options
Diffstat (limited to 'unittests/ADT/TripleTest.cpp')
-rw-r--r-- | unittests/ADT/TripleTest.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/unittests/ADT/TripleTest.cpp b/unittests/ADT/TripleTest.cpp index ac4fa2274e9e..984f4a2a595a 100644 --- a/unittests/ADT/TripleTest.cpp +++ b/unittests/ADT/TripleTest.cpp @@ -93,6 +93,12 @@ TEST(TripleTest, ParsedIDs) { EXPECT_EQ(Triple::Linux, T.getOS()); EXPECT_EQ(Triple::GNU, T.getEnvironment()); + T = Triple("x86_64-pc-linux-musl"); + EXPECT_EQ(Triple::x86_64, T.getArch()); + EXPECT_EQ(Triple::PC, T.getVendor()); + EXPECT_EQ(Triple::Linux, T.getOS()); + EXPECT_EQ(Triple::Musl, T.getEnvironment()); + T = Triple("powerpc-bgp-linux"); EXPECT_EQ(Triple::ppc, T.getArch()); EXPECT_EQ(Triple::BGP, T.getVendor()); @@ -135,6 +141,12 @@ TEST(TripleTest, ParsedIDs) { EXPECT_EQ(Triple::UnknownOS, T.getOS()); EXPECT_EQ(Triple::EABI, T.getEnvironment()); + T = Triple("arm-none-linux-musleabi"); + EXPECT_EQ(Triple::arm, T.getArch()); + EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); + EXPECT_EQ(Triple::Linux, T.getOS()); + EXPECT_EQ(Triple::MuslEABI, T.getEnvironment()); + T = Triple("armv6hl-none-linux-gnueabi"); EXPECT_EQ(Triple::arm, T.getArch()); EXPECT_EQ(Triple::Linux, T.getOS()); @@ -212,6 +224,30 @@ TEST(TripleTest, ParsedIDs) { EXPECT_EQ(Triple::UnknownOS, T.getOS()); EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + T = Triple("lanai-unknown-unknown"); + EXPECT_EQ(Triple::lanai, T.getArch()); + EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); + EXPECT_EQ(Triple::UnknownOS, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + + T = Triple("lanai"); + EXPECT_EQ(Triple::lanai, T.getArch()); + EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); + EXPECT_EQ(Triple::UnknownOS, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + + T = Triple("amdgcn-mesa-mesa3d"); + EXPECT_EQ(Triple::amdgcn, T.getArch()); + EXPECT_EQ(Triple::Mesa, T.getVendor()); + EXPECT_EQ(Triple::Mesa3D, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + + T = Triple("amdgcn-amd-amdhsa"); + EXPECT_EQ(Triple::amdgcn, T.getArch()); + EXPECT_EQ(Triple::AMD, T.getVendor()); + EXPECT_EQ(Triple::AMDHSA, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + T = Triple("huh"); EXPECT_EQ(Triple::UnknownArch, T.getArch()); } @@ -486,6 +522,11 @@ TEST(TripleTest, BitWidthPredicates) { EXPECT_TRUE(T.isArch16Bit()); EXPECT_FALSE(T.isArch32Bit()); EXPECT_FALSE(T.isArch64Bit()); + + T.setArch(Triple::lanai); + EXPECT_FALSE(T.isArch16Bit()); + EXPECT_TRUE(T.isArch32Bit()); + EXPECT_FALSE(T.isArch64Bit()); } TEST(TripleTest, BitWidthArchVariants) { @@ -602,6 +643,14 @@ TEST(TripleTest, EndianArchVariants) { T.setArch(Triple::arm); EXPECT_EQ(Triple::UnknownArch, T.getBigEndianArchVariant().getArch()); EXPECT_EQ(Triple::arm, T.getLittleEndianArchVariant().getArch()); + T = Triple("arm"); + EXPECT_TRUE(T.isLittleEndian()); + T = Triple("thumb"); + EXPECT_TRUE(T.isLittleEndian()); + T = Triple("armeb"); + EXPECT_FALSE(T.isLittleEndian()); + T = Triple("thumbeb"); + EXPECT_FALSE(T.isLittleEndian()); T.setArch(Triple::bpfeb); EXPECT_EQ(Triple::bpfeb, T.getBigEndianArchVariant().getArch()); @@ -654,6 +703,10 @@ TEST(TripleTest, EndianArchVariants) { T.setArch(Triple::thumbeb); EXPECT_EQ(Triple::thumbeb, T.getBigEndianArchVariant().getArch()); EXPECT_EQ(Triple::UnknownArch, T.getLittleEndianArchVariant().getArch()); + + T.setArch(Triple::lanai); + EXPECT_EQ(Triple::lanai, T.getBigEndianArchVariant().getArch()); + EXPECT_EQ(Triple::UnknownArch, T.getLittleEndianArchVariant().getArch()); } TEST(TripleTest, getOSVersion) { @@ -962,6 +1015,18 @@ TEST(TripleTest, getARMCPUForArch) { EXPECT_EQ("swift", Triple.getARMCPUForArch()); } { + llvm::Triple Triple("armv7k-apple-ios9"); + EXPECT_EQ("cortex-a7", Triple.getARMCPUForArch()); + } + { + llvm::Triple Triple("armv7k-apple-watchos3"); + EXPECT_EQ("cortex-a7", Triple.getARMCPUForArch()); + } + { + llvm::Triple Triple("armv7k-apple-tvos9"); + EXPECT_EQ("cortex-a7", Triple.getARMCPUForArch()); + } + { llvm::Triple Triple("armv7em-apple-ios7"); EXPECT_EQ("cortex-m4", Triple.getARMCPUForArch()); } |