diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 9c832215e4d..45880366ad3 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -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():