bpo-45118: Fix regrtest second summary for re-run tests (GH-28183) (GH-28214)

Fix regrtest second summary when using -w/--verbose2 command line
option: lists re-run tests in the second test summary.
(cherry picked from commit c4ea45d7d2)

Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
Miss Islington (bot) 2021-09-08 08:09:55 -07:00 committed by GitHub
parent 462c1f0403
commit 7538fe34d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -66,6 +66,7 @@ class Regrtest:
self.resource_denieds = [] self.resource_denieds = []
self.environment_changed = [] self.environment_changed = []
self.run_no_tests = [] self.run_no_tests = []
self.need_rerun = []
self.rerun = [] self.rerun = []
self.first_result = None self.first_result = None
self.interrupted = False self.interrupted = False
@ -116,7 +117,7 @@ class Regrtest:
elif isinstance(result, Failed): elif isinstance(result, Failed):
if not rerun: if not rerun:
self.bad.append(test_name) self.bad.append(test_name)
self.rerun.append(result) self.need_rerun.append(result)
elif isinstance(result, DidNotRun): elif isinstance(result, DidNotRun):
self.run_no_tests.append(test_name) self.run_no_tests.append(test_name)
elif isinstance(result, Interrupted): elif isinstance(result, Interrupted):
@ -312,10 +313,12 @@ class Regrtest:
self.log() self.log()
self.log("Re-running failed tests in verbose mode") self.log("Re-running failed tests in verbose mode")
rerun_list = self.rerun[:] rerun_list = list(self.need_rerun)
self.rerun = [] self.need_rerun.clear()
for result in rerun_list: for result in rerun_list:
test_name = result.name test_name = result.name
self.rerun.append(test_name)
errors = result.errors or [] errors = result.errors or []
failures = result.failures or [] failures = result.failures or []
error_names = [test_full_name.split(" ")[0] for (test_full_name, *_) in errors] error_names = [test_full_name.split(" ")[0] for (test_full_name, *_) in errors]
@ -397,7 +400,7 @@ class Regrtest:
if self.rerun: if self.rerun:
print() print()
print("%s:" % count(len(self.rerun), "re-run test")) print("%s:" % count(len(self.rerun), "re-run test"))
printlist(r.name for r in self.rerun) printlist(self.rerun)
if self.run_no_tests: if self.run_no_tests:
print() print()