-for script in tests/$prefix tests/$prefix*[^~]
-do
- if [ -f "$script" ]
- then
- rm -f $targetdir/stderr
- # stop all arrays, just incase some script left an array active.
- mdadm -Ssq
- mdadm --zero $devlist 2> /dev/null
- mdadm --zero $devlist 2> /dev/null
- environment="tests/env-`basename $script`"
- setup_environment $environment
- # source script in a subshell, so it has access to our
- # namespace, but cannot change it.
- if ( set -ex ; . $script ) 2> $targetdir/log
- then echo "$script succeeded"
- else cat $targetdir/log ; cat $targetdir/stderr
- echo "$script failed"
- reset_environment $environment
- exit 1
- fi
- reset_environment $environment
- fi
+parse_args() {
+ for i in $*
+ do
+ case $i in
+ [0-9]*)
+ prefix=$i
+ ;;
+ setup)
+ echo "mdadm test environment setup"
+ do_setup
+ trap 0; exit 0
+ ;;
+ cleanup)
+ cleanup
+ exit 0
+ ;;
+ --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
+ ;;
+ --no-error)
+ exitonerror=0
+ ;;
+ --disable-multipath)
+ unset MULTIPATH
+ ;;
+ --help)
+ do_help
+ exit 0;
+ ;;
+ -*)
+ echo " $0: Unknown argument: $i"
+ do_help
+ exit 0;
+ ;;
+ esac