summaryrefslogtreecommitdiff
path: root/tests/chown
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2015-01-13 03:30:33 +0000
committerPádraig Brady <P@draigBrady.com>2015-01-14 12:20:32 +0000
commit58cff8a009ed9b8280c5f35074cef97231286023 (patch)
tree771e8b3fa70fab99b548790931803b75dd272603 /tests/chown
parent924b1cadff3f2782475516d7eca9aabe856dbf0f (diff)
downloadcoreutils-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/chown')
-rwxr-xr-xtests/chown/basic.sh2
-rwxr-xr-xtests/chown/separator.sh2
2 files changed, 2 insertions, 2 deletions
diff --git a/tests/chown/basic.sh b/tests/chown/basic.sh
index 3eee15694..e57b9c890 100755
--- a/tests/chown/basic.sh
+++ b/tests/chown/basic.sh
@@ -34,7 +34,7 @@ printf "ownership of 'f' retained as $(id -nu)\n" > exp
compare exp out || fail=1
# Ensure diagnostics work for non existent files.
-chown -v 0 nf > out && fail=1
+returns_ 1 chown -v 0 nf > out || fail=1
printf "failed to change ownership of 'nf' to 0\n" > exp
compare exp out || fail=1
diff --git a/tests/chown/separator.sh b/tests/chown/separator.sh
index 815533036..642b00238 100755
--- a/tests/chown/separator.sh
+++ b/tests/chown/separator.sh
@@ -59,7 +59,7 @@ for u in $id_u "$id_un" ''; do
esac
for sep in $seps; do
case $u$sep$g in
- [0-9]*$sep) chown "$u$sep$g" . 2> /dev/null && fail=1 ;;
+ [0-9]*$sep) returns_ 1 chown "$u$sep$g" . 2>/dev/null || fail=1 ;;
*) chown "$u$sep$g" . || fail=1 ;;
esac
done