Skip to content

Commit 845431a

Browse files
authored
[UnitTests] Convert some data layout parsing tests to GTest (#104346)
For now, the testcases are grouped in a single TEST. I'll sort them out and add more testcases in follow-up commits.
1 parent fa343be commit 845431a

32 files changed

+105
-120
lines changed

llvm/test/Assembler/datalayout-invalid-function-ptr-alignment.ll

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/Assembler/datalayout-invalid-i8-alignment.ll

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/Assembler/datalayout-invalid-stack-natural-alignment.ll

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout-alloca-addrspace.ll

Lines changed: 0 additions & 4 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout-globals-addrspace.ll

Lines changed: 0 additions & 4 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout-index-size.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout-program-addrspace.ll

Lines changed: 0 additions & 4 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout1.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout10.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout11.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout12.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout13.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout14.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout15.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout16.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout17.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout18.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout19.ll

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout2.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout20.ll

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout21.ll

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout22.ll

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout23.ll

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout24.ll

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout3.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout4.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout5.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout6.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout7.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout8.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/test/Assembler/invalid-datalayout9.ll

Lines changed: 0 additions & 3 deletions
This file was deleted.

llvm/unittests/IR/DataLayoutTest.cpp

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,111 @@ using namespace llvm;
1919

2020
namespace {
2121

22+
// TODO: Split into multiple TESTs.
23+
TEST(DataLayoutTest, ParseErrors) {
24+
EXPECT_THAT_EXPECTED(
25+
DataLayout::parse("^"),
26+
FailedWithMessage("Unknown specifier in datalayout string"));
27+
EXPECT_THAT_EXPECTED(
28+
DataLayout::parse("m:v"),
29+
FailedWithMessage("Unknown mangling in datalayout string"));
30+
EXPECT_THAT_EXPECTED(
31+
DataLayout::parse("n0"),
32+
FailedWithMessage("Zero width native integer type in datalayout string"));
33+
EXPECT_THAT_EXPECTED(
34+
DataLayout::parse("p16777216:64:64:64"),
35+
FailedWithMessage("Invalid address space, must be a 24-bit integer"));
36+
EXPECT_THAT_EXPECTED(
37+
DataLayout::parse("a1:64"),
38+
FailedWithMessage("Sized aggregate specification in datalayout string"));
39+
EXPECT_THAT_EXPECTED(
40+
DataLayout::parse("a:"),
41+
FailedWithMessage("Trailing separator in datalayout string"));
42+
EXPECT_THAT_EXPECTED(
43+
DataLayout::parse("p:48:52"),
44+
FailedWithMessage("number of bits must be a byte width multiple"));
45+
EXPECT_THAT_EXPECTED(
46+
DataLayout::parse("e-p"),
47+
FailedWithMessage(
48+
"Missing size specification for pointer in datalayout string"));
49+
EXPECT_THAT_EXPECTED(
50+
DataLayout::parse("e-p:64"),
51+
FailedWithMessage(
52+
"Missing alignment specification for pointer in datalayout string"));
53+
EXPECT_THAT_EXPECTED(
54+
DataLayout::parse("m"),
55+
FailedWithMessage("Expected mangling specifier in datalayout string"));
56+
EXPECT_THAT_EXPECTED(
57+
DataLayout::parse("m."),
58+
FailedWithMessage("Unexpected trailing characters after mangling "
59+
"specifier in datalayout string"));
60+
EXPECT_THAT_EXPECTED(
61+
DataLayout::parse("f"),
62+
FailedWithMessage(
63+
"Missing alignment specification in datalayout string"));
64+
EXPECT_THAT_EXPECTED(
65+
DataLayout::parse(":32"),
66+
FailedWithMessage(
67+
"Expected token before separator in datalayout string"));
68+
EXPECT_THAT_EXPECTED(
69+
DataLayout::parse("i64:64:16"),
70+
FailedWithMessage(
71+
"Preferred alignment cannot be less than the ABI alignment"));
72+
EXPECT_THAT_EXPECTED(
73+
DataLayout::parse("i64:16:16777216"),
74+
FailedWithMessage(
75+
"Invalid preferred alignment, must be a 16bit integer"));
76+
EXPECT_THAT_EXPECTED(
77+
DataLayout::parse("i64:16777216:16777216"),
78+
FailedWithMessage("Invalid ABI alignment, must be a 16bit integer"));
79+
EXPECT_THAT_EXPECTED(
80+
DataLayout::parse("i16777216:16:16"),
81+
FailedWithMessage("Invalid bit width, must be a 24-bit integer"));
82+
EXPECT_THAT_EXPECTED(
83+
DataLayout::parse("p:32:32:16"),
84+
FailedWithMessage(
85+
"Preferred alignment cannot be less than the ABI alignment"));
86+
EXPECT_THAT_EXPECTED(DataLayout::parse("p:0:32:32"),
87+
FailedWithMessage("Invalid pointer size of 0 bytes"));
88+
EXPECT_THAT_EXPECTED(
89+
DataLayout::parse("p:64:24:64"),
90+
FailedWithMessage("Pointer ABI alignment must be a power of 2"));
91+
EXPECT_THAT_EXPECTED(
92+
DataLayout::parse("p:64:64:24"),
93+
FailedWithMessage("Pointer preferred alignment must be a power of 2"));
94+
EXPECT_THAT_EXPECTED(
95+
DataLayout::parse("p:64:64:64:128"),
96+
FailedWithMessage("Index width cannot be larger than pointer width"));
97+
EXPECT_THAT_EXPECTED(
98+
DataLayout::parse("v128:0:128"),
99+
FailedWithMessage(
100+
"ABI alignment specification must be >0 for non-aggregate types"));
101+
EXPECT_THAT_EXPECTED(
102+
DataLayout::parse("i32:24:32"),
103+
FailedWithMessage("Invalid ABI alignment, must be a power of 2"));
104+
EXPECT_THAT_EXPECTED(
105+
DataLayout::parse("i32:32:24"),
106+
FailedWithMessage("Invalid preferred alignment, must be a power of 2"));
107+
EXPECT_THAT_EXPECTED(
108+
DataLayout::parse("A16777216"),
109+
FailedWithMessage("Invalid address space, must be a 24-bit integer"));
110+
EXPECT_THAT_EXPECTED(
111+
DataLayout::parse("G16777216"),
112+
FailedWithMessage("Invalid address space, must be a 24-bit integer"));
113+
EXPECT_THAT_EXPECTED(
114+
DataLayout::parse("P16777216"),
115+
FailedWithMessage("Invalid address space, must be a 24-bit integer"));
116+
EXPECT_THAT_EXPECTED(
117+
DataLayout::parse("Fi24"),
118+
FailedWithMessage("Alignment is neither 0 nor a power of 2"));
119+
EXPECT_THAT_EXPECTED(
120+
DataLayout::parse("i8:16"),
121+
FailedWithMessage("Invalid ABI alignment, i8 must be naturally aligned"));
122+
EXPECT_THAT_EXPECTED(
123+
DataLayout::parse("S24"),
124+
FailedWithMessage("Alignment is neither 0 nor a power of 2"));
125+
}
126+
22127
TEST(DataLayoutTest, CopyAssignmentInvalidatesStructLayout) {
23128
DataLayout DL1 = cantFail(DataLayout::parse("p:32:32"));
24129
DataLayout DL2 = cantFail(DataLayout::parse("p:64:64"));

0 commit comments

Comments
 (0)