From edc5bc5020e67c0835b6e4cf8fd9fef81055c148 Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Tue, 19 May 2015 12:36:29 +0100 Subject: tests: fix non POSIX constructs causing failures with dash * tests/cp/no-ctx.sh: Scope of `var=val func` is inconsistent across shells, so avoid that construct with functions. * tests/df/no-mtab-status.sh: Likewise. * tests/tail-2/inotify-race.sh: `read` needs an argument. * tests/tail-2/inotify-race2.sh: Likewise. --- tests/cp/no-ctx.sh | 3 ++- tests/df/no-mtab-status.sh | 42 +++++++++++++++++++++++------------------- tests/tail-2/inotify-race.sh | 2 +- tests/tail-2/inotify-race2.sh | 2 +- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/tests/cp/no-ctx.sh b/tests/cp/no-ctx.sh index 19d68b8ff..377d203b0 100755 --- a/tests/cp/no-ctx.sh +++ b/tests/cp/no-ctx.sh @@ -57,7 +57,8 @@ LD_PRELOAD=./k.so cp -a file_src file_dst || fail=1 # ENODATA should give an immediate error when required to preserve ctx # This is debatable, and maybe we should not fail when no context available? -LD_PRELOAD=./k.so returns_ 1 cp --preserve=context file_src file_dst || fail=1 +( export LD_PRELOAD=./k.so + returns_ 1 cp --preserve=context file_src file_dst ) || fail=1 test -e preloaded || skip_ 'LD_PRELOAD interception failed' diff --git a/tests/df/no-mtab-status.sh b/tests/df/no-mtab-status.sh index 58a1852a2..41d1b521b 100755 --- a/tests/df/no-mtab-status.sh +++ b/tests/df/no-mtab-status.sh @@ -88,34 +88,38 @@ EOF gcc_shared_ k.c k.so \ || framework_failure_ 'failed to build shared library' +cleanup_() { unset LD_PRELOAD; } + +export LD_PRELOAD=./k.so + # Test if LD_PRELOAD works: -LD_PRELOAD=./k.so df +df 2>/dev/null test -f x || skip_ "internal test failure: maybe LD_PRELOAD doesn't work?" # These tests are supposed to succeed: -LD_PRELOAD=./k.so df '.' || fail=1 -LD_PRELOAD=./k.so df -i '.' || fail=1 -LD_PRELOAD=./k.so df -T '.' || fail=1 -LD_PRELOAD=./k.so df -Ti '.' || fail=1 -LD_PRELOAD=./k.so df --total '.' || fail=1 +df '.' || fail=1 +df -i '.' || fail=1 +df -T '.' || fail=1 +df -Ti '.' || fail=1 +df --total '.' || fail=1 # These tests are supposed to fail: -LD_PRELOAD=./k.so returns_ 1 df || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -i || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -T || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -Ti || fail=1 -LD_PRELOAD=./k.so returns_ 1 df --total || fail=1 +returns_ 1 df || fail=1 +returns_ 1 df -i || fail=1 +returns_ 1 df -T || fail=1 +returns_ 1 df -Ti || fail=1 +returns_ 1 df --total || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -a || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -a '.' || fail=1 +returns_ 1 df -a || fail=1 +returns_ 1 df -a '.' || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -l || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -l '.' || fail=1 +returns_ 1 df -l || fail=1 +returns_ 1 df -l '.' || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -t hello || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -t hello '.' || fail=1 +returns_ 1 df -t hello || fail=1 +returns_ 1 df -t hello '.' || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -x hello || fail=1 -LD_PRELOAD=./k.so returns_ 1 df -x hello '.' || fail=1 +returns_ 1 df -x hello || fail=1 +returns_ 1 df -x hello '.' || fail=1 Exit $fail diff --git a/tests/tail-2/inotify-race.sh b/tests/tail-2/inotify-race.sh index 6e1a7fa40..4ce05083f 100755 --- a/tests/tail-2/inotify-race.sh +++ b/tests/tail-2/inotify-race.sh @@ -83,7 +83,7 @@ gdb -nx --batch-silent \ --eval-command='quit' \ tail < /dev/null > /dev/null 2>&1 & pid=$! -tail --pid=$pid -f tail.out | (read; kill $pid) +tail --pid=$pid -f tail.out | (read REPLY; kill $pid) # gdb has a bug in Debian's gdb-6.8-3 at least that causes it to not # cleanup and exit correctly when it receives a SIGTERM, but diff --git a/tests/tail-2/inotify-race2.sh b/tests/tail-2/inotify-race2.sh index 6d996eba7..1e01d5051 100755 --- a/tests/tail-2/inotify-race2.sh +++ b/tests/tail-2/inotify-race2.sh @@ -88,7 +88,7 @@ gdb -nx --batch-silent \ # anything between coreutils 7.5 and 8.23 inclusive as # The old file descriptor (still held open by tail) was being fstat(). -tail --pid=$pid -f tail.out | (read; kill $pid) +tail --pid=$pid -f tail.out | (read REPLY; kill $pid) # gdb has a bug in Debian's gdb-6.8-3 at least that causes it to not # cleanup and exit correctly when it receives a SIGTERM, but -- cgit v1.2.3-54-g00ecf