summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-09-29 23:39:28 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2015-09-29 23:39:28 (GMT)
commitecef622fec197f4377b5b5ec58f80f5fd000210f (patch)
treed0e907554e83437d16d0b623f204d91a428b838c /Lib/test
parent8bb19f094ba6ba12f70a6458729c911d93c85209 (diff)
downloadcpython-ecef622fec197f4377b5b5ec58f80f5fd000210f.zip
cpython-ecef622fec197f4377b5b5ec58f80f5fd000210f.tar.gz
cpython-ecef622fec197f4377b5b5ec58f80f5fd000210f.tar.bz2
Issue #25220, libregrtest: Call setup_python(ns) in the slaves
Slaves (child processes running tests for regrtest -jN) now inherit --memlimit/-M, --threshold/-t and --nowindows/-n options. * -M, -t and -n are now supported with -jN * Factorize code to run tests. * run_test_in_subprocess() now pass the whole "ns" namespace to the child process.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/libregrtest/cmdline.py2
-rw-r--r--Lib/test/libregrtest/main.py5
-rw-r--r--Lib/test/libregrtest/runtest_mp.py8
-rw-r--r--Lib/test/test_regrtest.py1
4 files changed, 7 insertions, 9 deletions
diff --git a/Lib/test/libregrtest/cmdline.py b/Lib/test/libregrtest/cmdline.py
index 19c52a2..e55e53f 100644
--- a/Lib/test/libregrtest/cmdline.py
+++ b/Lib/test/libregrtest/cmdline.py
@@ -295,8 +295,6 @@ def _parse_args(args, **kwargs):
parser.error("-T and -j don't go together!")
if ns.use_mp and ns.findleaks:
parser.error("-l and -j don't go together!")
- if ns.use_mp and ns.memlimit:
- parser.error("-M and -j don't go together!")
if ns.failfast and not (ns.verbose or ns.verbose3):
parser.error("-G/--failfast needs either -v or -W")
diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py
index df2329f..e685970 100644
--- a/Lib/test/libregrtest/main.py
+++ b/Lib/test/libregrtest/main.py
@@ -354,14 +354,15 @@ class Regrtest:
def main(self, tests=None, **kwargs):
self.ns = self.parse_args(kwargs)
- setup_python(self.ns)
-
if self.ns.slaveargs is not None:
from test.libregrtest.runtest_mp import run_tests_slave
run_tests_slave(self.ns.slaveargs)
+
if self.ns.wait:
input("Press any key to continue...")
+ setup_python(self.ns)
+
self.find_tests(tests)
self.run_tests()
diff --git a/Lib/test/libregrtest/runtest_mp.py b/Lib/test/libregrtest/runtest_mp.py
index 74424c1..47393aa 100644
--- a/Lib/test/libregrtest/runtest_mp.py
+++ b/Lib/test/libregrtest/runtest_mp.py
@@ -13,7 +13,8 @@ except ImportError:
print("Multiprocess option requires thread support")
sys.exit(2)
-from test.libregrtest.runtest import runtest, INTERRUPTED, CHILD_ERROR
+from test.libregrtest.runtest import runtest_ns, INTERRUPTED, CHILD_ERROR
+from test.libregrtest.setup import setup_python
# Minimum duration of a test to display its duration or to mention that
@@ -58,11 +59,10 @@ def run_tests_slave(slaveargs):
ns_dict, testname = json.loads(slaveargs)
ns = types.SimpleNamespace(**ns_dict)
- if ns.huntrleaks:
- unittest.BaseTestSuite._cleanup = False
+ setup_python(ns)
try:
- result = runtest_ns(testname, ns.verbose, ns.quiet, ns,
+ result = runtest_ns(testname, ns.verbose, ns,
use_resources=ns.use_resources,
output_on_failure=ns.verbose3,
failfast=ns.failfast,
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
index 54bbfe4..c277e10 100644
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -214,7 +214,6 @@ class ParseArgsTestCase(unittest.TestCase):
self.checkError([opt, 'foo'], 'invalid int value')
self.checkError([opt, '2', '-T'], "don't go together")
self.checkError([opt, '2', '-l'], "don't go together")
- self.checkError([opt, '2', '-M', '4G'], "don't go together")
def test_coverage(self):
for opt in '-T', '--coverage':