]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Update tests and add linear-add
authorNeil Brown <neilb@suse.de>
Mon, 21 May 2007 04:25:40 +0000 (14:25 +1000)
committerNeil Brown <neilb@suse.de>
Mon, 21 May 2007 04:25:40 +0000 (14:25 +1000)
Update the testing scripts to allow for new space calculations
for space for bitmaps.
Add a test script for adding devices to linear arrays.

super1.c
test
tests/00raid1
tests/02lineargrow
tests/02r1grow
tests/05r1-grow-internal-1
tests/05r1-internalbitmap-v1a

index 0e70e1e9904bdb33f8a27332f91b5778f33a7d09..9901e004244c690fda98307269c816ba5a4fe7b2 100644 (file)
--- 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 a83b68e69d181f737f17696a5b79656c76c04403..3029b69395e57bcc0dfcba63c18263857beca048 100644 (file)
--- 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
index b0dfa6a9151af62a70dcc0c1def42787dedf68e9..2ad82d015bc909884d2521a8f9ad4f82145f6cff 100644 (file)
@@ -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
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..78477a3050f7ca87bcd0a6deca167d12c8d82dfe 100644 (file)
@@ -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
index af58295b4f1827f8591ad3b6e24545d365bca734..916a31f82a63314183a9355698c6dcb318d59e19 100644 (file)
@@ -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
index ec8e5fc066744444bd720f50f747a757d46dc275..18c5c8b120da038e1559be01a1b85cd987f58d8d 100644 (file)
@@ -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'`
index 326fe72d2688271b4fe8dce2dda96cd038273fd7..2ef5ebaee85c6be37f1a0555ce16fa0cbefc45ad 100644 (file)
@@ -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 ]