Skip to content

Commit

Permalink
pythongh-94052: Don't re-run failed tests with --python option (pytho…
Browse files Browse the repository at this point in the history
…n#94054)

(cherry picked from commit 0ff7b99)
  • Loading branch information
tiran authored and vstinner committed Sep 2, 2023
1 parent cb9c17d commit 70d8b30
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
8 changes: 6 additions & 2 deletions Lib/test/libregrtest/cmdline.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import argparse
import os
import shlex
import sys
from test.support import os_helper

Expand Down Expand Up @@ -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):
Expand Down
11 changes: 10 additions & 1 deletion Lib/test/libregrtest/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -306,13 +306,22 @@ def list_cases(self):
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()
Expand Down
4 changes: 1 addition & 3 deletions Lib/test/libregrtest/runtest_mp.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import json
import os.path
import queue
import shlex
import signal
import subprocess
import sys
Expand Down Expand Up @@ -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(),
Expand Down

0 comments on commit 70d8b30

Please sign in to comment.