Skip to content

Commit 584e881

Browse files
add test that demonstrates #123
1 parent 874b523 commit 584e881

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

Diff for: testing/test_gateway.py

+28
Original file line numberDiff line numberDiff line change
@@ -500,3 +500,31 @@ def test_popen_args(spec, expected_args):
500500
expected_args = expected_args + ["-u", "-c", gateway_io.popen_bootstrapline]
501501
args = gateway_io.popen_args(execnet.XSpec(spec))
502502
assert args == expected_args
503+
504+
505+
@pytest.mark.parametrize(
506+
"interleave_getstatus",
507+
[
508+
pytest.param(True, id="interleave-remote-status"),
509+
pytest.param(
510+
False,
511+
id="no-interleave-remote-status",
512+
marks=pytest.mark.xfail(
513+
reason="https://github.com/pytest-dev/execnet/issues/123",
514+
),
515+
),
516+
],
517+
)
518+
def test_regression_gevent_hangs(group, interleave_getstatus):
519+
pytest.importorskip("gevent")
520+
gw = group.makegateway("popen//execmodel=gevent")
521+
522+
print(gw.remote_status())
523+
524+
def sendback(channel):
525+
channel.send(1234)
526+
527+
ch = gw.remote_exec(sendback)
528+
if interleave_getstatus:
529+
print(gw.remote_status())
530+
assert ch.receive(timeout=0.5) == 1234

0 commit comments

Comments
 (0)