diff options
author | Pádraig Brady <P@draigBrady.com> | 2015-01-13 03:30:33 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2015-01-14 12:20:32 +0000 |
commit | 58cff8a009ed9b8280c5f35074cef97231286023 (patch) | |
tree | 771e8b3fa70fab99b548790931803b75dd272603 /tests/readlink | |
parent | 924b1cadff3f2782475516d7eca9aabe856dbf0f (diff) | |
download | coreutils-58cff8a009ed9b8280c5f35074cef97231286023.tar.xz |
tests: add extra protection against unexpected exits
Many tests use `program ... && fail=1` to ensure expected
error situations are indicated. However that would mask
an unexpected exit (like a crash). Therefore explicitly
check the expected exit code.
Note where error messages are also verified, the extra
protection is not added.
* tests/init.sh (returns_): A new helper function to
check the return code of a command, and used
throughout the tests.
* cfg.mk (sc_prohibit_and_fail_1): Add a syntax check
to avoid new instances of this issue.
Diffstat (limited to 'tests/readlink')
-rwxr-xr-x | tests/readlink/can-e.sh | 26 | ||||
-rwxr-xr-x | tests/readlink/can-f.sh | 38 | ||||
-rwxr-xr-x | tests/readlink/can-m.sh | 2 | ||||
-rwxr-xr-x | tests/readlink/multi.sh | 4 | ||||
-rwxr-xr-x | tests/readlink/rl-1.sh | 6 |
5 files changed, 38 insertions, 38 deletions
diff --git a/tests/readlink/can-e.sh b/tests/readlink/can-e.sh index 91bea7807..05f297b7c 100755 --- a/tests/readlink/can-e.sh +++ b/tests/readlink/can-e.sh @@ -38,7 +38,7 @@ cd "$pwd/$tmp/removed" || framework_failure_ # Skip this test if the system doesn't let you remove the working directory. if rmdir ../removed 2>/dev/null; then - v=$(readlink -e .) && fail=1 + v=$(returns_ 1 readlink -e .) || fail=1 test -z "$v" || fail=1 fi @@ -49,7 +49,7 @@ for p in "" "$pwd/$tmp/"; do v=$(readlink -e "${p}regfile") || fail=1 test "$v" = "$my_pwd/$tmp/regfile" || fail=1 - v=$(readlink -e "${p}./regfile/") && fail=1 + v=$(returns_ 1 readlink -e "${p}./regfile/") || fail=1 test -z "$v" || fail=1 v=$(readlink -e "${p}subdir") || fail=1 @@ -58,19 +58,19 @@ for p in "" "$pwd/$tmp/"; do v=$(readlink -e "${p}./subdir/") || fail=1 test "$v" = "$my_pwd/$tmp/subdir" || fail=1 - v=$(readlink -e "${p}missing") && fail=1 + v=$(returns_ 1 readlink -e "${p}missing") || fail=1 test -z "$v" || fail=1 - v=$(readlink -e "${p}./missing/") && fail=1 + v=$(returns_ 1 readlink -e "${p}./missing/") || fail=1 test -z "$v" || fail=1 v=$(readlink -e "${p}link1") || fail=1 test "$v" = "$my_pwd/$tmp/regfile" || fail=1 - v=$(readlink -e "${p}./link1/") && fail=1 + v=$(returns_ 1 readlink -e "${p}./link1/") || fail=1 test -z "$v" || fail=1 - v=$(readlink -e "${p}link1/more") && fail=1 + v=$(returns_ 1 readlink -e "${p}link1/more") || fail=1 test -z "$v" || fail=1 v=$(readlink -e "${p}link2") || fail=1 @@ -79,25 +79,25 @@ for p in "" "$pwd/$tmp/"; do v=$(readlink -e "${p}./link2/") || fail=1 test "$v" = "$my_pwd/$tmp/subdir" || fail=1 - v=$(readlink -e "${p}link2/more") && fail=1 + v=$(returns_ 1 readlink -e "${p}link2/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -e "${p}link3") && fail=1 + v=$(returns_ 1 readlink -e "${p}link3") || fail=1 test -z "$v" || fail=1 - v=$(readlink -e "${p}./link3/") && fail=1 + v=$(returns_ 1 readlink -e "${p}./link3/") || fail=1 test -z "$v" || fail=1 - v=$(readlink -e "${p}link3/more") && fail=1 + v=$(returns_ 1 readlink -e "${p}link3/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -e "${p}link4") && fail=1 + v=$(returns_ 1 readlink -e "${p}link4") || fail=1 test -z "$v" || fail=1 - v=$(readlink -e "${p}./link4/") && fail=1 + v=$(returns_ 1 readlink -e "${p}./link4/") || fail=1 test -z "$v" || fail=1 - v=$(readlink -e "${p}link4/more") && fail=1 + v=$(returns_ 1 readlink -e "${p}link4/more") || fail=1 test -z "$v" || fail=1 done diff --git a/tests/readlink/can-f.sh b/tests/readlink/can-f.sh index 44697225e..4b25fc63d 100755 --- a/tests/readlink/can-f.sh +++ b/tests/readlink/can-f.sh @@ -39,7 +39,7 @@ cd "$pwd/$tmp/removed" || framework_failure_ # Skip this test if the system doesn't let you remove the working directory. if rmdir ../removed 2>/dev/null; then - v=$(readlink -e .) && fail=1 + v=$(returns_ 1 readlink -e .) || fail=1 test -z "$v" || fail=1 fi @@ -50,13 +50,13 @@ for p in "" "$pwd/$tmp/"; do v=$(readlink -f "${p}regfile") || fail=1 test "$v" = "$my_pwd/$tmp/regfile" || fail=1 - v=$(readlink -f "${p}./regfile/") && fail=1 + v=$(returns_ 1 readlink -f "${p}./regfile/") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}regfile/more") && fail=1 + v=$(returns_ 1 readlink -f "${p}regfile/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}./regfile/more/") && fail=1 + v=$(returns_ 1 readlink -f "${p}./regfile/more/") || fail=1 test -z "$v" || fail=1 v=$(readlink -f "${p}subdir") || fail=1 @@ -77,22 +77,22 @@ for p in "" "$pwd/$tmp/"; do v=$(readlink -f "${p}./missing/") || fail=1 test "$v" = "$my_pwd/$tmp/missing" || fail=1 - v=$(readlink -f "${p}missing/more") && fail=1 + v=$(returns_ 1 readlink -f "${p}missing/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}./missing/more/") && fail=1 + v=$(returns_ 1 readlink -f "${p}./missing/more/") || fail=1 test -z "$v" || fail=1 v=$(readlink -f "${p}link1") || fail=1 test "$v" = "$my_pwd/$tmp/regfile" || fail=1 - v=$(readlink -f "${p}./link1/") && fail=1 + v=$(returns_ 1 readlink -f "${p}./link1/") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}link1/more") && fail=1 + v=$(returns_ 1 readlink -f "${p}link1/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}./link1/more/") && fail=1 + v=$(returns_ 1 readlink -f "${p}./link1/more/") || fail=1 test -z "$v" || fail=1 v=$(readlink -f "${p}link2") || fail=1 @@ -107,10 +107,10 @@ for p in "" "$pwd/$tmp/"; do v=$(readlink -f "${p}./link2/more/") || fail=1 test "$v" = "$my_pwd/$tmp/subdir/more" || fail=1 - v=$(readlink -f "${p}link2/more/more2") && fail=1 + v=$(returns_ 1 readlink -f "${p}link2/more/more2") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}./link2/more/more2/") && fail=1 + v=$(returns_ 1 readlink -f "${p}./link2/more/more2/") || fail=1 test -z "$v" || fail=1 v=$(readlink -f "${p}link3") || fail=1 @@ -119,10 +119,10 @@ for p in "" "$pwd/$tmp/"; do v=$(readlink -f "${p}./link3/") || fail=1 test "$v" = "$my_pwd/$tmp/missing" || fail=1 - v=$(readlink -f "${p}link3/more") && fail=1 + v=$(returns_ 1 readlink -f "${p}link3/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}./link3/more/") && fail=1 + v=$(returns_ 1 readlink -f "${p}./link3/more/") || fail=1 test -z "$v" || fail=1 v=$(readlink -f "${p}link4") || fail=1 @@ -131,22 +131,22 @@ for p in "" "$pwd/$tmp/"; do v=$(readlink -f "${p}./link4/") || fail=1 test "$v" = "$my_pwd/$tmp/subdir/missing" || fail=1 - v=$(readlink -f "${p}link4/more") && fail=1 + v=$(returns_ 1 readlink -f "${p}link4/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}./link4/more") && fail=1 + v=$(returns_ 1 readlink -f "${p}./link4/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}link5") && fail=1 + v=$(returns_ 1 readlink -f "${p}link5") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}./link5/") && fail=1 + v=$(returns_ 1 readlink -f "${p}./link5/") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}link5/more") && fail=1 + v=$(returns_ 1 readlink -f "${p}link5/more") || fail=1 test -z "$v" || fail=1 - v=$(readlink -f "${p}./link5/more") && fail=1 + v=$(returns_ 1 readlink -f "${p}./link5/more") || fail=1 test -z "$v" || fail=1 done diff --git a/tests/readlink/can-m.sh b/tests/readlink/can-m.sh index 6d8ca8197..2eb13565a 100755 --- a/tests/readlink/can-m.sh +++ b/tests/readlink/can-m.sh @@ -38,7 +38,7 @@ cd "$pwd/$tmp/removed" || framework_failure_ # Skip this test if the system doesn't let you remove the working directory. if rmdir ../removed 2>/dev/null; then - v=$(readlink -e .) && fail=1 + v=$(returns_ 1 readlink -e .) || fail=1 test -z "$v" || fail=1 fi diff --git a/tests/readlink/multi.sh b/tests/readlink/multi.sh index 17aab4059..c7c2ef711 100755 --- a/tests/readlink/multi.sh +++ b/tests/readlink/multi.sh @@ -23,8 +23,8 @@ touch regfile || framework_failure_ ln -s regfile link1 || framework_failure_ readlink link1 link1 || fail=1 -readlink link1 link2 && fail=1 -readlink link1 link2 link1 && fail=1 +returns_ 1 readlink link1 link2 || fail=1 +returns_ 1 readlink link1 link2 link1 || fail=1 readlink -m link1 link2 || fail=1 printf '/1\0/1\0' > exp || framework_failure_ diff --git a/tests/readlink/rl-1.sh b/tests/readlink/rl-1.sh index a6b92c747..5b429edec 100755 --- a/tests/readlink/rl-1.sh +++ b/tests/readlink/rl-1.sh @@ -31,13 +31,13 @@ test "$v" = regfile || fail=1 v=$(readlink link2) || fail=1 test "$v" = missing || fail=1 -v=$(readlink subdir) && fail=1 +v=$(returns_ 1 readlink subdir) || fail=1 test -z "$v" || fail=1 -v=$(readlink regfile) && fail=1 +v=$(returns_ 1 readlink regfile) || fail=1 test -z "$v" || fail=1 -v=$(readlink missing) && fail=1 +v=$(returns_ 1 readlink missing) || fail=1 test -z "$v" || fail=1 Exit $fail |