runtest(): When generating output, if the result is a single line with the
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.
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 9c83221..4588036 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -230,7 +230,7 @@
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 @@
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():