X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=test;h=f83e28fcb9d846659009604744f9759b9b907859;hp=696e68218ee69ef6d56eb5a7e0fbace8a1cb8b14;hb=1eb252b8488bbdd62ad602561fe8a90ef9079271;hpb=41a3b72a9ce75070eb614c42de6704fa61bb6086 diff --git a/test b/test index 696e6821..f83e28fc 100644 --- a/test +++ b/test @@ -21,15 +21,23 @@ fi # assume md0, md1, md2 exist in /dev md0=/dev/md0 md1=/dev/md1 md2=/dev/md2 +mdp0=/dev/md_d0 +mdp1=/dev/md_d1 # We test mdadm on loop-back block devices. # dir for storing files should be settable by command line maybe targetdir=/var/tmp size=20000 +# super0, round down to multiple of 64 and substract 64 mdsize0=19904 +# super00 is nested, subtract 128 +mdsize00=19840 +# super1.0 round down to multiple of 2, subtract 8 mdsize1=19992 -mdsize11=19996 -mdsize12=19992 +# subtract another 4 for bitmaps +mdsize1b=19988 +mdsize11=19992 +mdsize12=19988 cleanup() { $mdadm -Ss @@ -65,10 +73,12 @@ fi # mdadm always adds --quiet, and we want to see any unexpected messages mdadm() { + rm -f $targetdir/stderr 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 @@ -126,6 +136,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() { @@ -136,10 +151,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 } @@ -155,11 +170,14 @@ 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 # 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 + else cat $targetdir/log ; cat $targetdir/stderr echo "$script failed" exit 1 fi