Skip to content

Commit e132cde

Browse files
committed
Enhance "Total test files" report
Count "rerun" tests rather than "failed" tests. Also add the number of tests in "run=count/total".
1 parent dda3b23 commit e132cde

File tree

2 files changed

+35
-14
lines changed

2 files changed

+35
-14
lines changed

Lib/test/libregrtest/main.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def __init__(self):
6464
# tests
6565
self.tests = []
6666
self.selected = []
67+
self.all_runtests: list[RunTests] = []
6768

6869
# test results
6970
self.good = []
@@ -350,6 +351,7 @@ def _rerun_failed_tests(self, need_rerun):
350351
# Re-run failed tests
351352
self.log(f"Re-running {len(tests)} failed tests in verbose mode in subprocesses")
352353
runtests = RunTests(tests, match_tests=match_tests, rerun=True)
354+
self.all_runtests.append(runtests)
353355
self._run_tests_mp(runtests)
354356

355357
def rerun_failed_tests(self, need_rerun):
@@ -621,6 +623,7 @@ def run_tests(self):
621623
tests = self.selected
622624
self.set_tests(tests)
623625
runtests = RunTests(tests, forever=self.ns.forever)
626+
self.all_runtests.append(runtests)
624627
if self.ns.use_mp:
625628
self._run_tests_mp(runtests)
626629
else:
@@ -646,6 +649,9 @@ def finalize(self):
646649

647650
def display_summary(self):
648651
duration = time.perf_counter() - self.start_time
652+
first_runtests = self.all_runtests[0]
653+
# re-run tests disables forever
654+
forever = first_runtests.forever
649655

650656
# Total duration
651657
print()
@@ -661,22 +667,25 @@ def display_summary(self):
661667
print(f"Total tests: {' '.join(stats)}")
662668

663669
# Total test files
664-
all_tests = [self.good, self.bad, self.rerun_bad,
670+
all_tests = [self.good, self.bad, self.rerun,
665671
self.skipped,
666672
self.environment_changed, self.run_no_tests]
667673
run = sum(map(len, all_tests))
668-
report = [f'run={run}']
669-
bad = len(self.bad) + len(self.rerun_bad)
674+
text = f'run={run}'
675+
if not forever:
676+
text = f"{text}/{len(self.tests)}"
677+
report = [text]
678+
bad = len(self.bad)
670679
if bad:
671680
report.append(f'failed={bad}')
672681
if self.environment_changed:
673682
report.append(f'env_changed={len(self.environment_changed)}')
674-
skipped = len(self.skipped)
675-
if skipped:
676-
report.append(f'skipped={skipped}')
677-
resource_denied = len(self.resource_denied)
678-
if resource_denied:
679-
report.append(f'resource_denied={resource_denied}')
683+
if self.skipped:
684+
report.append(f'skipped={self.skipped}')
685+
if self.resource_denied:
686+
report.append(f'resource_denied={len(self.resource_denied)}')
687+
if self.rerun:
688+
report.append(f'rerun={len(self.rerun)}')
680689
if self.run_no_tests:
681690
report.append(f'run_no_tests={len(self.run_no_tests)}')
682691
print(f"Total test files: {' '.join(report)}")

Lib/test/test_regrtest.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ def check_executed_tests(self, output, tests, skipped=(), failed=(),
436436
resource_denied=(),
437437
randomize=False, interrupted=False,
438438
fail_env_changed=False,
439-
*, stats):
439+
*, stats, forever=False):
440440
if isinstance(tests, str):
441441
tests = [tests]
442442
if isinstance(skipped, str):
@@ -536,10 +536,18 @@ def list_regex(line_format, tests):
536536

537537
# Total test files
538538
run = len(total_tests) - len(resource_denied)
539+
if rerun is not None:
540+
total_failed = len(rerun_failed)
541+
total_rerun = 1
542+
else:
543+
total_failed = len(failed)
544+
total_rerun = 0
539545
if interrupted:
540546
run = 0
541-
report = [f'run={run}']
542-
total_failed = len(failed) + len(rerun_failed)
547+
text = f'run={run}'
548+
if not forever:
549+
text = f'{text}/{len(tests)}'
550+
report = [text]
543551
if total_failed:
544552
report.append(f'failed={total_failed}')
545553
if env_changed:
@@ -548,6 +556,8 @@ def list_regex(line_format, tests):
548556
report.append(f'skipped={len(skipped)}')
549557
if resource_denied:
550558
report.append(f'resource_denied={len(resource_denied)}')
559+
if total_rerun:
560+
report.append(f'rerun={total_rerun}')
551561
if run_no_tests:
552562
report.append(f'run_no_tests={len(run_no_tests)}')
553563
line = fr'Total test files: {" ".join(report)}'
@@ -958,15 +968,17 @@ def test_run(self):
958968
# --forever
959969
output = self.run_tests('--forever', test, exitcode=EXITCODE_BAD_TEST)
960970
self.check_executed_tests(output, [test]*3, failed=test,
961-
stats=TestStats(3, 1))
971+
stats=TestStats(3, 1),
972+
forever=True)
962973

963974
# --forever --rerun
964975
output = self.run_tests('--forever', '--rerun', test, exitcode=0)
965976
self.check_executed_tests(output, [test]*3,
966977
rerun=Rerun(test,
967978
match='test_run',
968979
success=True),
969-
stats=TestStats(4, 1))
980+
stats=TestStats(4, 1),
981+
forever=True)
970982

971983
def check_leak(self, code, what):
972984
test = self.create_test('huntrleaks', code=code)

0 commit comments

Comments
 (0)