n_bad=0
sum_bad=0
bad=""
+n_notrun=0
notrun=""
interrupt=true
diff="diff -u"
export here=`pwd`
xfile=""
brief_test_summary=false
-
+err_msg=""
+do_report=false
DUMP_OUTPUT=false
# start the initialisation work now
# by default don't output timestamps
timestamp=${TIMESTAMP:=false}
-rm -f $tmp.list $tmp.tmp $tmp.grep $here/$iam.out $tmp.xlist
+rm -f $tmp.list $tmp.tmp $tmp.grep $here/$iam.out $tmp.xlist $tmp.report.*
SRC_GROUPS="generic shared"
export SRC_DIR="tests"
check options
-nfs test NFS
+ -glusterfs test GlusterFS
-cifs test CIFS
-overlay test overlay
+ -pvfs2 test PVFS2
-tmpfs test TMPFS
-l line mode diff
-udiff show unified diff (default)
-r randomize test order
-d dump test output to stdout
-b brief test summary
+ -R fmt[,fmt] generate report in formats specified. Supported format: [xunit]
--large-fs optimise scratch device for large filesystems
-s section run only specified section from config file
-S section exclude the specified section from the config file
-\? | -h | --help) usage ;;
-nfs) FSTYP=nfs ;;
+ -glusterfs) FSTYP=glusterfs ;;
-cifs) FSTYP=cifs ;;
- -overlay) FSTYP=overlay ;;
+ -overlay) FSTYP=overlay; export OVERLAY=true ;;
+ -pvfs2) FSTYP=pvfs2 ;;
-tmpfs) FSTYP=tmpfs ;;
-g) group=$2 ; shift ;
-T) timestamp=true ;;
-d) DUMP_OUTPUT=true ;;
-b) brief_test_summary=true;;
-
+ -R) report_fmt=$2 ; shift ;
+ REPORT_LIST="$REPORT_LIST ${report_fmt//,/ }"
+ do_report=true
+ ;;
--large-fs) export LARGE_SCRATCH_DEV=yes ;;
--extra-space=*) export SCRATCH_DEV_EMPTY_SPACE=${r#*=} ;;
{
n_try="0"
n_bad="0"
+ n_notrun="0"
unset try notrun bad
}
check="$RESULT_BASE/check"
if $showme; then
- :
+ if $needwrap; then
+ if $do_report; then
+ _make_section_report
+ fi
+ needwrap=false
+ fi
elif $needwrap; then
if [ -f $check.time -a -f $tmp.time ]; then
cat $check.time $tmp.time \
echo "Passed all $n_try tests" >>$tmp.summary
fi
echo "" >>$tmp.summary
+ if $do_report; then
+ _make_section_report
+ fi
needwrap=false
fi
echo "SECTION -- $section"
fi
+ sect_start=`_wallclock`
if $RECREATE_TEST_DEV || [ "$OLD_FSTYP" != "$FSTYP" ]; then
echo "RECREATING -- $FSTYP on $TEST_DEV"
_test_unmount 2> /dev/null
for seq in $list
do
err=false
+ 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
group=`dirname $seq`
if $OPTIONS_HAVE_SECTIONS; then
export RESULT_DIR=`echo $group | sed -e "s;$SRC_DIR;${RESULT_BASE}/$section;"`
- seqres="$RESULT_BASE/$section/$seqnum"
+ REPORT_DIR="$RESULT_BASE/$section"
else
export RESULT_DIR=`echo $group | sed -e "s;$SRC_DIR;$RESULT_BASE;"`
- seqres="$RESULT_BASE/$seqnum"
+ REPORT_DIR="$RESULT_BASE"
fi
+ seqres="$REPORT_DIR/$seqnum"
mkdir -p $RESULT_DIR
echo -n "$seqnum"
- if $showme; then
- echo
- continue
+ if $showme; then
+ echo
+ start=0
+ stop=0
+ n_notrun=`expr $n_notrun + 1`
+ if $do_report; then
+ _make_testcase_report "list"
fi
-
- if [ ! -f $seq ]; then
- echo " - no such test?"
- else
+ continue
+ fi
+ tc_status="pass"
+ if [ ! -f $seq ]; then
+ echo " - no such test?"
+ else
# really going to try and run this one
#
rm -f $seqres.out.bad
if [ -f core ]
then
- echo -n " [dumped core]"
+ err_msg="[dumped core]"
+ echo -n " $err_msg"
mv core $RESULT_BASE/$seqnum.core
err=true
fi
$timestamp && echo " [not run]" && echo -n " $seqnum -- "
cat $seqres.notrun
notrun="$notrun $seqnum"
+ n_notrun=`expr $n_notrun + 1`
+ tc_status="notrun"
else
if [ $sts -ne 0 ]
then
- echo -n " [failed, exit status $sts]"
+ err_msg="[failed, exit status $sts]"
+ echo -n " $err_msg"
err=true
fi
if [ ! -f $seq.out ]
then
- echo " - no qualified output"
+ _dump_err "no qualified output"
err=true
else
" to see the entire diff)"
fi; } | \
sed -e 's/^\(.\)/ \1/'
+ err_msg="output mismatch (see $diff $seq.out $seqres.out.bad)"
err=true
fi
fi
bad="$bad $seqnum"
n_bad=`expr $n_bad + 1`
quick=false
+ tc_status="fail"
+ fi
+ if $do_report; then
+ _make_testcase_report "$tc_status"
fi
-
seq="after_$seqnum"
done
+ sect_stop=`_wallclock`
interrupt=false
_wrapup
interrupt=true