regrtest: display test result (passed, failed, ...)
* in multiprocessing mode: always display the result
* sequential mode: only display the result if the test did not pass
diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py
index 447d99f..e503c13 100644
--- a/Lib/test/libregrtest/main.py
+++ b/Lib/test/libregrtest/main.py
@@ -15,7 +15,7 @@
findtests, runtest,
STDTESTS, NOTTESTS, PASSED, FAILED, ENV_CHANGED, SKIPPED, RESOURCE_DENIED,
INTERRUPTED, CHILD_ERROR,
- PROGRESS_MIN_TIME)
+ PROGRESS_MIN_TIME, format_test_result)
from test.libregrtest.setup import setup_tests
from test import support
try:
@@ -326,7 +326,9 @@
# if on a false return value from main.
cmd = ('result = runtest(self.ns, test); '
'self.accumulate_result(test, result)')
- self.tracer.runctx(cmd, globals=globals(), locals=vars())
+ ns = dict(locals())
+ self.tracer.runctx(cmd, globals=globals(), locals=ns)
+ result = ns['result']
else:
try:
result = runtest(self.ns, test)
@@ -337,10 +339,12 @@
else:
self.accumulate_result(test, result)
+ previous_test = format_test_result(test, result[0])
test_time = time.monotonic() - start_time
if test_time >= PROGRESS_MIN_TIME:
- previous_test = '%s took %.0f sec' % (test, test_time)
- else:
+ previous_test = "%s in %.0f sec" % (previous_test, test_time)
+ elif result[0] == PASSED:
+ # be quiet: say nothing if the test passed shortly
previous_test = None
if self.ns.findleaks: