[analyzer] Testing infrastructure: Flush output after every print
statement.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147862 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/analyzer/SATestBuild.py b/utils/analyzer/SATestBuild.py
index a3a6311..79092d6 100755
--- a/utils/analyzer/SATestBuild.py
+++ b/utils/analyzer/SATestBuild.py
@@ -78,6 +78,16 @@
 
 IsReferenceBuild = False
 
+# Make sure we flush the output after every print statement.
+class flushfile(object):
+    def __init__(self, f):
+        self.f = f
+    def write(self, x):
+        self.f.write(x)
+        self.f.flush()
+
+sys.stdout = flushfile(sys.stdout)
+
 def getProjectMapPath():
     ProjectMapPath = os.path.join(os.path.abspath(os.curdir), 
                                   ProjectMapFile)
@@ -397,7 +407,6 @@
                 print "Error: Second entry in the ProjectMapFile should be 0 or 1."
                 raise Exception()              
             testProject(I[0], InIsReferenceBuild, int(I[1]))
-            sys.stdout.flush()
     except:
         print "Error occurred. Premature termination."
         raise