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/id/zero.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tests/id/zero.sh') diff --git a/tests/id/zero.sh b/tests/id/zero.sh index a67a789e2..7bee3a644 100755 --- a/tests/id/zero.sh +++ b/tests/id/zero.sh @@ -51,8 +51,10 @@ while read u ; do printf '\n%s: ' "id -${o}${n}[z] $u" >> out || framework_failure_ # There may be no name corresponding to an id, so don't check # exit status when in name lookup mode - id -${o}${n} $u >> exp || { test -z "$n" && fail=1; } - id -${o}${n}z $u > tmp || { test -z "$n" && fail=1; } + id -${o}${n} $u >> exp || + { test $? -ne 1 || test -z "$n" && fail=1; } + id -${o}${n}z $u > tmp || + { test $? -ne 1 || test -z "$n" && fail=1; } head -c-1 < tmp >> out || framework_failure_ done done -- cgit v1.2.3-54-g00ecf