* tests/tac/tac-continue.sh: This test was very awkard to setup,
and thus always skipped. Instead move to a root only test
that creates an almost full partition itself.
* tests/local.mk: Move test to root only.
Suggested at https://github.com/uutils/coreutils/pull/9590
---
tests/local.mk | 2 +-
tests/tac/tac-continue.sh | 55 ++++++++-------------------------------
2 files changed, 12 insertions(+), 45 deletions(-)
diff --git a/tests/local.mk b/tests/local.mk
index 8d8ef2767..955de4e22 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -142,6 +142,7 @@ all_root_tests = \
tests/rm/read-only.sh \
tests/rm/empty-immutable-skip.sh \
tests/split/l-chunk-root.sh \
+ tests/tac/tac-continue.sh \
tests/tail/append-only.sh \
tests/tail/end-of-device.sh \
tests/touch/now-owned-by-other.sh
@@ -459,7 +460,6 @@ all_tests = \
tests/cksum/sum-sysv.sh \
tests/misc/sync.sh \
tests/tac/tac.pl \
- tests/tac/tac-continue.sh \
tests/tac/tac-locale.sh \
tests/tac/tac-2-nonseekable.sh \
tests/tail/tail.pl \
diff --git a/tests/tac/tac-continue.sh b/tests/tac/tac-continue.sh
index b4c92c1fd..a5daaa06f 100755
--- a/tests/tac/tac-continue.sh
+++ b/tests/tac/tac-continue.sh
@@ -20,57 +20,24 @@
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
print_ver_ tac
+require_root_
-# See if the envvar is defined.
-if test x = "x$FULL_PARTITION_TMPDIR"; then
- skip_ "FULL_PARTITION_TMPDIR not defined"
-fi
+cwd=$(pwd)
+cleanup_() { cd /; umount "$cwd/full_tmp"; }
-if ! test -d "$FULL_PARTITION_TMPDIR"; then
- echo "$0: $FULL_PARTITION_TMPDIR:" \
- "\$FULL_PARTITION_TMPDIR does not specify a directory" 1>&2
- Exit 1
-fi
+mkdir full_tmp || framework_failure_
-fp_tmp="$FULL_PARTITION_TMPDIR/tac-cont-$$"
-cleanup_()
-{
- # Terminate any background process
- # and remove tmp dir
- rm -f "$fp_tmp"
- kill $pid 2>/dev/null && wait $pid
-}
+mount -t tmpfs --options size=1M tmpfs $cwd/full_tmp ||
+ skip_ 'Unable to mount small tmpfs'
# Make sure we can create an empty file there (i.e., no shortage of inodes).
-if ! touch $fp_tmp; then
- echo "$0: $fp_tmp: cannot create empty file" 1>&2
- Exit 1
-fi
+touch "$cwd/full_tmp/tac-empty" || framework_failure_
-# Make sure that we fail when trying to create a file large enough
-# to consume a non-inode block.
-if seq 1000 > $fp_tmp 2>/dev/null; then
- echo "$0: $FULL_PARTITION_TMPDIR: not a full partition" 1>&2
- Exit 1
-fi
-
-seq 5 > in
-
-
-# Give tac a fifo command line argument.
-# This makes it try to create a temporary file in $TMPDIR.
-mkfifo_or_skip_ fifo
-seq 1000 > fifo & pid=$!
-TMPDIR=$FULL_PARTITION_TMPDIR tac fifo in >out 2>err && fail=1
-
-cat <<\EOF > exp || framework_failure_
-5
-4
-3
-2
-1
-EOF
+seq 5 > five && seq 5 -1 1 > exp || framework_failure_
+# Make sure we diagnose the failure but continue to subsequent files
+yes | TMPDIR=$cwd/full_tmp timeout 10 tac - five >out 2>err && fail=1
+{ test $? = 124 || ! grep 'space' err >/dev/null; } && fail=1
compare exp out || fail=1
Exit $fail
--
2.51.1