]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - test
imsm: turn off curr_migr_unit updates
[thirdparty/mdadm.git] / test
diff --git a/test b/test
index 9ceb531e7a3e3fe882f349931d75c7523655fa01..1cd341f19b6a63a111070610543a2a7b9289497b 100644 (file)
--- 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