From 58cff8a009ed9b8280c5f35074cef97231286023 Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Tue, 13 Jan 2015 03:30:33 +0000 Subject: 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. --- tests/chown/basic.sh | 2 +- tests/chown/separator.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'tests/chown') 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 -- cgit v1.2.3-54-g00ecf