diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/misc/yes.sh | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/tests/misc/yes.sh b/tests/misc/yes.sh index 137159334..a3027432b 100755 --- a/tests/misc/yes.sh +++ b/tests/misc/yes.sh @@ -30,9 +30,9 @@ for size in 1 1999 4095 4096 8191 8192 16383 16384; do done # Check the many small items case, -# both fitting and overflowing the internal buffer -external=env -if external true $(seq 4000); then +# both fitting and overflowing the internal buffer. +# First check that 4000 arguments supported. +if test 4000 -eq $(sh -c 'echo $#' 0 $(seq 4000)); then for i in 100 4000; do seq $i | paste -s -d ' ' | sed p > out.1 yes $(seq $i) | head -n2 > out.2 @@ -40,4 +40,17 @@ if external true $(seq 4000); then done fi +# Check a single appropriate diagnostic is output on write error +if test -w /dev/full && test -c /dev/full; then + # The single output diagnostic expected, + # (without the possibly varying :strerror(ENOSPC) suffix). + printf '%s\n' "yes: standard output" > exp + + for size in 1 16384; do + returns_ 1 yes "$(printf %${size}s '')" >/dev/full 2>errt + sed 's/\(yes:.*\):.*/\1/' errt > err + compare exp err || fail=1 + done +fi + Exit $fail |