echo >&2 "test: $mdadm isn't usable."
fi
+testdir="tests"
+logdir="$testdir/logs"
+logsave=0
+
# Check whether to run multipath tests
modprobe multipath 2> /dev/null
if grep -s 'Personalities : .*multipath' > /dev/null /proc/mdstat ; then
do_test() {
_script=$1
+ _basename=`basename $_script`
if [ -f "$_script" ]
then
rm -f $targetdir/stderr
# namespace, but cannot change it.
echo -ne "$_script... "
if ( set -ex ; . $_script ) 2> $targetdir/log
- then echo "succeeded"
- else echo "FAILED - see $targetdir/log for details"
+ then
+ echo "succeeded"
+ _fail=0
+ else
+ echo "FAILED - see $targetdir/log for details"
+ _fail=1
+ fi
+ if [ "$savelogs" == "1" ]; then
+ cp $targetdir/log $logdir/$_basename.log
+ fi
+ if [ "$_fail" == "1" ]; then
exit 1
fi
fi
do_help() {
echo "Usage: "
- echo " $0 [--tests=<test1,test2,..>] [--disable-multipath] [setup] [prefix]"
+ echo " $0 [--tests=<test1,test2,..>] [--disable-multipath] [--logdir] [--save-logs] [setup] [prefix]"
}
parse_args() {
--tests=*)
TESTLIST=`expr "x$i" : 'x[^=]*=\(.*\)' | sed -e 's/,/ /g'`
;;
+ --logdir=*)
+ logdir=`expr "x$i" : 'x[^=]*=\(.*\)'`
+ ;;
+ --save-logs)
+ savelogs=1
+ if [ ! -d $logdir ] ; then
+ mkdir $logdir
+ if [ $? -ne 0 ] ; then
+ exit 1;
+ fi
+ fi
+ ;;
--disable-multipath)
unset MULTIPATH
;;
parse_args $@
+if [ "$savelogs" == "1" ]; then
+ echo "Saving logs to $logdir"
+fi
+
if [ "x$TESTLIST" != "x" ]; then
for script in $TESTLIST
do
- do_test tests/$script
+ do_test $testdir/$script
done
else
- for script in tests/$prefix tests/$prefix*[^~]
+ for script in $testdir/$prefix $testdir/$prefix*[^~]
do
do_test $script
done