diff options
| author | Martin Panter <vadmium+py@gmail.com> | 2015-12-05 02:27:58 (GMT) |
|---|---|---|
| committer | Martin Panter <vadmium+py@gmail.com> | 2015-12-05 02:27:58 (GMT) |
| commit | 07efcd50071a39dd49c677de5551ad542b1be3c3 (patch) | |
| tree | 31b1b11661b1d61fea2495c4061ee8efea3fd4b8 /Lib/test/test_subprocess.py | |
| parent | aa3e69e57f7a23b90d1ed121f6e5946e4b2c52bc (diff) | |
| parent | 6a77c2d978277fc9597baaa6ff612666332bfdca (diff) | |
| download | cpython-07efcd50071a39dd49c677de5551ad542b1be3c3.zip cpython-07efcd50071a39dd49c677de5551ad542b1be3c3.tar.gz cpython-07efcd50071a39dd49c677de5551ad542b1be3c3.tar.bz2 | |
Issue #25764: Merge subprocess fix from 3.5
Diffstat (limited to 'Lib/test/test_subprocess.py')
| -rw-r--r-- | Lib/test/test_subprocess.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index e06beed..0448d64 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -1512,6 +1512,22 @@ class POSIXProcessTestCase(BaseTestCase): if not enabled: gc.disable() + def test_preexec_fork_failure(self): + # The internal code did not preserve the previous exception when + # re-enabling garbage collection + try: + from resource import getrlimit, setrlimit, RLIMIT_NPROC + except ImportError as err: + self.skipTest(err) # RLIMIT_NPROC is specific to Linux and BSD + limits = getrlimit(RLIMIT_NPROC) + [_, hard] = limits + setrlimit(RLIMIT_NPROC, (0, hard)) + self.addCleanup(setrlimit, RLIMIT_NPROC, limits) + # Forking should raise EAGAIN, translated to BlockingIOError + with self.assertRaises(BlockingIOError): + subprocess.call([sys.executable, '-c', ''], + preexec_fn=lambda: None) + def test_args_string(self): # args is a string fd, fname = tempfile.mkstemp() |
