From: Neil Brown Date: Mon, 21 May 2007 04:25:40 +0000 (+1000) Subject: Update tests and add linear-add X-Git-Tag: mdadm-2.6.2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69646c1483b7b728d77ae2c944d624f8c05ad4db;p=thirdparty%2Fmdadm.git Update tests and add linear-add Update the testing scripts to allow for new space calculations for space for bitmaps. Add a test script for adding devices to linear arrays. --- diff --git a/super1.c b/super1.c index 0e70e1e9..9901e004 100644 --- a/super1.c +++ b/super1.c @@ -809,6 +809,7 @@ static unsigned long choose_bm_space(unsigned long devsize) /* if the device is bigger than 8Gig, save 64k for bitmap usage, * if bigger than 200Gig, save 128k */ + if (devsize < 64*2) return 0; if (devsize - 64*2 >= 200*1024*1024*2) return 128*2; if (devsize - 4*2 > 8*1024*1024*2) diff --git a/test b/test index a83b68e6..3029b693 100644 --- a/test +++ b/test @@ -26,10 +26,14 @@ md0=/dev/md0 md1=/dev/md1 md2=/dev/md2 # 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 +# 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 diff --git a/tests/00raid1 b/tests/00raid1 index b0dfa6a9..2ad82d01 100644 --- a/tests/00raid1 +++ b/tests/00raid1 @@ -13,7 +13,7 @@ mdadm -S $md0 mdadm -CR $md0 -e1 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2 check recovery check raid1 -testdev $md0 1 $mdsize1 1 +testdev $md0 1 $mdsize1b 1 mdadm -S $md0 # now with no superblock diff --git a/tests/02lineargrow b/tests/02lineargrow index e69de29b..78477a30 100644 --- a/tests/02lineargrow +++ b/tests/02lineargrow @@ -0,0 +1,22 @@ + +# create a liner array, and add more drives to to. + +for e in 0.90 1 1.1 1.2 +do + case $e in + 0.90 ) sz=$mdsize0 ;; + 1 ) sz=$mdsize1 ;; + 1.1 ) sz=$mdsize11 ;; + 1.2 ) sz=$mdsize12 ;; + esac + mdadm -CRf $md0 --level linear -e $e --raid-disks=1 $dev1 + testdev $md0 1 $sz 64 + + mdadm --grow $md0 --add $dev2 + testdev $md0 2 $sz 64 + + mdadm --grow $md0 --add $dev3 + testdev $md0 3 $sz 64 + + mdadm -S $md0 +done diff --git a/tests/02r1grow b/tests/02r1grow index af58295b..916a31f8 100644 --- a/tests/02r1grow +++ b/tests/02r1grow @@ -27,7 +27,7 @@ testdev $md0 1 $[size/2] 1 mdadm --grow $md0 --size max check resync check wait -testdev $md0 1 $[size-4] 1 +testdev $md0 1 $mdsize11 1 mdadm --grow $md0 --size $[size/2] check nosync diff --git a/tests/05r1-grow-internal-1 b/tests/05r1-grow-internal-1 index ec8e5fc0..18c5c8b1 100644 --- a/tests/05r1-grow-internal-1 +++ b/tests/05r1-grow-internal-1 @@ -4,7 +4,7 @@ # mdadm --create --run $md0 -e1 -l 1 -n 2 $dev1 $dev2 check wait -testdev $md0 1 $mdsize1 1 +testdev $md0 1 $mdsize1b 1 #mdadm -E $dev1 mdadm --grow $md0 --bitmap=internal --delay=1 @@ -12,7 +12,7 @@ dirty1=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'` sleep 4 dirty2=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'` -testdev $md0 1 $mdsize1 1 +testdev $md0 1 $mdsize1b 1 dirty3=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'` sleep 4 dirty4=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'` diff --git a/tests/05r1-internalbitmap-v1a b/tests/05r1-internalbitmap-v1a index 326fe72d..2ef5ebae 100644 --- a/tests/05r1-internalbitmap-v1a +++ b/tests/05r1-internalbitmap-v1a @@ -5,11 +5,11 @@ mdadm --create --run $md0 --metadata=1.0 --level=1 -n2 --delay=1 --bitmap internal $dev1 $dev2 check wait check bitmap -testdev $md0 1 $mdsize1 1 +testdev $md0 1 $mdsize1b 1 mdadm -S $md0 mdadm --assemble $md0 $dev1 $dev2 -testdev $md0 1 $mdsize1 1 +testdev $md0 1 $mdsize1b 1 dirty1=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'` sleep 4 dirty2=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'` @@ -19,7 +19,7 @@ then echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2" exit 1 fi mdadm $md0 -f $dev1 -testdev $md0 1 $mdsize1 1 +testdev $md0 1 $mdsize1b 1 sleep 4 dirty3=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'` if [ $dirty3 -lt 400 ]