diff options
Diffstat (limited to 'unittests/ADT/TripleTest.cpp')
-rw-r--r-- | unittests/ADT/TripleTest.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/unittests/ADT/TripleTest.cpp b/unittests/ADT/TripleTest.cpp index c80477f6ddc9..78616d36e4f8 100644 --- a/unittests/ADT/TripleTest.cpp +++ b/unittests/ADT/TripleTest.cpp @@ -685,6 +685,54 @@ TEST(TripleTest, BitWidthArchVariants) { T.setArch(Triple::riscv64); EXPECT_EQ(Triple::riscv32, T.get32BitArchVariant().getArch()); EXPECT_EQ(Triple::riscv64, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::thumbeb); + EXPECT_EQ(Triple::thumbeb, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::aarch64_be, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::thumb); + EXPECT_EQ(Triple::thumb, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::aarch64, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::aarch64); + EXPECT_EQ(Triple::arm, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::aarch64, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::aarch64_be); + EXPECT_EQ(Triple::armeb, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::aarch64_be, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::renderscript32); + EXPECT_EQ(Triple::renderscript32, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::renderscript64, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::renderscript64); + EXPECT_EQ(Triple::renderscript32, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::renderscript64, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::le32); + EXPECT_EQ(Triple::le32, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::le64, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::le64); + EXPECT_EQ(Triple::le32, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::le64, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::armeb); + EXPECT_EQ(Triple::armeb, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::aarch64_be, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::arm); + EXPECT_EQ(Triple::arm, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::aarch64, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::systemz); + EXPECT_EQ(Triple::UnknownArch, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::systemz, T.get64BitArchVariant().getArch()); + + T.setArch(Triple::xcore); + EXPECT_EQ(Triple::xcore, T.get32BitArchVariant().getArch()); + EXPECT_EQ(Triple::UnknownArch, T.get64BitArchVariant().getArch()); } TEST(TripleTest, EndianArchVariants) { @@ -775,6 +823,22 @@ TEST(TripleTest, EndianArchVariants) { T.setArch(Triple::lanai); EXPECT_EQ(Triple::lanai, T.getBigEndianArchVariant().getArch()); EXPECT_EQ(Triple::UnknownArch, T.getLittleEndianArchVariant().getArch()); + + T.setArch(Triple::tcele); + EXPECT_EQ(Triple::tce, T.getBigEndianArchVariant().getArch()); + EXPECT_EQ(Triple::tcele, T.getLittleEndianArchVariant().getArch()); + + T.setArch(Triple::tce); + EXPECT_EQ(Triple::tce, T.getBigEndianArchVariant().getArch()); + EXPECT_EQ(Triple::tcele, T.getLittleEndianArchVariant().getArch()); + + T.setArch(Triple::le32); + EXPECT_EQ(Triple::UnknownArch, T.getBigEndianArchVariant().getArch()); + EXPECT_EQ(Triple::le32, T.getLittleEndianArchVariant().getArch()); + + T.setArch(Triple::le64); + EXPECT_EQ(Triple::UnknownArch, T.getBigEndianArchVariant().getArch()); + EXPECT_EQ(Triple::le64, T.getLittleEndianArchVariant().getArch()); } TEST(TripleTest, getOSVersion) { @@ -888,6 +952,9 @@ TEST(TripleTest, FileFormat) { EXPECT_EQ(Triple::ELF, Triple("i686-pc-windows-msvc-elf").getObjectFormat()); EXPECT_EQ(Triple::ELF, Triple("i686-pc-cygwin-elf").getObjectFormat()); + EXPECT_EQ(Triple::Wasm, Triple("wasm32-unknown-unknown-wasm").getObjectFormat()); + EXPECT_EQ(Triple::Wasm, Triple("wasm64-unknown-unknown-wasm").getObjectFormat()); + Triple MSVCNormalized(Triple::normalize("i686-pc-windows-msvc-elf")); EXPECT_EQ(Triple::ELF, MSVCNormalized.getObjectFormat()); @@ -903,6 +970,9 @@ TEST(TripleTest, FileFormat) { Triple T = Triple(""); T.setObjectFormat(Triple::ELF); EXPECT_EQ(Triple::ELF, T.getObjectFormat()); + + T.setObjectFormat(Triple::MachO); + EXPECT_EQ(Triple::MachO, T.getObjectFormat()); } TEST(TripleTest, NormalizeWindows) { @@ -948,6 +1018,10 @@ TEST(TripleTest, getARMCPUForArch) { EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch()); } { + llvm::Triple Triple("arm--openbsd"); + EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch()); + } + { llvm::Triple Triple("armv6-unknown-freebsd"); EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); } |