fstests: remove old electric fence support
[xfstests-dev.git] / check
diff --git a/check b/check
index 2bdad3995b3d589c33d0e0a8a3af63fb6b61b8d6..96198ac4714ea574330ce08c7464e6e32ef13b23 100755 (executable)
--- a/check
+++ b/check
@@ -38,7 +38,7 @@ randomize=false
 export here=`pwd`
 xfile=""
 brief_test_summary=false
-err_msg=""
+_err_msg=""
 do_report=false
 DUMP_OUTPUT=false
 
@@ -102,6 +102,8 @@ a test file name match pattern (e.g. xfs/*).
 group argument is either a name of a tests group to collect from all
 the test dirs (e.g. quick) or a name of a tests group to collect from
 a specific tests dir in the form of <test dir>/<group name> (e.g. xfs/quick).
+If you want to run all the tests in the test suite, use "-g all" to specify all
+groups.
 
 exclude_file argument refers to a name of a file inside each test directory.
 for every test dir where this file is found, the listed test names are
@@ -194,6 +196,7 @@ trim_test_list()
        done
        grep -v -f $tmp.grep <$tmp.list >$tmp.tmp
        mv $tmp.tmp $tmp.list
+       rm -f $tmp.grep
 }
 
 
@@ -219,22 +222,24 @@ _prepare_test_list()
        fi
 
        # Specified groups to include
-       for group in $GROUP_LIST; do
-               list=$(get_group_list $group)
-               if [ -z "$list" ]; then
-                       echo "Group \"$group\" is empty or not defined?"
-                       exit 1
-               fi
+       # Note that the CLI processing adds a leading space to the first group
+       # parameter, so we have to catch that here checking for "all"
+       if ! $have_test_arg && [ "$GROUP_LIST" == " all" ]; then
+               # no test numbers, do everything
+               get_all_tests
+       else
+               for group in $GROUP_LIST; do
+                       list=$(get_group_list $group)
+                       if [ -z "$list" ]; then
+                               echo "Group \"$group\" is empty or not defined?"
+                               exit 1
+                       fi
 
-               for t in $list; do
-                       grep -s "^$t\$" $tmp.list >/dev/null || \
+                       for t in $list; do
+                               grep -s "^$t\$" $tmp.list >/dev/null || \
                                                        echo "$t" >>$tmp.list
+                       done
                done
-       done
-
-       if ! $have_test_arg && [ -z "$GROUP_LIST" ]; then
-               # no test numbers, do everything
-               get_all_tests
        fi
 
        # Specified groups to exclude
@@ -250,7 +255,7 @@ _prepare_test_list()
 
        # sort the list of tests into numeric order
        list=`sort -n $tmp.list | uniq`
-       rm -f $tmp.list $tmp.tmp $tmp.grep
+       rm -f $tmp.list
 
        if $randomize
        then
@@ -363,6 +368,10 @@ if $have_test_arg; then
 
                shift
        done
+elif [ -z "$GROUP_LIST" ]; then
+       # default group list is the auto group. If any other group or test is
+       # specified, we use that instead.
+       GROUP_LIST="auto"
 fi
 
 # we need common/rc
@@ -499,6 +508,7 @@ _expunge_test()
        return 0
 }
 
+_init_kmemleak
 _prepare_test_list
 
 if $OPTIONS_HAVE_SECTIONS; then
@@ -632,7 +642,7 @@ for section in $HOST_OPTIONS_SECTIONS; do
        for seq in $list
        do
            err=false
-           err_msg=""
+           _err_msg=""
            if [ ! -f $seq ]; then
                # Try to get full name in case the user supplied only seq id
                # and the test has a name. A bit of hassle to find really
@@ -715,23 +725,20 @@ for section in $HOST_OPTIONS_SECTIONS; do
                        touch ${RESULT_DIR}/check_dmesg
                fi
                if [ "$DUMP_OUTPUT" = true ]; then
-                       ./$seq 2>&1 | tee $tmp.rawout
+                       ./$seq 2>&1 | tee $tmp.out
                        # Because $? would get tee's return code
                        sts=${PIPESTATUS[0]}
                else
-                       ./$seq >$tmp.rawout 2>&1
+                       ./$seq >$tmp.out 2>&1
                        sts=$?
                fi
                $timestamp && _timestamp
                stop=`_wallclock`
 
-               _fix_malloc <$tmp.rawout >$tmp.out
-               rm -f $tmp.rawout
-
                if [ -f core ]
                then
-                   err_msg="[dumped core]"
-                   echo -n " $err_msg"
+                   _err_msg="[dumped core]"
+                   echo -n " $_err_msg"
                    mv core $RESULT_BASE/$seqnum.core
                    err=true
                fi
@@ -747,8 +754,8 @@ for section in $HOST_OPTIONS_SECTIONS; do
                else
                    if [ $sts -ne 0 ]
                    then
-                       err_msg="[failed, exit status $sts]"
-                       echo -n " $err_msg"
+                       _err_msg="[failed, exit status $sts]"
+                       echo -n " $_err_msg"
                        err=true
                    fi
                    if [ ! -f $seq.out ]
@@ -783,7 +790,7 @@ for section in $HOST_OPTIONS_SECTIONS; do
                                                " to see the entire diff)"
                                fi; } | \
                                sed -e 's/^\(.\)/    \1/'
-                           err_msg="output mismatch (see $diff $seq.out $seqres.out.bad)"
+                           _err_msg="output mismatch (see $diff $seq.out $seqres.out.bad)"
                            err=true
                        fi
                    fi
@@ -791,6 +798,7 @@ for section in $HOST_OPTIONS_SECTIONS; do
                    n_try=`expr $n_try + 1`
                    _check_filesystems
                    _check_dmesg || err=true
+                   _check_kmemleak || err=true
                fi
 
            fi
@@ -801,7 +809,6 @@ for section in $HOST_OPTIONS_SECTIONS; do
            then
                bad="$bad $seqnum"
                n_bad=`expr $n_bad + 1`
-               quick=false
                tc_status="fail"
            fi
            if $do_report; then
@@ -820,5 +827,5 @@ for section in $HOST_OPTIONS_SECTIONS; do
 done
 
 interrupt=false
-status=`expr $sum_bad`
+status=`expr $sum_bad != 0`
 exit