Skip to content

Commit a8ca70f

Browse files
prattmicgopherbot
authored andcommitted
os/signal: rewrite TestTerminalSignal without bash
The existing version of this test contains several races it tries to control with sleeps. Unfortunately, it is still flaky on darwin because writing `fg` in bash too early can apparently result in failure to actually continue the stopped child. Rather than continuing to get perfect timing with bash, rewrite this to eliminate bash and instead perform the same PTY operations that bash would do. This test is still quite complex because psuedo-terminals are interminably complicated, but I believe it is no longer racy. Technically there are still two races (waiting for child to enter read() and waiting for the darwin kernel to wake the read after TIOCSPGRP), but loss of either of these races should only mean we fail to test the desired darwin EINTR case, not failure. This test is skipped on DragonflyBSD, as it tickles a Wait hang bug (#56132). Updates #56132. Fixes #37329. Change-Id: I0ceaf5aa89f6be0f1bf68b2140f47db673cedb33 Reviewed-on: https://go-review.googlesource.com/c/go/+/440220 Run-TryBot: Michael Pratt <[email protected]> Auto-Submit: Michael Pratt <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Bryan Mills <[email protected]>
1 parent cba63ac commit a8ca70f

File tree

1 file changed

+251
-140
lines changed

1 file changed

+251
-140
lines changed

0 commit comments

Comments
 (0)