Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Unified Diff: unittests/Bitcode/NaClParseInstsTest.cpp

Issue 1140153004: Clean up bitcode munging tests. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Fix issues in patch set 2. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « unittests/Bitcode/NaClObjDumpTypesTest.cpp ('k') | unittests/Bitcode/NaClParseTypesTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: unittests/Bitcode/NaClParseInstsTest.cpp
diff --git a/unittests/Bitcode/NaClParseInstsTest.cpp b/unittests/Bitcode/NaClParseInstsTest.cpp
index 82d2a715cba76293c0bfe4fc493f9cffa24b1052..63ef745381eb61ec93b78b86d294e216d48c9f5e 100644
--- a/unittests/Bitcode/NaClParseInstsTest.cpp
+++ b/unittests/Bitcode/NaClParseInstsTest.cpp
@@ -12,18 +12,14 @@
// TODO(kschimpf) Add more tests.
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/Bitcode/NaCl/NaClBitcodeMunge.h"
-#include "llvm/Bitcode/NaCl/NaClBitcodeParser.h"
-#include "llvm/Bitcode/NaCl/NaClLLVMBitCodes.h"
-#include "gtest/gtest.h"
+#include "NaClMungeTest.h"
-using namespace llvm;
+#include "llvm/Bitcode/NaCl/NaClLLVMBitCodes.h"
-namespace {
+using namespace llvm;
-static const uint64_t Terminator = 0x5768798008978675LL;
+namespace naclmungetest {
// Note: alignment stored as 0 or log2(Alignment)+1.
uint64_t getEncAlignPower(unsigned Power) {
@@ -53,9 +49,8 @@ TEST(NaClParseInstsTest, NonexistantCallArg) {
};
// Show text of base input.
- NaClObjDumpMunger DumpMunger(BitcodeRecords,
- array_lengthof(BitcodeRecords), Terminator);
- EXPECT_FALSE(DumpMunger.runTest("Nonexistant call arg"));
+ NaClObjDumpMunger DumpMunger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_FALSE(DumpMunger.runTest());
EXPECT_EQ(
" 0:0|<65532, 80, 69, 88, 69, 1, 0,|Magic Number: 'PEXE' (80, 69, "
"88, 69)\n"
@@ -86,9 +81,8 @@ TEST(NaClParseInstsTest, NonexistantCallArg) {
" 76:0|0: <65534> |}\n",
DumpMunger.getTestResults());
- NaClParseBitcodeMunger Munger(BitcodeRecords,
- array_lengthof(BitcodeRecords), Terminator);
- EXPECT_FALSE(Munger.runTest("Nonexistant call arg", true));
+ NaClParseBitcodeMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_FALSE(Munger.runTest(true));
EXPECT_EQ(
"Error(72:6): Invalid call argument: Index 1\n"
"Error: Invalid value in record\n",
@@ -118,9 +112,8 @@ TEST(NaClParseInstsTests, BadAllocaAlignment) {
const uint64_t ReplaceIndex = 11; // index for FUNC_CODE_INST_ALLOCA
// Show text when alignment is 1.
- NaClObjDumpMunger DumpMunger(BitcodeRecords,
- array_lengthof(BitcodeRecords), Terminator);
- EXPECT_TRUE(DumpMunger.runTest("BadAllocaAlignment"));
+ NaClObjDumpMunger DumpMunger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(DumpMunger.runTest());
EXPECT_EQ(
" 0:0|<65532, 80, 69, 88, 69, 1, 0,|Magic Number: 'PEXE' (80, 69, "
"88, 69)\n"
@@ -148,19 +141,16 @@ TEST(NaClParseInstsTests, BadAllocaAlignment) {
" 67:4| 0: <65534> | }\n"
" 68:0|0: <65534> |}\n",
DumpMunger.getTestResults());
- NaClParseBitcodeMunger Munger(BitcodeRecords,
- array_lengthof(BitcodeRecords), Terminator);
- EXPECT_TRUE(Munger.runTest("BadAllocaAlignment", true));
+ NaClParseBitcodeMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(Munger.runTest(true));
// Show what happens when changing alignment to 0.
const uint64_t Align0[] = {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_ALLOCA, 1, getEncAlignZero(), Terminator,
};
- EXPECT_TRUE(Munger.runTest(
- "BadAllocaAlignment-0", Align0, array_lengthof(Align0), true));
- EXPECT_TRUE(DumpMunger.runTestForAssembly(
- "BadAllocaAlignment-0", Align0, array_lengthof(Align0)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align0), true));
+ EXPECT_TRUE(DumpMunger.runTestForAssembly(ARRAY(Align0)));
EXPECT_EQ(
" %v0 = alloca i8, i32 %p0, align 0;\n",
DumpMunger.getLinesWithSubstring("alloca"));
@@ -170,14 +160,12 @@ TEST(NaClParseInstsTests, BadAllocaAlignment) {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_ALLOCA, 1, getEncAlignPower(30), Terminator,
};
- EXPECT_FALSE(Munger.runTest(
- "BadAllocaAlignment-30", Align30, array_lengthof(Align30), true));
+ EXPECT_FALSE(Munger.runTest(ARRAY(Align30), true));
EXPECT_EQ(
"Error(65:6): Alignment can't be greater than 2**29. Found: 2**30\n"
"Error: Invalid value in record\n",
Munger.getTestResults());
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadAllocaAlignment-30", Align30, array_lengthof(Align30)));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align30)));
EXPECT_EQ(
" %v0 = alloca i8, i32 %p0, align 0;\n",
DumpMunger.getLinesWithSubstring("alloca"));
@@ -190,13 +178,11 @@ TEST(NaClParseInstsTests, BadAllocaAlignment) {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_ALLOCA, 1, getEncAlignPower(29), Terminator,
};
- EXPECT_TRUE(Munger.runTest(
- "BadAllocaAlignment-29", Align29, array_lengthof(Align29), true));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align29), true));
EXPECT_EQ(
"Successful parse!\n",
Munger.getTestResults());
- EXPECT_TRUE(DumpMunger.runTestForAssembly(
- "BadAllocaAlignment-29", Align29, array_lengthof(Align29)));
+ EXPECT_TRUE(DumpMunger.runTestForAssembly(ARRAY(Align29)));
EXPECT_EQ(
" %v0 = alloca i8, i32 %p0, align 536870912;\n",
DumpMunger.getLinesWithSubstring("alloca"));
@@ -223,9 +209,8 @@ TEST(NaClParseInstsTests, BadLoadAlignment) {
const uint64_t ReplaceIndex = 9; // index for FUNC_CODE_INST_LOAD
// Show text when alignment is 1.
- NaClObjDumpMunger DumpMunger(BitcodeRecords,
- array_lengthof(BitcodeRecords), Terminator);
- EXPECT_TRUE(DumpMunger.runTest("BadLoadAlignment-1"));
+ NaClObjDumpMunger DumpMunger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(DumpMunger.runTest());
EXPECT_EQ(
" 0:0|<65532, 80, 69, 88, 69, 1, 0,|Magic Number: 'PEXE' (80, 69, "
"88, 69)\n"
@@ -251,9 +236,8 @@ TEST(NaClParseInstsTests, BadLoadAlignment) {
" 65:0| 0: <65534> | }\n"
" 68:0|0: <65534> |}\n",
DumpMunger.getTestResults());
- NaClParseBitcodeMunger Munger(BitcodeRecords,
- array_lengthof(BitcodeRecords), Terminator);
- EXPECT_TRUE(Munger.runTest("BadLoadAlignment", true));
+ NaClParseBitcodeMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(Munger.runTest(true));
// Show what happens when changing alignment to 0.
const uint64_t Align0[] = {
@@ -264,10 +248,8 @@ TEST(NaClParseInstsTests, BadLoadAlignment) {
// bitcode reader). It is checked later by the PNaCl ABI checker in
// pnacl-llc. On the other hand, the DumpMunger checks alignment for
// loads while parsing.
- EXPECT_TRUE(Munger.runTest(
- "BadLoadAlignment-0", Align0, array_lengthof(Align0), true));
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadLoadAlignment-0", Align0, array_lengthof(Align0)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align0), true));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align0)));
EXPECT_EQ(
" %v0 = load i32* %p0, align 0;\n"
"Error(58:4): load: Illegal alignment for i32. Expects: 1\n",
@@ -278,10 +260,8 @@ TEST(NaClParseInstsTests, BadLoadAlignment) {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_LOAD, 1, getEncAlignPower(2), 0, Terminator,
};
- EXPECT_TRUE(Munger.runTest(
- "BadLoadAlignment-4", Align4, array_lengthof(Align4), true));
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadLoadAlignment-4", Align4, array_lengthof(Align4)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align4), true));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align4)));
EXPECT_EQ(
" %v0 = load i32* %p0, align 4;\n"
"Error(58:4): load: Illegal alignment for i32. Expects: 1\n",
@@ -292,10 +272,8 @@ TEST(NaClParseInstsTests, BadLoadAlignment) {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_LOAD, 1, getEncAlignPower(29), 0, Terminator,
};
- EXPECT_TRUE(Munger.runTest(
- "BadLoadAlignment-29", Align29, array_lengthof(Align29), true));
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadLoadAlignment-29", Align29, array_lengthof(Align29)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align29), true));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align29)));
EXPECT_EQ(
" %v0 = load i32* %p0, align 536870912;\n"
"Error(58:4): load: Illegal alignment for i32. Expects: 1\n",
@@ -306,14 +284,12 @@ TEST(NaClParseInstsTests, BadLoadAlignment) {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_LOAD, 1, getEncAlignPower(30), 0, Terminator,
};
- EXPECT_FALSE(Munger.runTest(
- "BadLoadAlignment-30", Align30, array_lengthof(Align30), true));
+ EXPECT_FALSE(Munger.runTest(ARRAY(Align30), true));
EXPECT_EQ(
"Error(62:4): Alignment can't be greater than 2**29. Found: 2**30\n"
"Error: Invalid value in record\n",
Munger.getTestResults());
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadLoadAlignment-30", Align30, array_lengthof(Align30)));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align30)));
EXPECT_EQ(
" %v0 = load i32* %p0, align 0;\n"
"Error(58:4): load: Illegal alignment for i32. Expects: 1\n",
@@ -342,9 +318,8 @@ TEST(NaClParseInstsTests, BadStoreAlignment) {
const uint64_t ReplaceIndex = 10; // index for FUNC_CODE_INST_STORE
// Show text when alignment is 1.
- NaClObjDumpMunger DumpMunger(BitcodeRecords,
- array_lengthof(BitcodeRecords), Terminator);
- EXPECT_TRUE(DumpMunger.runTest("BadStoreAlignment"));
+ NaClObjDumpMunger DumpMunger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(DumpMunger.runTest());
EXPECT_EQ(
" 0:0|<65532, 80, 69, 88, 69, 1, 0,|Magic Number: 'PEXE' (80, 69, "
"88, 69)\n"
@@ -373,9 +348,8 @@ TEST(NaClParseInstsTests, BadStoreAlignment) {
" 69:0| 0: <65534> | }\n"
" 72:0|0: <65534> |}\n",
DumpMunger.getTestResults());
- NaClParseBitcodeMunger Munger(BitcodeRecords,
- array_lengthof(BitcodeRecords), Terminator);
- EXPECT_TRUE(Munger.runTest("BadStoreAlignment", true));
+ NaClParseBitcodeMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(Munger.runTest(true));
// Show what happens when changing alignment to 0.
const uint64_t Align0[] = {
@@ -386,10 +360,8 @@ TEST(NaClParseInstsTests, BadStoreAlignment) {
// bitcode reader). It is checked later by the PNaCl ABI checker in
// pnacl-llc. On the other hand, the DumpMunger checks alignment for
// stores while parsing.
- EXPECT_TRUE(Munger.runTest(
- "BadStoreAlignment-0", Align0, array_lengthof(Align0), true));
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadStoreAlignment-0", Align0, array_lengthof(Align0)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align0), true));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align0)));
EXPECT_EQ(
" store float %p1, float* %p0, align 0;\n"
"Error(62:4): store: Illegal alignment for float. Expects: 1 or 4\n",
@@ -400,20 +372,16 @@ TEST(NaClParseInstsTests, BadStoreAlignment) {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_STORE, 2, 1, getEncAlignPower(2), Terminator,
};
- EXPECT_TRUE(Munger.runTest(
- "BadStoreAlignment-4", Align4, array_lengthof(Align4), true));
- EXPECT_TRUE(DumpMunger.runTestForAssembly(
- "BadStoreAlignment-4", Align4, array_lengthof(Align4)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align4), true));
+ EXPECT_TRUE(DumpMunger.runTestForAssembly(ARRAY(Align4)));
// Show what happens when changing alignment to 8.
const uint64_t Align8[] = {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_STORE, 2, 1, getEncAlignPower(3), Terminator,
};
- EXPECT_TRUE(Munger.runTest(
- "BadStoreAlignment-8", Align8, array_lengthof(Align8), true));
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadStoreAlignment-8", Align8, array_lengthof(Align8)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align8), true));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align8)));
EXPECT_EQ(
" store float %p1, float* %p0, align 8;\n"
"Error(62:4): store: Illegal alignment for float. Expects: 1 or 4\n",
@@ -424,10 +392,8 @@ TEST(NaClParseInstsTests, BadStoreAlignment) {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_STORE, 2, 1, getEncAlignPower(29), Terminator,
};
- EXPECT_TRUE(Munger.runTest(
- "BadStoreAlignment-29", Align29, array_lengthof(Align29), true));
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadStoreAlignment-29", Align29, array_lengthof(Align29)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Align29), true));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align29)));
EXPECT_EQ(
" store float %p1, float* %p0, align 536870912;\n"
"Error(62:4): store: Illegal alignment for float. Expects: 1 or 4\n",
@@ -438,18 +404,16 @@ TEST(NaClParseInstsTests, BadStoreAlignment) {
ReplaceIndex, NaClMungedBitcode::Replace,
3, naclbitc::FUNC_CODE_INST_STORE, 2, 1, getEncAlignPower(30), Terminator,
};
- EXPECT_FALSE(Munger.runTest(
- "BadStoreAlignment-30", Align30, array_lengthof(Align30), true));
+ EXPECT_FALSE(Munger.runTest(ARRAY(Align30), true));
EXPECT_EQ(
"Error(66:4): Alignment can't be greater than 2**29. Found: 2**30\n"
"Error: Invalid value in record\n",
Munger.getTestResults());
- EXPECT_FALSE(DumpMunger.runTestForAssembly(
- "BadStoreAlignment-30", Align30, array_lengthof(Align30)));
+ EXPECT_FALSE(DumpMunger.runTestForAssembly(ARRAY(Align30)));
EXPECT_EQ(
" store float %p1, float* %p0, align 0;\n"
"Error(62:4): store: Illegal alignment for float. Expects: 1 or 4\n",
DumpMunger.getLinesWithSubstring("store"));
}
-} // end of anonamous namespace.
+} // end of namespace naclmungetest
« no previous file with comments | « unittests/Bitcode/NaClObjDumpTypesTest.cpp ('k') | unittests/Bitcode/NaClParseTypesTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698