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.
This commit is contained in:
Pádraig Brady
2015-01-13 03:30:33 +00:00
parent 924b1cadff
commit 58cff8a009
93 changed files with 307 additions and 259 deletions

View File

@@ -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

View File

@@ -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