From 01e743d704aeefd1c1825a6a96d0c766c5516fb1 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 31 Mar 2020 17:25:56 +0200 Subject: [PATCH] bpo-40003: test.bisect_cmd copies Python options (GH-19246) test.bisect_cmd now copies Python command line options like -O or -W. Moreover, emit a warning if test.bisect_cmd is used with -w/--verbose2 option. --- Lib/test/bisect_cmd.py | 16 ++++++++++++++-- .../2020-03-31-16-07-15.bpo-40003.SOruLY.rst | 3 +++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Tests/2020-03-31-16-07-15.bpo-40003.SOruLY.rst diff --git a/Lib/test/bisect_cmd.py b/Lib/test/bisect_cmd.py index cb06480e7c9..0bdd7a43c03 100755 --- a/Lib/test/bisect_cmd.py +++ b/Lib/test/bisect_cmd.py @@ -47,8 +47,16 @@ def format_shell_args(args): return ' '.join(args) +def python_cmd(): + cmd = [sys.executable] + cmd.extend(subprocess._args_from_interpreter_flags()) + cmd.extend(subprocess._optim_args_from_interpreter_flags()) + return cmd + + def list_cases(args): - cmd = [sys.executable, '-m', 'test', '--list-cases'] + cmd = python_cmd() + cmd.extend(['-m', 'test', '--list-cases']) cmd.extend(args.test_args) proc = subprocess.run(cmd, stdout=subprocess.PIPE, @@ -68,7 +76,8 @@ def run_tests(args, tests, huntrleaks=None): try: write_tests(tmp, tests) - cmd = [sys.executable, '-m', 'test', '--matchfile', tmp] + cmd = python_cmd() + cmd.extend(['-m', 'test', '--matchfile', tmp]) cmd.extend(args.test_args) print("+ %s" % format_shell_args(cmd)) proc = subprocess.run(cmd) @@ -100,6 +109,9 @@ def parse_args(): def main(): args = parse_args() + if '-w' in args.test_args or '--verbose2' in args.test_args: + print("WARNING: -w/--verbose2 option should not be used to bisect!") + print() if args.input: with open(args.input) as fp: diff --git a/Misc/NEWS.d/next/Tests/2020-03-31-16-07-15.bpo-40003.SOruLY.rst b/Misc/NEWS.d/next/Tests/2020-03-31-16-07-15.bpo-40003.SOruLY.rst new file mode 100644 index 00000000000..7ddb90121d8 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-03-31-16-07-15.bpo-40003.SOruLY.rst @@ -0,0 +1,3 @@ +``test.bisect_cmd`` now copies Python command line options like ``-O`` or +``-W``. Moreover, emit a warning if ``test.bisect_cmd`` is used with +``-w``/``--verbose2`` option.