Unverified Kaydet (Commit) 58ed7307 authored tarafından Pablo Galindo's avatar Pablo Galindo Kaydeden (comit) GitHub

bpo-33873: Fix bug in `runtest.py` and add checks for invalid `-R` parameters (GH-7735)

Fix bug in `Lib/test/libregrtest/runtest.py` that makes running tests an extra time than the specified number of runs.

Add check for invalid --huntrleaks/-R parameters.
üst 866c168a
...@@ -533,6 +533,15 @@ class Regrtest: ...@@ -533,6 +533,15 @@ class Regrtest:
def _main(self, tests, kwargs): def _main(self, tests, kwargs):
self.ns = self.parse_args(kwargs) self.ns = self.parse_args(kwargs)
if self.ns.huntrleaks:
warmup, repetitions, _ = self.ns.huntrleaks
if warmup < 1 or repetitions < 1:
msg = ("Invalid values for the --huntrleaks/-R parameters. The "
"number of warmups and repetitions must be at least 1 "
"each (1:1).")
print(msg, file=sys.stderr, flush=True)
sys.exit(2)
if self.ns.slaveargs is not None: if self.ns.slaveargs is not None:
from test.libregrtest.runtest_mp import run_tests_slave from test.libregrtest.runtest_mp import run_tests_slave
run_tests_slave(self.ns.slaveargs) run_tests_slave(self.ns.slaveargs)
......
...@@ -173,9 +173,10 @@ def runtest_inner(ns, test, display_failure=True): ...@@ -173,9 +173,10 @@ def runtest_inner(ns, test, display_failure=True):
if loader.errors: if loader.errors:
raise Exception("errors while loading tests") raise Exception("errors while loading tests")
support.run_unittest(tests) support.run_unittest(tests)
test_runner()
if ns.huntrleaks: if ns.huntrleaks:
refleak = dash_R(the_module, test, test_runner, ns.huntrleaks) refleak = dash_R(the_module, test, test_runner, ns.huntrleaks)
else:
test_runner()
test_time = time.time() - start_time test_time = time.time() - start_time
post_test_cleanup() post_test_cleanup()
except support.ResourceDenied as msg: except support.ResourceDenied as msg:
......
Fix a bug in ``regrtest`` that caused an extra test to run if
--huntrleaks/-R was used. Exit with error in case that invalid
parameters are specified to --huntrleaks/-R (at least one warmup
run and one repetition must be used).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment