From 293954dd763b8ee4522c303095fa0e254d82cf28 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Wed, 23 Mar 2011 23:01:49 +0100 Subject: [PATCH 1/2] Issue #11653: fix -W with -j in regrtest --- Lib/test/regrtest.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 238f2760093..a18b7a2e617 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -535,7 +535,7 @@ def tests_and_args(): args_tuple = ( (test, verbose, quiet), dict(huntrleaks=huntrleaks, use_resources=use_resources, - debug=debug) + debug=debug, rerun_failed=verbose3) ) yield (test, args_tuple) pending = tests_and_args() @@ -609,11 +609,9 @@ def work(): globals=globals(), locals=vars()) else: try: - result = runtest(test, verbose, quiet, huntrleaks, debug) + result = runtest(test, verbose, quiet, huntrleaks, debug, + rerun_failed=verbose3) accumulate_result(test, result) - if verbose3 and result[0] == FAILED: - print("Re-running test {} in verbose mode".format(test)) - runtest(test, True, quiet, huntrleaks, debug) except KeyboardInterrupt: interrupted = True break @@ -758,7 +756,8 @@ def restore_stdout(): atexit.register(restore_stdout) def runtest(test, verbose, quiet, - huntrleaks=False, debug=False, use_resources=None): + huntrleaks=False, debug=False, use_resources=None, + rerun_failed=False): """Run a single test. test -- the name of the test @@ -767,6 +766,7 @@ def runtest(test, verbose, quiet, test_times -- a list of (time, test_name) pairs huntrleaks -- run multiple times to test for leaks; requires a debug build; a triple corresponding to -R's three arguments + rerun_failed -- if true, re-run in verbose mode when failed Returns one of the test result constants: INTERRUPTED KeyboardInterrupt when run under -j @@ -781,7 +781,14 @@ def runtest(test, verbose, quiet, if use_resources is not None: support.use_resources = use_resources try: - return runtest_inner(test, verbose, quiet, huntrleaks, debug) + result = runtest_inner(test, verbose, quiet, huntrleaks, debug) + if result[0] == FAILED and rerun_failed: + cleanup_test_droppings(test, verbose) + sys.stdout.flush() + sys.stderr.flush() + print("Re-running test {} in verbose mode".format(test)) + runtest(test, True, quiet, huntrleaks, debug) + return result finally: cleanup_test_droppings(test, verbose) From e44b1258eabf62034818034c070a7581ff23606c Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Wed, 23 Mar 2011 23:02:31 +0100 Subject: [PATCH 2/2] Add NEWS entry for 9aa6097131ef --- Misc/NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Misc/NEWS b/Misc/NEWS index 5589daf850e..2c79a71abec 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -161,6 +161,8 @@ Tools/Demos Tests ----- +- Issue #11653: fix -W with -j in regrtest. + - Issue #11577: improve test coverage of binhex.py. Patch by Arkady Koplyarov. - Issue #11578: added test for the timeit module. Patch Michael Henry.