mirror of
https://github.com/python/cpython.git
synced 2025-08-25 19:24:42 +00:00
bpo-40094: Add test.support.wait_process() (GH-19254)
Moreover, the following tests now check the child process exit code: * test_os.PtyTests * test_mailbox.test_lock_conflict() * test_tempfile.test_process_awareness() * test_uuid.testIssue8621() * multiprocessing resource tracker tests
This commit is contained in:
parent
400e1dbcad
commit
278c1e159c
19 changed files with 125 additions and 103 deletions
|
@ -3114,12 +3114,10 @@ class POSIXProcessTestCase(BaseTestCase):
|
|||
proc = subprocess.Popen(args)
|
||||
|
||||
# Wait until the real process completes to avoid zombie process
|
||||
pid = proc.pid
|
||||
pid, status = os.waitpid(pid, 0)
|
||||
self.assertEqual(status, 0)
|
||||
support.wait_process(proc.pid, exitcode=0)
|
||||
|
||||
status = _testcapi.W_STOPCODE(3)
|
||||
with mock.patch('subprocess.os.waitpid', return_value=(pid, status)):
|
||||
with mock.patch('subprocess.os.waitpid', return_value=(proc.pid, status)):
|
||||
returncode = proc.wait()
|
||||
|
||||
self.assertEqual(returncode, -3)
|
||||
|
@ -3130,10 +3128,7 @@ class POSIXProcessTestCase(BaseTestCase):
|
|||
proc = subprocess.Popen(ZERO_RETURN_CMD)
|
||||
|
||||
# wait until the process completes without using the Popen APIs.
|
||||
pid, status = os.waitpid(proc.pid, 0)
|
||||
self.assertEqual(pid, proc.pid)
|
||||
self.assertTrue(os.WIFEXITED(status), status)
|
||||
self.assertEqual(os.WEXITSTATUS(status), 0)
|
||||
support.wait_process(proc.pid, exitcode=0)
|
||||
|
||||
# returncode is still None but the process completed.
|
||||
self.assertIsNone(proc.returncode)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue