]> granicus.if.org Git - python/commitdiff
runtest(): When generating output, if the result is a single line with the
authorFred Drake <fdrake@acm.org>
Tue, 29 May 2001 17:10:51 +0000 (17:10 +0000)
committerFred Drake <fdrake@acm.org>
Tue, 29 May 2001 17:10:51 +0000 (17:10 +0000)
    name of the test, only write the output file if it already exists (and
    tell the user to consider removing it).  This avoids the generation of
    unnecessary turds.

Lib/test/regrtest.py

index 9c832215e4d92125a70957d1ede8aff4d78982ba..45880366ad3ac5ea36ebbce41abc14f013676367 100755 (executable)
@@ -230,7 +230,7 @@ def runtest(test, generate, verbose, quiet, testdir = None):
     outputfile = os.path.join(outputdir, test)
     try:
         if generate:
-            cfp = open(outputfile, "w")
+            cfp = StringIO.StringIO()
         elif verbose:
             cfp = sys.stdout
         else:
@@ -273,6 +273,24 @@ def runtest(test, generate, verbose, quiet, testdir = None):
             traceback.print_exc(file=sys.stdout)
         return 0
     else:
+        if generate:
+            output = cfp.getvalue()
+            if output == test + "\n":
+                if os.path.exists(outputfile):
+                    # Write it since it already exists (and the contents
+                    # may have changed), but let the user know it isn't
+                    # needed:
+                    fp = open(outputfile, "w")
+                    fp.write(output)
+                    fp.close()
+                    print "output file", outputfile, \
+                          "is no longer needed; consider removing it"
+                # else:
+                #     We don't need it, so don't create it.
+            else:
+                fp = open(outputfile, "w")
+                fp.write(output)
+                fp.close()
         return 1
 
 def findtestdir():