aboutsummaryrefslogtreecommitdiff
path: root/unittests/ADT/TripleTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/ADT/TripleTest.cpp')
-rw-r--r--unittests/ADT/TripleTest.cpp74
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());
}