diff --git a/shell/ash_test/ash-redir/redir_EINTR2.right b/shell/ash_test/ash-redir/redir_EINTR2.right new file mode 100644 index 000000000..287d91f67 --- /dev/null +++ b/shell/ash_test/ash-redir/redir_EINTR2.right @@ -0,0 +1,2 @@ +Hello +Done:0 diff --git a/shell/ash_test/ash-redir/redir_EINTR2.tests b/shell/ash_test/ash-redir/redir_EINTR2.tests new file mode 100755 index 000000000..3d343c7ea --- /dev/null +++ b/shell/ash_test/ash-redir/redir_EINTR2.tests @@ -0,0 +1,14 @@ +rm -f test.fifo +mkfifo test.fifo + +(sleep 1; kill -chld $$) & +(sleep 2; echo Hello >test.fifo) & + +# We get open("test.fifo") interrupted by SIGCHLD from the first subshell. +# The shell MUST retry the open (no printing of error messages). +# Then, the second subshell opens fifo for writing and open unblocks and succeeds. +read HELLO test.fifo) & + +# We get open("test.fifo") interrupted by SIGCHLD from the first subshell. +# The shell MUST retry the open (no printing of error messages). +# Then, the second subshell opens fifo for writing and open unblocks and succeeds. +read HELLO