]> granicus.if.org Git - python/commitdiff
Merged revisions 85469 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Thu, 14 Oct 2010 11:15:50 +0000 (11:15 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Thu, 14 Oct 2010 11:15:50 +0000 (11:15 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85469 | antoine.pitrou | 2010-10-14 13:12:00 +0200 (jeu., 14 oct. 2010) | 3 lines

  Inherit interpreter flags in parallel testing
........

Lib/test/regrtest.py
Lib/test/test_support.py

index fc0e823b80caf8095f0c6b0c2fdc05f1f08ce157..2cc9700d47e4edbca910307bad35652b6cfe2f9d 100755 (executable)
@@ -365,9 +365,6 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
         usage(2, "-T and -j don't go together!")
     if use_mp and findleaks:
         usage(2, "-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 = []
@@ -496,6 +493,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
                 )
                 yield (test, args_tuple)
         pending = tests_and_args()
+        opt_args = test_support.args_from_interpreter_flags()
+        base_cmd = [sys.executable] + opt_args + ['-m', 'test.regrtest']
         def work():
             # A worker thread.
             try:
@@ -506,8 +505,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'))
index 970b884b6c32a8f03b4eb3e4684879615c70da47..edf222d5d28e3de2af38e5a0501857cde5b4abf3 100644 (file)
@@ -1199,3 +1199,22 @@ def py3k_bytes(b):
             return b"".join(chr(x) for x in b)
         except TypeError:
             return bytes(b)
+
+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