[Python-checkins] r85470 - in python/branches/release27-maint: Lib/test/regrtest.py Lib/test/test_support.py

antoine.pitrou python-checkins at python.org
Thu Oct 14 13:15:50 CEST 2010


Author: antoine.pitrou
Date: Thu Oct 14 13:15:50 2010
New Revision: 85470

Log:
Merged revisions 85469 via svnmerge from 
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
........


Modified:
   python/branches/release27-maint/   (props changed)
   python/branches/release27-maint/Lib/test/regrtest.py
   python/branches/release27-maint/Lib/test/test_support.py

Modified: python/branches/release27-maint/Lib/test/regrtest.py
==============================================================================
--- python/branches/release27-maint/Lib/test/regrtest.py	(original)
+++ python/branches/release27-maint/Lib/test/regrtest.py	Thu Oct 14 13:15:50 2010
@@ -365,9 +365,6 @@
         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 @@
                 )
                 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 @@
                         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'))

Modified: python/branches/release27-maint/Lib/test/test_support.py
==============================================================================
--- python/branches/release27-maint/Lib/test/test_support.py	(original)
+++ python/branches/release27-maint/Lib/test/test_support.py	Thu Oct 14 13:15:50 2010
@@ -1199,3 +1199,22 @@
             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


More information about the Python-checkins mailing list