From: Pádraig Brady
Date: Tue, 3 Jan 2023 17:06:45 +0000 (+0100) Subject: tests: tee -p: add test for early exit with closed pipes X-Git-Tag: v9.2~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1376bb829be9147b5699fff637529378b02f758;p=thirdparty%2Fcoreutils.git tests: tee -p: add test for early exit with closed pipes * tests/misc/tee.sh: Add a test for the new iopoll logic to detect closed outputs and exit early without needing further input. --- diff --git a/tests/misc/tee.sh b/tests/misc/tee.sh index b965231866..30d64a9d2f 100755 --- a/tests/misc/tee.sh +++ b/tests/misc/tee.sh @@ -63,6 +63,16 @@ if test -w /dev/full && test -c /dev/full; then test $(wc -l < err) = 1 || { cat err; fail=1; } fi +# Test iopoll-powered early exit for closed pipes +tee_exited() { sleep $1; test -f tee.exited; } +# Currently this functionality is most useful with +# intermittent input from a terminal, but here we +# use an input pipe that doesn't write anything +# but will exit as soon as tee does, or it times out +retry_delay_ tee_exited .1 7 | # 12.7s (Must be > following timeout) +{ timeout 10 tee -p 2>err && touch tee.exited; } | : +test $(wc -l < err) = 0 || { cat err; fail=1; } +test -f tee.exited || fail=1 # Ensure tee honors --output-error modes mkfifo_or_skip_ fifo