echo foo | timeout 10 tail -f -c3 > out || fail=1
compare exp out || fail=1
-cat <<\EOF > exp
+cat <<\EOF > exp || framework_failure_
==> standard input <==
ar
-
-==> missing <==
EOF
-mkdir missing || framework_failure_
echo bar | returns_ 1 timeout 10 tail -f -c3 - missing > out || fail=1
compare exp out || fail=1
[ "$(countlines_)" = 2 ] || { fail=1; cat out; }
grep -F 'cannot open' out || { fail=1; cat out; }
grep -F 'no files remaining' out || { fail=1; cat out; }
+rm -f out || framework_failure_
# === Test:
# Likewise for --follow=name (without --retry).
[ "$(countlines_)" = 2 ] || { fail=1; cat out; }
grep -F 'cannot open' out || { fail=1; cat out; }
grep -F 'no files remaining' out || { fail=1; cat out; }
+rm -f out || framework_failure_
# === Test:
# Ensure that tail -F retries when the file is initially untailable.
-mkdir untailable
+if ! cat . >/dev/null; then
+mkdir untailable || framework_failure_
timeout 10 \
tail $mode $fastpoll -F untailable >out 2>&1 & pid=$!
# Wait for "cannot open" error.
grep -F 'has become accessible' out || { fail=1; cat out; }
grep -F 'foo' out || { fail=1; cat out; }
rm -fd untailable out || framework_failure_
+fi
done