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

Unified Diff: unittests/Bitcode/NaClMungeWriteErrorTests.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/NaClMungeTest.h ('k') | unittests/Bitcode/NaClMungedBitcodeTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: unittests/Bitcode/NaClMungeWriteErrorTests.cpp
diff --git a/unittests/Bitcode/NaClMungeWriteErrorTests.cpp b/unittests/Bitcode/NaClMungeWriteErrorTests.cpp
index 7bf3d6342f988495e89aa0b9b8c6f2268f43f723..f48e2801dea0d5e4d24a9b9e57e12e8d72aaf3a0 100644
--- a/unittests/Bitcode/NaClMungeWriteErrorTests.cpp
+++ b/unittests/Bitcode/NaClMungeWriteErrorTests.cpp
@@ -10,8 +10,8 @@
// Tests write errors for munged bitcode.
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/Bitcode/NaCl/NaClBitcodeMunge.h"
+#include "NaClMungeTest.h"
+
#include "llvm/Bitcode/NaCl/NaClBitcodeParser.h"
#include "llvm/Bitcode/NaCl/NaClLLVMBitCodes.h"
@@ -19,24 +19,23 @@
using namespace llvm;
-namespace {
+namespace naclmungetest {
// Test list of bitcode records.
-static const uint64_t Terminator = 0x5768798008978675LL;
- const uint64_t BitcodeRecords[] = {
- 1, naclbitc::BLK_CODE_ENTER, naclbitc::MODULE_BLOCK_ID, 2, Terminator,
- 1, naclbitc::BLK_CODE_ENTER, naclbitc::TYPE_BLOCK_ID_NEW, 3, Terminator,
- 3, naclbitc::TYPE_CODE_NUMENTRY, 2, Terminator,
- 3, naclbitc::TYPE_CODE_VOID, Terminator,
- 3, naclbitc::TYPE_CODE_FUNCTION, 0, 0, Terminator,
- 0, naclbitc::BLK_CODE_EXIT, Terminator,
- 3, naclbitc::MODULE_CODE_FUNCTION, 1, 0, 0, 0, Terminator,
- 1, naclbitc::BLK_CODE_ENTER, naclbitc::FUNCTION_BLOCK_ID, 2, Terminator,
- 3, naclbitc::FUNC_CODE_DECLAREBLOCKS, 1, Terminator,
- 3, naclbitc::FUNC_CODE_INST_RET, Terminator,
- 0, naclbitc::BLK_CODE_EXIT, Terminator,
- 0, naclbitc::BLK_CODE_EXIT, Terminator
- };
+const uint64_t BitcodeRecords[] = {
+ 1, naclbitc::BLK_CODE_ENTER, naclbitc::MODULE_BLOCK_ID, 2, Terminator,
+ 1, naclbitc::BLK_CODE_ENTER, naclbitc::TYPE_BLOCK_ID_NEW, 3, Terminator,
+ 3, naclbitc::TYPE_CODE_NUMENTRY, 2, Terminator,
+ 3, naclbitc::TYPE_CODE_VOID, Terminator,
+ 3, naclbitc::TYPE_CODE_FUNCTION, 0, 0, Terminator,
+ 0, naclbitc::BLK_CODE_EXIT, Terminator,
+ 3, naclbitc::MODULE_CODE_FUNCTION, 1, 0, 0, 0, Terminator,
+ 1, naclbitc::BLK_CODE_ENTER, naclbitc::FUNCTION_BLOCK_ID, 2, Terminator,
+ 3, naclbitc::FUNC_CODE_DECLAREBLOCKS, 1, Terminator,
+ 3, naclbitc::FUNC_CODE_INST_RET, Terminator,
+ 0, naclbitc::BLK_CODE_EXIT, Terminator,
+ 0, naclbitc::BLK_CODE_EXIT, Terminator
+};
// Expected output when bitcode records are dumped.
const char* ExpectedDump =
@@ -79,28 +78,17 @@ const uint64_t UseLocalRetVoidAbbrevEdits[] = {
4, naclbitc::FUNC_CODE_INST_RET, Terminator
};
-#define ARRAY_ARGS(Records) Records, array_lengthof(Records)
-
-#define ARRAY_ARGS_TERM(Records) ARRAY_ARGS(Records), Terminator
-
-std::string stringify(NaClBitcodeMunger &Munger) {
- std::string Buffer;
- raw_string_ostream StrBuf(Buffer);
- Munger.getMungedBitcode().print(StrBuf);
- return StrBuf.str();
-}
-
// Show that we can dump the bitcode records
TEST(NaClMungeWriteErrorTests, DumpBitcodeRecords) {
- NaClObjDumpMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClObjDumpMunger Munger(ARRAY_TERM(BitcodeRecords));
EXPECT_TRUE(Munger.runTest());
EXPECT_EQ(ExpectedDump, Munger.getTestResults());
}
// Show that by default, one can't write a bad abbreviation index.
TEST(NaClMungeWriteErrorTests, CantWriteBadAbbrevIndex) {
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
- EXPECT_FALSE(Munger.runTest(ARRAY_ARGS(AbbrevIndex4VoidTypeEdit)));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_FALSE(Munger.runTest(ARRAY(AbbrevIndex4VoidTypeEdit)));
EXPECT_EQ(
"Error (Block 17): Uses illegal abbreviation index: 4: [2]\n"
"Error: Unable to generate bitcode file due to write errors\n",
@@ -110,8 +98,8 @@ TEST(NaClMungeWriteErrorTests, CantWriteBadAbbrevIndex) {
// Show that we can't write more local abbreviations than specified in
// the corresponding enclosing block.
TEST(NaClMungeWriteErrorTests, CantWriteTooManyLocalAbbreviations) {
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
- Munger.munge(ARRAY_ARGS(UseLocalRetVoidAbbrevEdits));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
+ Munger.munge(ARRAY(UseLocalRetVoidAbbrevEdits));
EXPECT_EQ(
" 1: [65535, 8, 2]\n"
" 1: [65535, 17, 3]\n"
@@ -138,7 +126,7 @@ TEST(NaClMungeWriteErrorTests, CantWriteTooManyLocalAbbreviations) {
// Show what happens when there are more enter blocks then exit blocks.
TEST(NaClMungeWriteErrorTests, CantWriteTooManyEnterBlocks) {
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
// Remove all but first two records (i.e. two enter blocks).
NaClMungedBitcode &MungedBitcode = Munger.getMungedBitcode();
for (size_t i = 2; i < MungedBitcode.getBaseRecords().size(); ++i) {
@@ -156,7 +144,7 @@ TEST(NaClMungeWriteErrorTests, CantWriteTooManyEnterBlocks) {
// Show what happens when there are fewer enter blocks than exit
// blocks.
TEST(NaClMungeWriteErrorTests, CantWriteTooManyExitBlocks) {
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
// Add two exit blocks.
NaClMungedBitcode &MungedBitcode = Munger.getMungedBitcode();
NaClRecordVector Values;
@@ -174,7 +162,7 @@ TEST(NaClMungeWriteErrorTests, CantWriteTooManyExitBlocks) {
// Show that an error occurs when writing a bitcode record that isn't
// in any block.
TEST(NaClMungeWriteErrorTests, CantWriteRecordOutsideBlock) {
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
NaClMungedBitcode &MungedBitcode = Munger.getMungedBitcode();
NaClRecordVector Values;
Values.push_back(4);
@@ -199,8 +187,8 @@ TEST(NaClMungerWriteErrorTests, CanWriteBlockWithMaxLimit) {
1, naclbitc::BLK_CODE_ENTER, naclbitc::MODULE_BLOCK_ID,
naclbitc::MaxAbbrevWidth, Terminator
};
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
- EXPECT_TRUE(Munger.runTest(ARRAY_ARGS(Edit)));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(Munger.runTest(ARRAY(Edit)));
EXPECT_EQ(
" 1: [65535, 8, 32]\n"
" 1: [65535, 17, 3]\n"
@@ -226,8 +214,8 @@ TEST(NaClMungerWriteErrorTests, CantWriteBlockWithBadBitLimit) {
1, naclbitc::BLK_CODE_ENTER, naclbitc::MODULE_BLOCK_ID,
naclbitc::MaxAbbrevWidth + 1, Terminator
};
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
- EXPECT_FALSE(Munger.runTest(ARRAY_ARGS(Edit)));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_FALSE(Munger.runTest(ARRAY(Edit)));
EXPECT_EQ(
"Error (Block unknown): Block index bit limit 33 invalid. Must be in"
" [2..32]: 1: [65535, 8, 33]\n"
@@ -242,8 +230,8 @@ TEST(NaClMungerWriteErrorTests, CantWriteBlockWithLargeBlockID) {
0, NaClMungedBitcode::Replace,
1, naclbitc::BLK_CODE_ENTER, (uint64_t)1 << 33, 2, Terminator
};
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
- EXPECT_FALSE(Munger.runTest(ARRAY_ARGS(Edit)));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_FALSE(Munger.runTest(ARRAY(Edit)));
EXPECT_EQ(
"Error (Block unknown): Block id must be <= 4294967295: 1:"
" [65535, 8589934592, 2]\n"
@@ -254,11 +242,11 @@ TEST(NaClMungerWriteErrorTests, CantWriteBlockWithLargeBlockID) {
// Show that writing successfully writes out an illegal abbreviation
// index, and then the parser fails to parse that illegal abbreviation.
TEST(MyNaClMungerWriteErrorTests, DieOnWriteBadAbbreviationIndex) {
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
Munger.setWriteBadAbbrevIndex(true);
Munger.setRunAsDeathTest(true);
EXPECT_DEATH(
- Munger.runTest(ARRAY_ARGS(AbbrevIndex4VoidTypeEdit)),
+ Munger.runTest(ARRAY(AbbrevIndex4VoidTypeEdit)),
".*"
// Report problem while writing.
"Error \\(Block 17\\)\\: Uses illegal abbreviation index\\: 4\\: \\[2\\]"
@@ -274,10 +262,10 @@ TEST(MyNaClMungerWriteErrorTests, DieOnWriteBadAbbreviationIndex) {
// Show that error recovery works when writing an illegal abbreviation
// index. Show success by parsing fixed bitcode.
TEST(NaClMungeWriteErrorTests, RecoverWhenParsingBadAbbrevIndex) {
- NaClParseBitcodeMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClParseBitcodeMunger Munger(ARRAY_TERM(BitcodeRecords));
Munger.setTryToRecoverOnWrite(true);
EXPECT_TRUE(
- Munger.runTest(ARRAY_ARGS(AbbrevIndex4VoidTypeEdit), true));
+ Munger.runTest(ARRAY(AbbrevIndex4VoidTypeEdit), true));
EXPECT_EQ(
"Error (Block 17): Uses illegal abbreviation index: 4: [2]\n"
"Successful parse!\n",
@@ -287,9 +275,9 @@ TEST(NaClMungeWriteErrorTests, RecoverWhenParsingBadAbbrevIndex) {
// Show that error recovery works when writing an illegal abbreviation
// index. Show success by Dumping fixed bitcode.
TEST(NaClMungeWriteErrorTests, RecoverWhenParsingBadAbbreviationIndex) {
- NaClObjDumpMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClObjDumpMunger Munger(ARRAY_TERM(BitcodeRecords));
Munger.setTryToRecoverOnWrite(true);
- EXPECT_TRUE(Munger.runTest(ARRAY_ARGS(AbbrevIndex4VoidTypeEdit)));
+ EXPECT_TRUE(Munger.runTest(ARRAY(AbbrevIndex4VoidTypeEdit)));
std::string Results(
"Error (Block 17): Uses illegal abbreviation index: 4: [2]\n");
Results.append(ExpectedDump);
@@ -301,9 +289,9 @@ TEST(NaClMungeWriteErrorTests, RecoverWhenParsingBadAbbreviationIndex) {
// in the corresponding enter block. Show success by dumping the fixed
// bitcode.
TEST(NaClMungeWriteErrorTests, RecoverTooManyLocalAbbreviations) {
- NaClObjDumpMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClObjDumpMunger Munger(ARRAY_TERM(BitcodeRecords));
Munger.setTryToRecoverOnWrite(true);
- Munger.munge(ARRAY_ARGS(UseLocalRetVoidAbbrevEdits));
+ Munger.munge(ARRAY(UseLocalRetVoidAbbrevEdits));
EXPECT_TRUE(Munger.runTest());
std::string Results(
@@ -320,7 +308,7 @@ TEST(NaClMungeWriteErrorTests, RecoverTooManyLocalAbbreviations) {
// enter blocks than exit blocks. Show success by dumping fixed
// bitcode.
TEST(NaClMungeWriteErrorTests, RecoverTooManyEnterBlocks) {
- NaClObjDumpMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClObjDumpMunger Munger(ARRAY_TERM(BitcodeRecords));
// Remove all but first two records (i.e. two enter blocks).
NaClMungedBitcode &MungedBitcode = Munger.getMungedBitcode();
for (size_t i = 2; i < MungedBitcode.getBaseRecords().size(); ++i) {
@@ -347,7 +335,7 @@ TEST(NaClMungeWriteErrorTests, RecoverTooManyEnterBlocks) {
// enter blocks than exit blocks. Show success by dumping the fixed
// bitcode.
TEST(NaClMungeWriteErrorTests, RecoverTooManyExitBlocks) {
- NaClObjDumpMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClObjDumpMunger Munger(ARRAY_TERM(BitcodeRecords));
// Add two exit blocks.
NaClMungedBitcode &MungedBitcode = Munger.getMungedBitcode();
NaClRecordVector Values;
@@ -369,7 +357,7 @@ TEST(NaClMungeWriteErrorTests, RecoverTooManyExitBlocks) {
// Show that error recovery works when writing a bitcode record that
// isn't in any block. Show success by showing fixed bitcode records.
TEST(NaClMungeWriteErrorTests, RecoverWriteRecordOutsideBlock) {
- NaClWriteMunger Munger(ARRAY_ARGS_TERM(BitcodeRecords));
+ NaClWriteMunger Munger(ARRAY_TERM(BitcodeRecords));
NaClMungedBitcode &MungedBitcode = Munger.getMungedBitcode();
NaClRecordVector Values;
Values.push_back(4);
@@ -401,4 +389,4 @@ TEST(NaClMungeWriteErrorTests, RecoverWriteRecordOutsideBlock) {
Munger.getTestResults());
}
-} // end of anonymous namespace.
+} // end of namespace naclmungetest
« no previous file with comments | « unittests/Bitcode/NaClMungeTest.h ('k') | unittests/Bitcode/NaClMungedBitcodeTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698