]> granicus.if.org Git - python/commit
bpo-31173: Rewrite WSTOPSIG test of test_subprocess (#3055)
authorVictor Stinner <victor.stinner@gmail.com>
Thu, 10 Aug 2017 10:37:39 +0000 (12:37 +0200)
committerGitHub <noreply@github.com>
Thu, 10 Aug 2017 10:37:39 +0000 (12:37 +0200)
commit7b7c6dcfff6a35333988a3c74c895ed19dff2e09
tree4de55c7bfde202d1c27348c5575816286906bcf0
parent3b0f620c1a2a21272a9e2aeca6ca1d1ac10f8162
bpo-31173: Rewrite WSTOPSIG test of test_subprocess (#3055)

The current test_child_terminated_in_stopped_state() function test
creates a child process which calls ptrace(PTRACE_TRACEME, 0, 0) and
then crash (SIGSEGV). The problem is that calling os.waitpid() in the
parent process is not enough to close the process: the child process
remains alive and so the unit test leaks a child process in a
strange state. Closing the child process requires non-trivial code,
maybe platform specific.

Remove the functional test and replaces it with an unit test which
mocks os.waitpid() using a new _testcapi.W_STOPCODE() function to
test the WIFSTOPPED() path.
Lib/test/test_subprocess.py
Modules/_testcapimodule.c