| Index: unittest/IceParseInstsTest.cpp
|
| diff --git a/unittest/IceParseInstsTest.cpp b/unittest/IceParseInstsTest.cpp
|
| index f8df189e25e4cd62234913fc4cab4e3134e15736..5d45888dd22471ce8f19628e6152921714d62328 100644
|
| --- a/unittest/IceParseInstsTest.cpp
|
| +++ b/unittest/IceParseInstsTest.cpp
|
| @@ -51,33 +51,17 @@ TEST(IceParseInstsTest, NonexistentCallArg) {
|
| // Show bitcode objdump for BitcodeRecords.
|
| NaClObjDumpMunger DumpMunger(BitcodeRecords,
|
| array_lengthof(BitcodeRecords), Terminator);
|
| - EXPECT_FALSE(DumpMunger.runTestForAssembly("Nonexistent call arg"));
|
| - EXPECT_EQ(
|
| - "module { // BlockID = 8\n"
|
| - " types { // BlockID = 17\n"
|
| - " count 3;\n"
|
| - " @t0 = i32;\n"
|
| - " @t1 = void;\n"
|
| - " @t2 = void (i32, i32);\n"
|
| - " }\n"
|
| - " declare external void @f0(i32, i32);\n"
|
| - " define external void @f1(i32, i32);\n"
|
| - " function void @f1(i32 %p0, i32 %p1) { // BlockID = 12\n"
|
| - " blocks 1;\n"
|
| - " %b0:\n"
|
| - " call void @f0(i32 %p0, i32 @f0);\n"
|
| - "Error(66:4): Invalid relative value id: 100 (Must be <= 4)\n"
|
| - " ret void;\n"
|
| - " }\n"
|
| - "}\n",
|
| - DumpMunger.getTestResults());
|
| + EXPECT_FALSE(DumpMunger.runTest("Nonexistent call arg"));
|
| + EXPECT_EQ(" 66:4| 3: <34, 0, 4, 2, 100> | call void @f0(i32 "
|
| + "%p0, i32 @f0);\n"
|
| + "Error(66:4): Invalid relative value id: 100 (Must be <= 4)\n",
|
| + DumpMunger.getLinesWithSubstring("66:4"));
|
|
|
| // Show that we get appropriate error when parsing in Subzero.
|
| IceTest::SubzeroBitcodeMunger Munger(
|
| BitcodeRecords, array_lengthof(BitcodeRecords), Terminator);
|
| EXPECT_FALSE(Munger.runTest("Nonexistent call arg"));
|
| - EXPECT_EQ(
|
| - "Error: (66:4) Invalid function record: <34 0 4 2 100>\n",
|
| + EXPECT_EQ("Error(66:4): Invalid function record: <34 0 4 2 100>\n",
|
| Munger.getTestResults());
|
| }
|
|
|
| @@ -105,24 +89,10 @@ TEST(IceParseInstsTests, AllocaAlignment) {
|
| // Show text when alignment is 1.
|
| NaClObjDumpMunger DumpMunger(BitcodeRecords, array_lengthof(BitcodeRecords),
|
| Terminator);
|
| - EXPECT_TRUE(DumpMunger.runTestForAssembly("Good alloca alignment 1"));
|
| - EXPECT_EQ("module { // BlockID = 8\n"
|
| - " types { // BlockID = 17\n"
|
| - " count 4;\n"
|
| - " @t0 = i32;\n"
|
| - " @t1 = void;\n"
|
| - " @t2 = void (i32);\n"
|
| - " @t3 = i8;\n"
|
| - " }\n"
|
| - " define external void @f0(i32);\n"
|
| - " function void @f0(i32 %p0) { // BlockID = 12\n"
|
| - " blocks 1;\n"
|
| - " %b0:\n"
|
| - " %v0 = alloca i8, i32 %p0, align 1;\n"
|
| - " ret void;\n"
|
| - " }\n"
|
| - "}\n",
|
| - DumpMunger.getTestResults());
|
| + EXPECT_TRUE(DumpMunger.runTest("Good alloca alignment 1"));
|
| + EXPECT_EQ(" 62:4| 3: <19, 1, 1> | %v0 = alloca i8, i32 "
|
| + "%p0, align 1;\n",
|
| + DumpMunger.getLinesWithSubstring("62:4"));
|
|
|
| // Show that we can handle alignment of 1.
|
| IceTest::SubzeroBitcodeMunger Munger(
|
| @@ -148,7 +118,7 @@ TEST(IceParseInstsTests, AllocaAlignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad alloca alignment 30", Align30,
|
| array_lengthof(Align30)));
|
| - EXPECT_EQ("Error: (62:4) Invalid function record: <19 1 31>\n",
|
| + EXPECT_EQ("Error(62:4): Invalid function record: <19 1 31>\n",
|
| Munger.getTestResults());
|
|
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad alloca alignment 30", Align30,
|
| @@ -194,22 +164,10 @@ TEST(IceParseInstsTests, LoadI32Alignment) {
|
| // Show text when alignment is 1.
|
| NaClObjDumpMunger DumpMunger(BitcodeRecords, array_lengthof(BitcodeRecords),
|
| Terminator);
|
| - EXPECT_TRUE(DumpMunger.runTestForAssembly("Good load i32 alignment 1"));
|
| - EXPECT_EQ("module { // BlockID = 8\n"
|
| - " types { // BlockID = 17\n"
|
| - " count 2;\n"
|
| - " @t0 = i32;\n"
|
| - " @t1 = i32 (i32);\n"
|
| - " }\n"
|
| - " define external i32 @f0(i32);\n"
|
| - " function i32 @f0(i32 %p0) { // BlockID = 12\n"
|
| - " blocks 1;\n"
|
| - " %b0:\n"
|
| - " %v0 = load i32* %p0, align 1;\n"
|
| - " ret i32 %v0;\n"
|
| - " }\n"
|
| - "}\n",
|
| - DumpMunger.getTestResults());
|
| + EXPECT_TRUE(DumpMunger.runTest("Good load i32 alignment 1"));
|
| + EXPECT_EQ(" 58:4| 3: <20, 1, 1, 0> | %v0 = load i32* %p0, "
|
| + "align 1;\n",
|
| + DumpMunger.getLinesWithSubstring("58:4"));
|
| IceTest::SubzeroBitcodeMunger Munger(
|
| BitcodeRecords, array_lengthof(BitcodeRecords), Terminator);
|
| EXPECT_TRUE(Munger.runTest("Good load i32 alignment 1"));
|
| @@ -221,7 +179,7 @@ TEST(IceParseInstsTests, LoadI32Alignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad load i32 alignment 0", Align0,
|
| array_lengthof(Align0)));
|
| - EXPECT_EQ("Error: (58:4) Invalid function record: <20 1 0 0>\n",
|
| + EXPECT_EQ("Error(58:4): Invalid function record: <20 1 0 0>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad load i32 alignment 0", Align0,
|
| array_lengthof(Align0)));
|
| @@ -236,7 +194,7 @@ TEST(IceParseInstsTests, LoadI32Alignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad load i32 alignment 4", Align4,
|
| array_lengthof(Align4)));
|
| - EXPECT_EQ("Error: (58:4) Invalid function record: <20 1 3 0>\n",
|
| + EXPECT_EQ("Error(58:4): Invalid function record: <20 1 3 0>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad load i32 alignment 4", Align4,
|
| array_lengthof(Align4)));
|
| @@ -251,7 +209,7 @@ TEST(IceParseInstsTests, LoadI32Alignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad load i32 alignment 29", Align29,
|
| array_lengthof(Align29)));
|
| - EXPECT_EQ("Error: (58:4) Invalid function record: <20 1 30 0>\n",
|
| + EXPECT_EQ("Error(58:4): Invalid function record: <20 1 30 0>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad load i32 alignment 29",
|
| Align29, array_lengthof(Align29)));
|
| @@ -266,7 +224,7 @@ TEST(IceParseInstsTests, LoadI32Alignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad load i32 alignment 30", Align30,
|
| array_lengthof(Align30)));
|
| - EXPECT_EQ("Error: (58:4) Invalid function record: <20 1 31 0>\n",
|
| + EXPECT_EQ("Error(58:4): Invalid function record: <20 1 31 0>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad load i32 alignment 30",
|
| Align30, array_lengthof(Align30)));
|
| @@ -298,23 +256,10 @@ TEST(IceParseInstsTests, LoadFloatAlignment) {
|
| // Show text when alignment is 1.
|
| NaClObjDumpMunger DumpMunger(BitcodeRecords, array_lengthof(BitcodeRecords),
|
| Terminator);
|
| - EXPECT_TRUE(DumpMunger.runTestForAssembly("Good load float alignment 1"));
|
| - EXPECT_EQ("module { // BlockID = 8\n"
|
| - " types { // BlockID = 17\n"
|
| - " count 3;\n"
|
| - " @t0 = float;\n"
|
| - " @t1 = i32;\n"
|
| - " @t2 = float (i32);\n"
|
| - " }\n"
|
| - " define external float @f0(i32);\n"
|
| - " function float @f0(i32 %p0) { // BlockID = 12\n"
|
| - " blocks 1;\n"
|
| - " %b0:\n"
|
| - " %v0 = load float* %p0, align 1;\n"
|
| - " ret float %v0;\n"
|
| - " }\n"
|
| - "}\n",
|
| - DumpMunger.getTestResults());
|
| + EXPECT_TRUE(DumpMunger.runTest("Good load float alignment 1"));
|
| + EXPECT_EQ(" 58:4| 3: <20, 1, 1, 0> | %v0 = load float* "
|
| + "%p0, align 1;\n",
|
| + DumpMunger.getLinesWithSubstring("58:4"));
|
| IceTest::SubzeroBitcodeMunger Munger(
|
| BitcodeRecords, array_lengthof(BitcodeRecords), Terminator);
|
| EXPECT_TRUE(Munger.runTest("Good load float alignment 1"));
|
| @@ -326,7 +271,7 @@ TEST(IceParseInstsTests, LoadFloatAlignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad load float alignment 0", Align0,
|
| array_lengthof(Align0)));
|
| - EXPECT_EQ("Error: (58:4) Invalid function record: <20 1 0 0>\n",
|
| + EXPECT_EQ("Error(58:4): Invalid function record: <20 1 0 0>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad load float alignment 0",
|
| Align0, array_lengthof(Align0)));
|
| @@ -353,7 +298,7 @@ TEST(IceParseInstsTests, LoadFloatAlignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad load float alignment 29", Align29,
|
| array_lengthof(Align29)));
|
| - EXPECT_EQ("Error: (58:4) Invalid function record: <20 1 30 0>\n",
|
| + EXPECT_EQ("Error(58:4): Invalid function record: <20 1 30 0>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad load float alignment 29",
|
| Align29, array_lengthof(Align29)));
|
| @@ -369,7 +314,7 @@ TEST(IceParseInstsTests, LoadFloatAlignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad load float alignment 30", Align30,
|
| array_lengthof(Align30)));
|
| - EXPECT_EQ("Error: (58:4) Invalid function record: <20 1 31 0>\n",
|
| + EXPECT_EQ("Error(58:4): Invalid function record: <20 1 31 0>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad load float alignment 30",
|
| Align30, array_lengthof(Align30)));
|
| @@ -402,23 +347,10 @@ TEST(NaClParseInstsTests, StoreAlignment) {
|
| // Show text when alignment is 1.
|
| NaClObjDumpMunger DumpMunger(BitcodeRecords, array_lengthof(BitcodeRecords),
|
| Terminator);
|
| - EXPECT_TRUE(DumpMunger.runTestForAssembly("Good Store Alignment 1"));
|
| - EXPECT_EQ("module { // BlockID = 8\n"
|
| - " types { // BlockID = 17\n"
|
| - " count 3;\n"
|
| - " @t0 = float;\n"
|
| - " @t1 = i32;\n"
|
| - " @t2 = float (i32, float);\n"
|
| - " }\n"
|
| - " define external float @f0(i32, float);\n"
|
| - " function float @f0(i32 %p0, float %p1) { // BlockID = 12\n"
|
| - " blocks 1;\n"
|
| - " %b0:\n"
|
| - " store float %p1, float* %p0, align 1;\n"
|
| - " ret float %p1;\n"
|
| - " }\n"
|
| - "}\n",
|
| - DumpMunger.getTestResults());
|
| + EXPECT_TRUE(DumpMunger.runTest("Good Store Alignment 1"));
|
| + EXPECT_EQ(" 62:4| 3: <24, 2, 1, 1> | store float %p1, "
|
| + "float* %p0, \n",
|
| + DumpMunger.getLinesWithSubstring("62:4"));
|
| IceTest::SubzeroBitcodeMunger Munger(
|
| BitcodeRecords, array_lengthof(BitcodeRecords), Terminator);
|
| EXPECT_TRUE(Munger.runTest("Good store alignment"));
|
| @@ -430,7 +362,7 @@ TEST(NaClParseInstsTests, StoreAlignment) {
|
| };
|
| EXPECT_FALSE(
|
| Munger.runTest("Bad store alignment 0", Align0, array_lengthof(Align0)));
|
| - EXPECT_EQ("Error: (62:4) Invalid function record: <24 2 1 0>\n",
|
| + EXPECT_EQ("Error(62:4): Invalid function record: <24 2 1 0>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad store alignment 0", Align0,
|
| array_lengthof(Align0)));
|
| @@ -456,7 +388,7 @@ TEST(NaClParseInstsTests, StoreAlignment) {
|
| };
|
| EXPECT_FALSE(
|
| Munger.runTest("Bad store alignment 8", Align8, array_lengthof(Align8)));
|
| - EXPECT_EQ("Error: (62:4) Invalid function record: <24 2 1 4>\n",
|
| + EXPECT_EQ("Error(62:4): Invalid function record: <24 2 1 4>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad store alignment 8", Align8,
|
| array_lengthof(Align8)));
|
| @@ -472,7 +404,7 @@ TEST(NaClParseInstsTests, StoreAlignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad store alignment 29", Align29,
|
| array_lengthof(Align29)));
|
| - EXPECT_EQ("Error: (62:4) Invalid function record: <24 2 1 30>\n",
|
| + EXPECT_EQ("Error(62:4): Invalid function record: <24 2 1 30>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad store alignment 29", Align29,
|
| array_lengthof(Align29)));
|
| @@ -488,7 +420,7 @@ TEST(NaClParseInstsTests, StoreAlignment) {
|
| };
|
| EXPECT_FALSE(Munger.runTest("Bad store alignment 30", Align30,
|
| array_lengthof(Align30)));
|
| - EXPECT_EQ("Error: (62:4) Invalid function record: <24 2 1 31>\n",
|
| + EXPECT_EQ("Error(62:4): Invalid function record: <24 2 1 31>\n",
|
| Munger.getTestResults());
|
| EXPECT_FALSE(DumpMunger.runTestForAssembly("Bad Store alignment 30", Align30,
|
| array_lengthof(Align30)));
|
|
|