]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - tests/09imsm-create-fail-rebuild
tests: wait a bit long for reshape to complete.
[thirdparty/mdadm.git] / tests / 09imsm-create-fail-rebuild
index 68fdd09680729b26e44d9e231ff7fe39eb27e9e6..de17f321dbde9745cd733d41e2c1bc576d2e78d0 100644 (file)
@@ -1,5 +1,25 @@
 # sanity check array creation
 
+imsm_check_hold() {
+   if mdadm --remove $1 $2; then
+       echo "$2 removal from $1 should have been blocked" >&2
+       cat /proc/mdstat >&2
+       mdadm -E $2
+       exit 1
+   fi
+}
+
+imsm_check_removal() {
+   if ! mdadm --remove $1 $2 ; then
+       echo "$2 removal from $1 should have succeeded" >&2
+       cat /proc/mdstat >&2
+       mdadm -E $2
+       exit 1
+   fi
+}
+
+. tests/env-imsm-template
+
 # IMSM rounds to multiples of one mebibyte - 1024K
 DEV_ROUND_K=1024
 
@@ -8,21 +28,21 @@ mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1
 imsm_check container $num_disks
 
 # RAID0 + RAID1
-size=10000
+size=9000
 level=0
 chunk=64
 offset=0
 mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size -c $chunk
-imsm_check member $member0 $num_disks $level $size $offset $chunk
+imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
 testdev $member0 $num_disks $size $chunk
 
 offset=$(((size & ~(chunk - 1)) + 2048))
-size=5000
+size=4000
 level=1
 chunk=0
 mdadm -CR $member1 $dev0 $dev1 -n $num_disks -l $level -z $size
-imsm_check member $member1 $num_disks $level $size $offset $chunk
-testdev $member1 1 $size 1
+imsm_check member $member1 $num_disks $level $size $size $offset $chunk
+testdev $member1 1 $size 64
 check wait
 
 mdadm -Ss
@@ -32,28 +52,27 @@ num_disks=4
 mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1 $dev2 $dev3
 imsm_check container $num_disks
 
-size=10000
+size=9000
 level=10
 chunk=64
 offset=0
 mdadm -CR $member0 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
-imsm_check member $member0 $num_disks $level $size $offset $chunk
+imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
 testdev $member0 $((num_disks-2)) $size $chunk
 
 offset=$(((size & ~(chunk - 1)) + 2048))
-size=5000
+size=4000
 level=5
 mdadm -CR $member1 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
-imsm_check member $member1 $num_disks $level $size $offset $chunk
+imsm_check member $member1 $num_disks $level $size $((size*3)) $offset $chunk
 testdev $member1 $((num_disks-1)) $size $chunk
 check wait
 
 # FAIL / REBUILD
 imsm_check_hold $container $dev0
 mdadm --fail $member0 $dev0
-mdadm --wait-clean --scan
+mdadm --wait-clean --scan || true
 imsm_check_removal $container $dev0
 mdadm --add $container $dev4
 check wait
 imsm_check_hold $container $dev4
-