diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/misc/tee.sh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/misc/tee.sh b/tests/misc/tee.sh index 3c3fd11d7..5f2eeda7b 100755 --- a/tests/misc/tee.sh +++ b/tests/misc/tee.sh @@ -31,4 +31,29 @@ for n in 0 $nums; do done done + +# Ensure tee exits early if no more writable outputs +if test -w /dev/full && test -c /dev/full; then + yes | returns_ 1 timeout 10 tee /dev/full 2>err >/dev/full || fail=1 + # Ensure an error for each of the 2 outputs + # (and no redundant errors for stdout). + test $(wc -l < err) = 2 || { cat err; fail=1; } + + + # Ensure we continue with outputs that are OK + seq 10000 > multi_read || framework_failure_ + + returns_ 1 tee /dev/full out2 2>err >out1 <multi_read || fail=1 + cmp multi_read out1 || fail=1 + cmp multi_read out2 || fail=1 + # Ensure an error for failing output + test $(wc -l < err) = 1 || { cat err; fail=1; } + + returns_ 1 tee out1 out2 2>err >/dev/full <multi_read || fail=1 + cmp multi_read out1 || fail=1 + cmp multi_read out2 || fail=1 + # Ensure an error for failing output + test $(wc -l < err) = 1 || { cat err; fail=1; } +fi + Exit $fail |