]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-109566: regrtest doesn't enable --rerun if --python is used (#109969)
authorVictor Stinner <vstinner@python.org>
Wed, 27 Sep 2023 14:09:23 +0000 (16:09 +0200)
committerGitHub <noreply@github.com>
Wed, 27 Sep 2023 14:09:23 +0000 (16:09 +0200)
regrtest: --fast-ci and --slow-ci options no longer enable --rerun if
the --python option is used.

Lib/test/libregrtest/cmdline.py
Lib/test/test_regrtest.py

index c180bb76222a891ec497c689d8e1b2cefa24b3c4..0a863561d5273def1e49c3908124d0472c1f93ac 100644 (file)
@@ -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:
index e0568cb2a91bc2df8534952df2eedcc820a23d9d..da1406def555433ce97356fdee73f84bd4489e61 100644 (file)
@@ -374,7 +374,7 @@ class ParseArgsTestCase(unittest.TestCase):
         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 @@ class ParseArgsTestCase(unittest.TestCase):
         # 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 @@ class ParseArgsTestCase(unittest.TestCase):
         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']