The hangup checks in tests/test-pty.c read from a master that is
expected to be hung up. Without the support in place those reads block
forever rather than returning EIO, so a run against a tree that lacks it
hangs instead of failing -- a control run took ten minutes and had to be
killed.
A test that guards a fix should fail when the fix is absent, not wedge
the suite. tests/test-devpts.c already takes this position for its pty
round trip: signal(SIGALRM, handler) plus alarm(10) around the blocking
reads, cleared with alarm(0) once they complete.
Applying the same guard to the hangup block would keep a regression
visible in CI rather than turning it into a timeout.
The hangup checks in tests/test-pty.c read from a master that is
expected to be hung up. Without the support in place those reads block
forever rather than returning EIO, so a run against a tree that lacks it
hangs instead of failing -- a control run took ten minutes and had to be
killed.
A test that guards a fix should fail when the fix is absent, not wedge
the suite. tests/test-devpts.c already takes this position for its pty
round trip: signal(SIGALRM, handler) plus alarm(10) around the blocking
reads, cleared with alarm(0) once they complete.
Applying the same guard to the hangup block would keep a regression
visible in CI rather than turning it into a timeout.