summaryrefslogtreecommitdiffstats
path: root/Lib/test/libregrtest
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-05-28 19:03:43 (GMT)
committerGitHub <noreply@github.com>2018-05-28 19:03:43 (GMT)
commitc6c05d0e69cd5a7d0205019c29a1236b7bf3f5b9 (patch)
treeadff62588aa30f12accab5d24bee4a82e423010a /Lib/test/libregrtest
parentdbf102271fcc316f353c7e0a283811b661d128f2 (diff)
downloadcpython-c6c05d0e69cd5a7d0205019c29a1236b7bf3f5b9.zip
cpython-c6c05d0e69cd5a7d0205019c29a1236b7bf3f5b9.tar.gz
cpython-c6c05d0e69cd5a7d0205019c29a1236b7bf3f5b9.tar.bz2
regrtest: repeat summary after re-run (GH-7159)
Using -w, when failing tests are re-run in verbose mode, display again the tests results at the end.
Diffstat (limited to 'Lib/test/libregrtest')
-rw-r--r--Lib/test/libregrtest/main.py25
1 files changed, 19 insertions, 6 deletions
diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py
index ce01c8c..1ab47bf 100644
--- a/Lib/test/libregrtest/main.py
+++ b/Lib/test/libregrtest/main.py
@@ -88,6 +88,7 @@ class Regrtest:
self.skipped = []
self.resource_denieds = []
self.environment_changed = []
+ self.rerun = []
self.interrupted = False
# used by --slow
@@ -283,8 +284,10 @@ class Regrtest:
self.ns.verbose3 = False
self.ns.match_tests = None
+ print()
print("Re-running failed tests in verbose mode")
- for test in self.bad[:]:
+ self.rerun = self.bad[:]
+ for test in self.rerun:
print("Re-running test %r in verbose mode" % test, flush=True)
try:
self.ns.verbose = True
@@ -302,22 +305,32 @@ class Regrtest:
print(count(len(self.bad), 'test'), "failed again:")
printlist(self.bad)
+ self.display_result()
+
def display_result(self):
+ # If running the test suite for PGO then no one cares about results.
+ if self.ns.pgo:
+ return
+
+ print()
+ print("== Tests result ==")
+
if self.interrupted:
- # print a newline after ^C
print()
+ # print a newline after ^C
print("Test suite interrupted by signal SIGINT.")
executed = set(self.good) | set(self.bad) | set(self.skipped)
omitted = set(self.selected) - executed
print(count(len(omitted), "test"), "omitted:")
printlist(omitted)
- # If running the test suite for PGO then no one cares about
- # results.
- if self.ns.pgo:
- return
+ if self.rerun:
+ print()
+ print(count(len(self.rerun), "test"), "re-run tests:")
+ printlist(self.rerun)
if self.good and not self.ns.quiet:
+ print()
if (not self.bad
and not self.skipped
and not self.interrupted