diff options
Diffstat (limited to 'bin/sh/tests/builtins/read11.0')
| -rw-r--r-- | bin/sh/tests/builtins/read11.0 | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/bin/sh/tests/builtins/read11.0 b/bin/sh/tests/builtins/read11.0 index 5bae80318b15..07bd3e70644c 100644 --- a/bin/sh/tests/builtins/read11.0 +++ b/bin/sh/tests/builtins/read11.0 @@ -1,3 +1,5 @@ +# Verify that `read -t 0 v` succeeds immediately if input is available +# and fails immediately if not set -e @@ -6,12 +8,25 @@ trap 'rm -rf "$T"' 0 cd $T mkfifo fifo1 # Open fifo1 for writing -{ sleep 10; } >fifo1 & +{ echo new_value; sleep 10; } >fifo1 & # Wait for the child to open fifo1 for writing exec 3<fifo1 + +v=original_value +r=0 +ts=$(date +%s%3N) +read -t 0 v <&3 || r=$? +te=$(date +%s%3N) +[ "$r" -eq 0 ] +[ $((te-ts)) -lt 250 ] +[ "$v" = "new_value" ] + v=original_value r=0 +ts=$(date +%s%3N) read -t 0 v <&3 || r=$? +te=$(date +%s%3N) kill -TERM "$!" || : -{ [ "$r" -gt 128 ] && [ "$(kill -l "$r")" = ALRM ]; } || exit +[ "$r" -gt 128 ] && [ "$(kill -l "$r")" = ALRM ] +[ $((te-ts)) -lt 250 ] [ -z "$v" ] |
