Index: unittest/BitcodeMunge.cpp |
diff --git a/unittest/BitcodeMunge.cpp b/unittest/BitcodeMunge.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a6d283861db4d7e826b290fb474f22a43acb217e |
--- /dev/null |
+++ b/unittest/BitcodeMunge.cpp |
@@ -0,0 +1,40 @@ |
+//===- BitcodeMunge.cpp - Subzero Bitcode Munger ----------------*- C++ -*-===// |
+// |
+// The LLVM Compiler Infrastructure |
+// |
+// This file is distributed under the University of Illinois Open Source |
+// License. See LICENSE.TXT for details. |
+// |
+//===----------------------------------------------------------------------===// |
+// |
+// Test harness for testing malformed bitcode files in Subzero. |
+// |
+//===----------------------------------------------------------------------===// |
+ |
+#include "BitcodeMunge.h" |
+#include "IceCfg.h" |
+#include "IceClFlags.h" |
+#include "PNaClTranslator.h" |
+#include "IceTypes.h" |
+ |
+namespace IceTest { |
+ |
+bool IceTest::SubzeroBitcodeMunger::runTest( |
+ const char* TestName, const uint64_t Munges[], size_t MungeSize) { |
+ const bool AddHeader = true; |
+ setupTest(TestName, Munges, MungeSize, AddHeader); |
+ |
+ Ice::ClFlags Flags; |
+ Flags.AllowErrorRecovery = true; |
+ Flags.GenerateUnitTestMessages = true; |
+ Ice::GlobalContext Ctx(DumpStream, DumpStream, nullptr, |
+ Ice::IceV_Instructions, Ice::Target_X8632, |
+ Ice::Opt_m1, "", Flags); |
+ Ice::PNaClTranslator Translator(&Ctx, Flags); |
+ Translator.translateBuffer(TestName, MungedInput.get()); |
+ |
+ cleanupTest(); |
+ return Translator.getErrorStatus() == 0; |
+} |
+ |
+} // end of namespace IceTest |