export here=`pwd`
xfile=""
brief_test_summary=false
-err_msg=""
+_err_msg=""
do_report=false
DUMP_OUTPUT=false
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
done
grep -v -f $tmp.grep <$tmp.list >$tmp.tmp
mv $tmp.tmp $tmp.list
+ rm -f $tmp.grep
}
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
# 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
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
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
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
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 ]
" 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
then
bad="$bad $seqnum"
n_bad=`expr $n_bad + 1`
- quick=false
tc_status="fail"
fi
if $do_report; then
done
interrupt=false
-status=`expr $sum_bad`
+status=`expr $sum_bad != 0`
exit