]> granicus.if.org Git - llvm/commitdiff
[Support] Ensure redirected outputs don't contain output from previous tests.
authorDavid L. Jones <dlj@google.com>
Mon, 13 May 2019 20:32:53 +0000 (20:32 +0000)
committerDavid L. Jones <dlj@google.com>
Mon, 13 May 2019 20:32:53 +0000 (20:32 +0000)
stdout may be buffered, and may not flush on every write. Explicitly flushing
before redirecting the output ensures that the captured output does not contain
output from other tests.

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

unittests/Support/CommandLineTest.cpp

index 2bf07e374940e3b8584bff001fdade539add4c90..4fb20b18d9bf23b7dccb91a7e5cf38dbdfa689a7 100644 (file)
@@ -1085,6 +1085,7 @@ public:
   // Return std::string because the output of a failing EXPECT check is
   // unreadable for StringRef. It also avoids any lifetime issues.
   template <typename... Ts> std::string runTest(Ts... OptionAttributes) {
+    outs().flush();  // flush any output from previous tests
     AutoDeleteFile File;
     {
       OutputRedirector Stdout(fileno(stdout));