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 /cfg.mk | |
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 'cfg.mk')
-rw-r--r-- | cfg.mk | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -377,6 +377,17 @@ sc_prohibit_fail_0: halt='fail=0 initialization' \ $(_sc_search_regexp) +# Ensure that tests don't use `cmd ... && fail=1` as that hides crashes. +# The "exclude" expression allows common idioms like `test ... && fail=1` +# and the 2>... portion allows commands that redirect stderr and so probably +# independently check its contents and thus detect any crash messages. +sc_prohibit_and_fail_1: + @prohibit='&& fail=1' \ + exclude='(stat|kill|test |EGREP|grep|env|2> *[^/])' \ + halt='&& fail=1 detected. Please use: returns_ 1 ... || fail=1' \ + in_vc_files='^tests/' \ + $(_sc_search_regexp) + # The mode part of a setfacl -m option argument must be three bytes long. # I.e., an argument of user:bin:rw or user:bin:r will make Solaris 10's # setfacl reject it with: "Unrecognized character found in mode field". |