X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=test;h=1cd341f19b6a63a111070610543a2a7b9289497b;hp=9ceb531e7a3e3fe882f349931d75c7523655fa01;hb=da1887895404506708387fa3781bf0df0a2664ff;hpb=492350045c7e40741069caa7d017209439db665b diff --git a/test b/test index 9ceb531e..1cd341f1 100644 --- a/test +++ b/test @@ -40,7 +40,8 @@ mdsize11=19992 mdsize12=19988 cleanup() { - $mdadm -Ss + udevadm settle + $mdadm -Ssq for d in 0 1 2 3 4 5 6 7 do losetup -d /dev/loop$d ; # rm -f $targetdir/mdtest$d @@ -63,6 +64,7 @@ do eval dev$d=/dev/loop$d eval file$d=$targetdir/mdtest$d eval devlist=\"\$devlist \$dev$d\" + #" <-- add this quote to un-confuse vim syntax highlighting done path0=$dev6 path1=$dev7 @@ -77,6 +79,9 @@ fi # mdadm always adds --quiet, and we want to see any unexpected messages mdadm() { rm -f $targetdir/stderr + case $* in + *-S* ) udevadm settle;; + esac case $* in *-C* ) $mdadm 2> $targetdir/stderr --quiet "$@" --auto=yes;; * ) $mdadm 2> $targetdir/stderr --quiet "$@" @@ -168,7 +173,20 @@ rotest() { fsck -fn $dev >&2 } +setup_environment() { + if [ -f $1 ]; then + . $environment + setup_env + fi +} +reset_environment() { + if [ -f $1 ]; then + reset_env + unset setup_env + unset reset_env + fi +} for script in tests/$prefix tests/$prefix*[^~] do @@ -177,14 +195,20 @@ do 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 done exit 0