Introduce a new file common/exit that will contain all the exit related functions. This will remove the dependencies these functions have on other non-related helper files and they can be indepedently sourced. This was suggested by Dave Chinner[1]. While moving the exit related functions, remove _die() and die_now() and replace die_now with _fatal(). It is of no use to keep the unnecessary wrappers. [1] https://lore.kernel.org/linux-xfs/Z_UJ7XcpmtkPRhTr@xxxxxxxxxxxxxxxxxxx/ Suggested-by: Dave Chinner <david@xxxxxxxxxxxxx> Signed-off-by: Nirjhar Roy (IBM) <nirjhar.roy.lists@xxxxxxxxx> --- check | 2 ++ common/config | 17 ----------------- common/exit | 39 +++++++++++++++++++++++++++++++++++++++ common/preamble | 3 +++ common/punch | 39 +++++++++++++++++---------------------- common/rc | 28 ---------------------------- 6 files changed, 61 insertions(+), 67 deletions(-) create mode 100644 common/exit diff --git a/check b/check index 9451c350..bd84f213 100755 --- a/check +++ b/check @@ -46,6 +46,8 @@ export DIFF_LENGTH=${DIFF_LENGTH:=10} # by default don't output timestamps timestamp=${TIMESTAMP:=false} +. common/exit +. common/test_names rm -f $tmp.list $tmp.tmp $tmp.grep $here/$iam.out $tmp.report.* $tmp.arglist diff --git a/common/config b/common/config index eada3971..22b52432 100644 --- a/common/config +++ b/common/config @@ -39,8 +39,6 @@ # validity or mountedness. # -. common/test_names - # all tests should use a common language setting to prevent golden # output mismatches. export LANG=C @@ -96,15 +94,6 @@ export LOCAL_CONFIGURE_OPTIONS=${LOCAL_CONFIGURE_OPTIONS:=--enable-readline=yes} export RECREATE_TEST_DEV=${RECREATE_TEST_DEV:=false} -# This functions sets the exit code to status and then exits. Don't use -# exit directly, as it might not set the value of "$status" correctly, which is -# used as an exit code in the trap handler routine set up by the check script. -_exit() -{ - test -n "$1" && status="$1" - exit "$status" -} - # Handle mkfs.$fstyp which does (or does not) require -f to overwrite set_mkfs_prog_path_with_opts() { @@ -121,12 +110,6 @@ set_mkfs_prog_path_with_opts() fi } -_fatal() -{ - echo "$*" - _exit 1 -} - export MKFS_PROG="$(type -P mkfs)" [ "$MKFS_PROG" = "" ] && _fatal "mkfs not found" diff --git a/common/exit b/common/exit new file mode 100644 index 00000000..222c79b7 --- /dev/null +++ b/common/exit @@ -0,0 +1,39 @@ +##/bin/bash + +# This functions sets the exit code to status and then exits. Don't use +# exit directly, as it might not set the value of "$status" correctly, which is +# used as an exit code in the trap handler routine set up by the check script. +_exit() +{ + test -n "$1" && status="$1" + exit "$status" +} + +_fatal() +{ + echo "$*" + _exit 1 +} + +# just plain bail out +# +_fail() +{ + echo "$*" | tee -a $seqres.full + echo "(see $seqres.full for details)" + _exit 1 +} + +# bail out, setting up .notrun file. Need to kill the filesystem check files +# here, otherwise they are set incorrectly for the next test. +# +_notrun() +{ + echo "$*" > $seqres.notrun + echo "$seq not run: $*" + rm -f ${RESULT_DIR}/require_test* + rm -f ${RESULT_DIR}/require_scratch* + + _exit 0 +} + diff --git a/common/preamble b/common/preamble index ba029a34..51d03396 100644 --- a/common/preamble +++ b/common/preamble @@ -33,6 +33,9 @@ _register_cleanup() # explicitly as a member of the 'all' group. _begin_fstest() { + . common/exit + . common/test_names + if [ -n "$seq" ]; then echo "_begin_fstest can only be called once!" _exit 1 diff --git a/common/punch b/common/punch index 64d665d8..ddbe757a 100644 --- a/common/punch +++ b/common/punch @@ -222,11 +222,6 @@ _filter_bmap() _coalesce_extents } -die_now() -{ - _exit 1 -} - # test the different corner cases for zeroing a range: # # 1. into a hole @@ -305,7 +300,7 @@ _test_generic_punch() $XFS_IO_PROG -f -c "truncate $_20k" \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile echo " 2. into allocated space" @@ -316,7 +311,7 @@ _test_generic_punch() -c "pwrite 0 $_20k" $sync_cmd \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile if [ "$unwritten_tests" ]; then @@ -328,7 +323,7 @@ _test_generic_punch() -c "$alloc_cmd 0 $_20k" \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile fi @@ -340,7 +335,7 @@ _test_generic_punch() -c "pwrite $_8k $_8k" $sync_cmd \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile if [ "$unwritten_tests" ]; then @@ -352,7 +347,7 @@ _test_generic_punch() -c "$alloc_cmd $_8k $_8k" \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile fi @@ -364,7 +359,7 @@ _test_generic_punch() -c "pwrite 0 $_8k" $sync_cmd \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile if [ "$unwritten_tests" ]; then @@ -377,7 +372,7 @@ _test_generic_punch() -c "$alloc_cmd $_8k $_8k" \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile echo " 8. unwritten -> hole" @@ -388,7 +383,7 @@ _test_generic_punch() -c "$alloc_cmd 0 $_8k" \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile echo " 9. unwritten -> data" @@ -400,7 +395,7 @@ _test_generic_punch() -c "pwrite $_8k $_8k" $sync_cmd \ -c "$zero_cmd $_4k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile fi @@ -412,7 +407,7 @@ _test_generic_punch() -c "pwrite $_8k $_4k" $sync_cmd \ -c "$zero_cmd $_4k $_12k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile echo " 11. data -> hole -> data" @@ -426,7 +421,7 @@ _test_generic_punch() -c "$punch_cmd $_8k $_4k" \ -c "$zero_cmd $_4k $_12k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile if [ "$unwritten_tests" ]; then @@ -439,7 +434,7 @@ _test_generic_punch() -c "pwrite $_8k $_4k" $sync_cmd \ -c "$zero_cmd $_4k $_12k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile echo " 13. data -> unwritten -> data" @@ -452,7 +447,7 @@ _test_generic_punch() -c "pwrite $_12k $_8k" -c "fsync" \ -c "$zero_cmd $_4k $_12k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile fi @@ -466,7 +461,7 @@ _test_generic_punch() -c "pwrite 0 $_20k" $sync_cmd \ -c "$zero_cmd $_12k $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile fi @@ -483,7 +478,7 @@ _test_generic_punch() -c "pwrite 0 $_20k" $sync_cmd \ -c "$zero_cmd 0 $_8k" \ -c "$map_cmd -v" $testfile | $filter_cmd - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal _md5_checksum $testfile # If zero_cmd is fcollpase, don't check unaligned offsets @@ -512,7 +507,7 @@ _test_generic_punch() -c "fadvise -d" \ -c "$map_cmd -v" $testfile | $filter_cmd diff $testfile $testfile.2 - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal rm -f $testfile.2 _md5_checksum $testfile @@ -532,7 +527,7 @@ _test_generic_punch() -c "$zero_cmd 128 128" \ -c "$map_cmd -v" $testfile | $filter_cmd | \ sed -e "s/\.\.[0-9]*\]/..7\]/" - [ $? -ne 0 ] && die_now + [ $? -ne 0 ] && _fatal od -x $testfile | head -n -1 } diff --git a/common/rc b/common/rc index 9bed6dad..fac9b6da 100644 --- a/common/rc +++ b/common/rc @@ -1798,28 +1798,6 @@ _do() return $ret } -# bail out, setting up .notrun file. Need to kill the filesystem check files -# here, otherwise they are set incorrectly for the next test. -# -_notrun() -{ - echo "$*" > $seqres.notrun - echo "$seq not run: $*" - rm -f ${RESULT_DIR}/require_test* - rm -f ${RESULT_DIR}/require_scratch* - - _exit 0 -} - -# just plain bail out -# -_fail() -{ - echo "$*" | tee -a $seqres.full - echo "(see $seqres.full for details)" - _exit 1 -} - # # Tests whether $FSTYP should be exclude from this test. # @@ -3835,12 +3813,6 @@ _link_out_file() _link_out_file_named $seqfull.out "$features" } -_die() -{ - echo $@ - _exit 1 -} - # convert urandom incompressible data to compressible text data _ddt() { -- 2.34.1