Skip to content

Commit 204d7d4

Browse files
committed
Improve error message in test_waitpid_group_child
1 parent 3b48cbc commit 204d7d4

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

graalpython/com.oracle.graal.python.test/src/tests/test_subprocess.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,23 @@ def test_waitpid(self):
103103
@unittest.skipIf(sys.platform == 'win32', "Posix-specific")
104104
def test_waitpid_group_child(self):
105105
import os
106-
p = subprocess.Popen([sys.executable, "-c", "import time; time.sleep(0.1); 42"])
106+
p = subprocess.Popen([sys.executable, "-c", "import time; print('before'); time.sleep(0.1); print('after'); 42"],
107+
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
108+
stderr=subprocess.PIPE)
109+
ps_list = 'not available'
110+
if sys.implementation.name == "graalpy" and \
111+
__graalpython__.posix_module_backend != 'java' \
112+
and sys.platform.startswith("linux"):
113+
ps_list = subprocess.check_output("ps", shell=True, text=True)
107114
res = os.waitpid(0, 0)
108-
assert res[1] == 0, res
115+
msg = f"Spawned {p.pid=}, os.waitpid result={res}, output of ps:\n{ps_list}"
116+
try:
117+
stdout, stderr = p.communicate(timeout=5)
118+
except subprocess.TimeoutExpired:
119+
p.kill()
120+
stdout, stderr = p.communicate()
121+
msg += f"\n{stdout.decode().strip()=}, {stderr.decode().strip()=}"
122+
assert res[1] == 0, msg
109123

110124
# @unittest.skipIf(sys.platform == 'win32', "Posix-specific")
111125
# Skipped because of transient: https://jira.oci.oraclecorp.com/browse/GR-65714

0 commit comments

Comments
 (0)