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.
This commit is contained in:
Fred Drake 2001-05-29 17:10:51 +00:00
parent 4f1e495fa0
commit e51fe8d0a3
1 changed files with 19 additions and 1 deletions

View File

@ -230,7 +230,7 @@ def runtest(test, generate, verbose, quiet, testdir = None):
outputfile = os.path.join(outputdir, test) outputfile = os.path.join(outputdir, test)
try: try:
if generate: if generate:
cfp = open(outputfile, "w") cfp = StringIO.StringIO()
elif verbose: elif verbose:
cfp = sys.stdout cfp = sys.stdout
else: else:
@ -273,6 +273,24 @@ def runtest(test, generate, verbose, quiet, testdir = None):
traceback.print_exc(file=sys.stdout) traceback.print_exc(file=sys.stdout)
return 0 return 0
else: 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 return 1
def findtestdir(): def findtestdir():