diff options
-rw-r--r-- | Lib/test/libregrtest/main.py | 9 | ||||
-rw-r--r-- | Lib/test/libregrtest/runtest.py | 3 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Tests/2018-06-16-01-37-31.bpo-33873.d86vab.rst | 4 |
3 files changed, 15 insertions, 1 deletions
diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py index 569d034..e262a7a 100644 --- a/Lib/test/libregrtest/main.py +++ b/Lib/test/libregrtest/main.py @@ -533,6 +533,15 @@ class Regrtest: def _main(self, tests, 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: from test.libregrtest.runtest_mp import run_tests_slave run_tests_slave(self.ns.slaveargs) diff --git a/Lib/test/libregrtest/runtest.py b/Lib/test/libregrtest/runtest.py index 12bf422..3e1afd4 100644 --- a/Lib/test/libregrtest/runtest.py +++ b/Lib/test/libregrtest/runtest.py @@ -173,9 +173,10 @@ def runtest_inner(ns, test, display_failure=True): if loader.errors: raise Exception("errors while loading tests") support.run_unittest(tests) - test_runner() if ns.huntrleaks: refleak = dash_R(the_module, test, test_runner, ns.huntrleaks) + else: + test_runner() test_time = time.time() - start_time post_test_cleanup() except support.ResourceDenied as msg: diff --git a/Misc/NEWS.d/next/Tests/2018-06-16-01-37-31.bpo-33873.d86vab.rst b/Misc/NEWS.d/next/Tests/2018-06-16-01-37-31.bpo-33873.d86vab.rst new file mode 100644 index 0000000..f4f4255 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2018-06-16-01-37-31.bpo-33873.d86vab.rst @@ -0,0 +1,4 @@ +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). |