From b61593e5466173b046d95457ee763350bcea52be Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 27 Sep 2023 15:08:48 +0200 Subject: [PATCH] gh-109566: regrtest doesn't enable --rerun if --python is used regrtest: --fast-ci and --slow-ci options no longer enable --rerun if the --python option is used. --- Lib/test/libregrtest/cmdline.py | 3 ++- Lib/test/test_regrtest.py | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Lib/test/libregrtest/cmdline.py b/Lib/test/libregrtest/cmdline.py index c180bb76222a89..0a863561d5273d 100644 --- a/Lib/test/libregrtest/cmdline.py +++ b/Lib/test/libregrtest/cmdline.py @@ -420,7 +420,8 @@ def _parse_args(args, **kwargs): ns.randomize = True ns.fail_env_changed = True ns.fail_rerun = True - ns.rerun = True + if ns.python is None: + ns.rerun = True ns.print_slow = True ns.verbose3 = True if MS_WINDOWS: diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py index e0568cb2a91bc2..da1406def55543 100644 --- a/Lib/test/test_regrtest.py +++ b/Lib/test/test_regrtest.py @@ -374,7 +374,7 @@ def test_unknown_option(self): self.checkError(['--unknown-option'], 'unrecognized arguments: --unknown-option') - def check_ci_mode(self, args, use_resources): + def check_ci_mode(self, args, use_resources, rerun=True): ns = cmdline._parse_args(args) if utils.MS_WINDOWS: self.assertTrue(ns.nowindows) @@ -383,7 +383,7 @@ def check_ci_mode(self, args, use_resources): # which has an unclear API regrtest = main.Regrtest(ns) self.assertEqual(regrtest.num_workers, -1) - self.assertTrue(regrtest.want_rerun) + self.assertEqual(regrtest.want_rerun, rerun) self.assertTrue(regrtest.randomize) self.assertIsNone(regrtest.random_seed) self.assertTrue(regrtest.fail_env_changed) @@ -400,6 +400,14 @@ def test_fast_ci(self): regrtest = self.check_ci_mode(args, use_resources) self.assertEqual(regrtest.timeout, 10 * 60) + def test_fast_ci_python_cmd(self): + args = ['--fast-ci', '--python', 'python -X dev'] + use_resources = sorted(cmdline.ALL_RESOURCES) + use_resources.remove('cpu') + regrtest = self.check_ci_mode(args, use_resources, rerun=False) + self.assertEqual(regrtest.timeout, 10 * 60) + self.assertEqual(regrtest.python_cmd, ('python', '-X', 'dev')) + def test_fast_ci_resource(self): # it should be possible to override resources args = ['--fast-ci', '-u', 'network']