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
diff --git a/Doc/library/test.rst b/Doc/library/test.rst
index 54ad620d..c33465d 100644
--- a/Doc/library/test.rst
+++ b/Doc/library/test.rst
@@ -825,6 +825,21 @@
target of the "as" clause, if there is one.
+.. function:: wait_process(pid, *, exitcode, timeout=None)
+
+ Wait until process *pid* completes and check that the process exit code is
+ *exitcode*.
+
+ Raise an :exc:`AssertionError` if the process exit code is not equal to
+ *exitcode*.
+
+ If the process runs longer than *timeout* seconds (:data:`SHORT_TIMEOUT` by
+ default), kill the process and raise an :exc:`AssertionError`. The timeout
+ feature is not available on Windows.
+
+ .. versionadded:: 3.9
+
+
.. function:: wait_threads_exit(timeout=60.0)
Context manager to wait until all threads created in the ``with`` statement