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/ln | |
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/ln')
-rwxr-xr-x | tests/ln/misc.sh | 8 | ||||
-rwxr-xr-x | tests/ln/slash-decorated-nonexistent-dest.sh | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/tests/ln/misc.sh b/tests/ln/misc.sh index 9b23fdab4..68756309a 100755 --- a/tests/ln/misc.sh +++ b/tests/ln/misc.sh @@ -52,20 +52,20 @@ rm -rf $d $f touch $f || framework_failure_ rm -rf $d || framework_failure_ mkdir $d $d/$f || framework_failure_ -ln $f $d/ 2> /dev/null && fail=1 -ln -s $f $d/ 2> /dev/null && fail=1 +returns_ 1 ln $f $d/ 2> /dev/null || fail=1 +returns_ 1 ln -s $f $d/ 2> /dev/null || fail=1 rm -rf $d $f # Make sure we get a failure with existing dest without -f option touch $t || framework_failure_ # FIXME: don't ignore the error message but rather test # it to make sure it's the right one. -ln -s $t $t 2> /dev/null && fail=1 +returns_ 1 ln -s $t $t 2> /dev/null || fail=1 rm $t # Make sure -sf fails when src and dest are the same touch $t || framework_failure_ -ln -sf $t $t 2> /dev/null && fail=1 +returns_ 1 ln -sf $t $t 2> /dev/null || fail=1 rm $t # Create a symlink with source file and no explicit directory diff --git a/tests/ln/slash-decorated-nonexistent-dest.sh b/tests/ln/slash-decorated-nonexistent-dest.sh index dc5b18994..7a0696f2f 100755 --- a/tests/ln/slash-decorated-nonexistent-dest.sh +++ b/tests/ln/slash-decorated-nonexistent-dest.sh @@ -23,7 +23,7 @@ touch f || framework_failure_ # Before coreutils-7.6, this would succeed on Solaris 10 -ln -T f no-such-file/ && fail=1 +returns_ 1 ln -T f no-such-file/ || fail=1 test -e no-such-file && fail=1 Exit $fail |