diff options
author | Christian Heimes <christian@python.org> | 2022-06-21 12:42:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-21 12:42:32 (GMT) |
commit | 0ff7b996f5d836e63cdaf652c7aa734285261096 (patch) | |
tree | cc396a264ca3602505483fec8efd99addbe510b1 | |
parent | 94eeac03dc8c643ff050e7d0d306637d9556f798 (diff) | |
download | cpython-0ff7b996f5d836e63cdaf652c7aa734285261096.zip cpython-0ff7b996f5d836e63cdaf652c7aa734285261096.tar.gz cpython-0ff7b996f5d836e63cdaf652c7aa734285261096.tar.bz2 |
gh-94052: Don't re-run failed tests with --python option (#94054)
-rw-r--r-- | Lib/test/libregrtest/cmdline.py | 8 | ||||
-rw-r--r-- | Lib/test/libregrtest/main.py | 11 | ||||
-rw-r--r-- | Lib/test/libregrtest/runtest_mp.py | 4 |
3 files changed, 17 insertions, 6 deletions
diff --git a/Lib/test/libregrtest/cmdline.py b/Lib/test/libregrtest/cmdline.py index 1ac63af..ebe5792 100644 --- a/Lib/test/libregrtest/cmdline.py +++ b/Lib/test/libregrtest/cmdline.py @@ -1,5 +1,6 @@ import argparse import os +import shlex import sys from test.support import os_helper @@ -372,8 +373,11 @@ def _parse_args(args, **kwargs): parser.error("-s and -f don't go together!") if ns.use_mp is not None and ns.trace: parser.error("-T and -j don't go together!") - if ns.python is not None and ns.use_mp is None: - parser.error("-p requires -j!") + if ns.python is not None: + if ns.use_mp is None: + parser.error("-p requires -j!") + # The "executable" may be two or more parts, e.g. "node python.js" + ns.python = shlex.split(ns.python) if ns.failfast and not (ns.verbose or ns.verbose3): parser.error("-G/--failfast needs either -v or -W") if ns.pgo and (ns.verbose or ns.verbose2 or ns.verbose3): diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py index cc8ba05..655e4d2 100644 --- a/Lib/test/libregrtest/main.py +++ b/Lib/test/libregrtest/main.py @@ -306,13 +306,22 @@ class Regrtest: printlist(self.skipped, file=sys.stderr) def rerun_failed_tests(self): + self.log() + + if self.ns.python: + # Temp patch for https://github.com/python/cpython/issues/94052 + self.log( + "Re-running failed tests is not supported with --python " + "host runner option." + ) + return + self.ns.verbose = True self.ns.failfast = False self.ns.verbose3 = False self.first_result = self.get_tests_result() - self.log() self.log("Re-running failed tests in verbose mode") rerun_list = list(self.need_rerun) self.need_rerun.clear() diff --git a/Lib/test/libregrtest/runtest_mp.py b/Lib/test/libregrtest/runtest_mp.py index 71ababd..6ebabb8 100644 --- a/Lib/test/libregrtest/runtest_mp.py +++ b/Lib/test/libregrtest/runtest_mp.py @@ -2,7 +2,6 @@ import faulthandler import json import os.path import queue -import shlex import signal import subprocess import sys @@ -59,8 +58,7 @@ def run_test_in_subprocess(testname: str, ns: Namespace, tmp_dir: str) -> subpro worker_args = (ns_dict, testname) worker_args = json.dumps(worker_args) if ns.python is not None: - # The "executable" may be two or more parts, e.g. "node python.js" - executable = shlex.split(ns.python) + executable = ns.python else: executable = [sys.executable] cmd = [*executable, *support.args_from_interpreter_flags(), |