import argparse
import os
+import shlex
import sys
from test.support import os_helper
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):
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()
import json
import os.path
import queue
-import shlex
import signal
import subprocess
import sys
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(),