mirror of
https://git.savannah.gnu.org/git/coreutils.git
synced 2025-09-10 07:59:52 +02:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user