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.
diff --git a/Lib/test/bisect_cmd.py b/Lib/test/bisect_cmd.py
index cb06480..0bdd7a4 100755
--- a/Lib/test/bisect_cmd.py
+++ b/Lib/test/bisect_cmd.py
@@ -47,8 +47,16 @@
     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 @@
     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 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: