]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - test
Fix and test --update=uuid
[thirdparty/mdadm.git] / test
diff --git a/test b/test
index 3d722285a6f411e429ce81a5911a5354c5eec57e..f0a4388f592e5bdc0155abffd630d7c824b4c54b 100644 (file)
--- a/test
+++ b/test
@@ -34,7 +34,8 @@ mdsize12=19992
 cleanup() {
        $mdadm -Ss
        for d in 0 1 2 3 4 5 6 7
-       do losetup -d /dev/loop$d ; # rm -f $targetdir/mdtest$d
+       do
+           losetup -d /dev/loop$d ; # rm -f $targetdir/mdtest$d
         done
 }
 
@@ -44,6 +45,7 @@ devlist=
 for d in 0 1 2 3 4 5 6 7
 do
    [ -f $targetdir/mdtest$d ] || dd if=/dev/zero of=$targetdir/mdtest$d count=$size bs=1K > /dev/null 2>&1
+   [ -b /dev/loop$d ] || mknod /dev/loop$d b 7 $d
    if [ $d -eq 7 ]
    then
      losetup /dev/loop$d $targetdir/mdtest6 # for multipath use
@@ -64,9 +66,10 @@ fi
 # mdadm always adds --quiet, and we want to see any unexpected messages
 mdadm() {
     case $* in
-       *-C* ) $mdadm --quiet "$@" --auto=yes;;
-        * )   $mdadm --quiet "$@"
+       *-C* ) $mdadm 2> $targetdir/stderr --quiet "$@" --auto=yes;;
+        * )   $mdadm 2> $targetdir/stderr --quiet "$@"
     esac
+    cat >&2 $targetdir/stderr
 }
 
 # check various things
@@ -124,6 +127,11 @@ check() {
    esac
 }
 
+no_errors() {
+  if [ -s $targetdir/stderr ]
+  then echo Bad errors from mdadm: ; cat $targetdir/stderr; exit 2;
+  fi
+}
 # basic device test
 
 testdev() {
@@ -134,10 +142,10 @@ testdev() {
    mkfs -j $dev > /dev/null 2>&1 && fsck -fn $dev >&2
    dsize=$[dvsize/chunk]
    dsize=$[dsize*chunk]
-   rasize=$[dsize*1024*cnt]
-   if [ $rasize -ne `/sbin/blockdev --getsize64 $dev` ]
+   rasize=$[dsize*2*cnt]
+   if [ $rasize -ne `/sbin/blockdev --getsize $dev` ]
    then
-     echo "ERROR: size is wrong for $dev: $cnt * $dvsize (chunk=$chunk) = $rasize, not `/sbin/blockdev --getsize64 $dev`"
+     echo "ERROR: size is wrong for $dev: $cnt * $dvsize (chunk=$chunk) = $rasize, not `/sbin/blockdev --getsize $dev`"
      exit 1
    fi
 }
@@ -157,7 +165,7 @@ do
    # namespace, but cannot change it.
    if ( set -ex ; . $script )  2> $targetdir/log
    then echo "$script succeeded" 
-   else cat $targetdir/log
+   else cat $targetdir/log ; cat $targetdir/stderr
         echo "$script failed"
        exit 1
    fi