summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2017-05-17 14:56:58 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2017-05-17 14:56:58 +0200
commit0c2eb2ab9e644df8e012dd36e3d2994695bab1cc (patch)
treea61dd4e577e0071ca54a3a3ed6c00a1b8a39ff9c
parent7399070ccf25e8e6d92b50b22c6635b5fcdcb2e2 (diff)
downloadpsutil-0c2eb2ab9e644df8e012dd36e3d2994695bab1cc.tar.gz
reap_children(): enforce checks to make sure the process is gone
-rw-r--r--psutil/tests/__init__.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/psutil/tests/__init__.py b/psutil/tests/__init__.py
index 1206abff..f14b1c98 100644
--- a/psutil/tests/__init__.py
+++ b/psutil/tests/__init__.py
@@ -386,7 +386,8 @@ def reap_children(recursive=False):
assert not psutil.pid_exists(pid), pid
assert pid not in psutil.pids(), pid
try:
- psutil.Process(pid)
+ p = psutil.Process(pid)
+ assert not p.is_running(), pid
except psutil.NoSuchProcess:
pass
else:
@@ -404,6 +405,7 @@ def reap_children(recursive=False):
# fds and wiat()ing for them in order to avoid zombies.
while _subprocesses_started:
subp = _subprocesses_started.pop()
+ _pids_started.add(subp.pid)
try:
subp.terminate()
except OSError as err:
@@ -424,7 +426,6 @@ def reap_children(recursive=False):
except OSError as err:
if err.errno != errno.ECHILD:
raise
- assert_gone(subp.pid)
# Terminate started pids.
while _pids_started:
@@ -432,7 +433,7 @@ def reap_children(recursive=False):
try:
p = psutil.Process(pid)
except psutil.NoSuchProcess:
- pass
+ assert_gone(pid)
else:
children.add(p)