diff options
Diffstat (limited to 'Lib')
-rwxr-xr-x | Lib/test/regrtest.py | 8 | ||||
-rw-r--r-- | Lib/test/support.py | 19 |
2 files changed, 22 insertions, 5 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 55c73e2..64d0a7c 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -391,9 +391,6 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, usage("-T and -j don't go together!") if use_mp and findleaks: usage("-l and -j don't go together!") - if use_mp and max(sys.flags): - # TODO: inherit the environment and the flags - print("Warning: flags and environment variables are ignored with -j option") good = [] bad = [] @@ -534,6 +531,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, ) yield (test, args_tuple) pending = tests_and_args() + opt_args = support.args_from_interpreter_flags() + base_cmd = [sys.executable] + opt_args + ['-m', 'test.regrtest'] def work(): # A worker thread. try: @@ -544,8 +543,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, output.put((None, None, None, None)) return # -E is needed by some tests, e.g. test_import - popen = Popen([sys.executable, '-E', '-m', 'test.regrtest', - '--slaveargs', json.dumps(args_tuple)], + popen = Popen(base_cmd + ['--slaveargs', json.dumps(args_tuple)], stdout=PIPE, stderr=PIPE, universal_newlines=True, close_fds=(os.name != 'nt')) diff --git a/Lib/test/support.py b/Lib/test/support.py index 08ce0a0..1f69317 100644 --- a/Lib/test/support.py +++ b/Lib/test/support.py @@ -1327,3 +1327,22 @@ def strip_python_stderr(stderr): """ stderr = re.sub(br"\[\d+ refs\]\r?\n?$", b"", stderr).strip() return stderr + +def args_from_interpreter_flags(): + """Return a list of command-line arguments reproducing the current + settings in sys.flags.""" + flag_opt_map = { + 'bytes_warning': 'b', + 'dont_write_bytecode': 'B', + 'ignore_environment': 'E', + 'no_user_site': 's', + 'no_site': 'S', + 'optimize': 'O', + 'verbose': 'v', + } + args = [] + for flag, opt in flag_opt_map.items(): + v = getattr(sys.flags, flag) + if v > 0: + args.append('-' + opt * v) + return args |