diff --git a/tests/run-tests.py b/tests/run-tests.py index 4b82d1a84db879829089d1273af978057a473ac3_dGVzdHMvcnVuLXRlc3RzLnB5..2f597243e1d7f67c9993c23800fb63f5658f44e7_dGVzdHMvcnVuLXRlc3RzLnB5 100755 --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -67,6 +67,13 @@ print >> sys.stderr, 'ERROR: cannot mix -interactive and --jobs > 1' sys.exit(1) +def rename(src, dst): + """Like os.rename(), trade atomicity and opened files friendliness + for existing destination support. + """ + shutil.copy(src, dst) + os.remove(src) + def vlog(*msg): if verbose: for m in msg: @@ -528,7 +535,7 @@ print "Accept this change? [n] ", answer = sys.stdin.readline().strip() if answer.lower() in "y yes".split(): - os.rename(test + ".err", test + ".out") + rename(test + ".err", test + ".out") tested += 1 continue failed += 1