Add an -append-exit-code option to bugpoint. This will cause bugpoint to
authorReid Spencer <rspencer@reidspencer.com>
Tue, 28 Nov 2006 07:04:10 +0000 (07:04 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Tue, 28 Nov 2006 07:04:10 +0000 (07:04 +0000)
append "exit <retcode>" to the end of the output file. This is used by
the nightly tester to make bugpoint match the output generated by the
RunSafely.sh script so it doesn't find false positives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31960 91177308-0d34-0410-b5e6-96231b3b80d8

tools/bugpoint/ExecutionDriver.cpp

index 93135efb81559bd8daa147e3efdf09c56056106c..92e7737600426bcd87756976c206eb896690d005 100644 (file)
@@ -56,6 +56,11 @@ namespace {
                    cl::desc("Assume nonzero exit code is failure (default on)"),
                        cl::init(true));
 
+  cl::opt<bool>
+  AppendProgramExitCode("append-exit-code",
+      cl::desc("Append the exit code to the output so it gets diff'd too"),
+      cl::init(false));
+
   cl::opt<std::string>
   InputFile("input", cl::init("/dev/null"),
             cl::desc("Filename to pipe in as stdin (default: /dev/null)"));
@@ -277,6 +282,12 @@ std::string BugDriver::executeProgram(std::string OutputFile,
     }
   }
 
+  if (AppendProgramExitCode) {
+    std::ofstream outFile(OutputFile.c_str(), std::ios_base::app);
+    outFile << "exit " << RetVal << '\n';
+    outFile.close();
+  }
+
   if (ProgramExitedNonzero != 0)
     *ProgramExitedNonzero = (RetVal != 0);