]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
tests, imsm: Calculate expected array_size in proper way
authorMichal Zylowski <michal.zylowski@intel.com>
Fri, 22 Jun 2018 14:34:12 +0000 (16:34 +0200)
committerJes Sorensen <jsorensen@fb.com>
Wed, 11 Jul 2018 17:17:29 +0000 (13:17 -0400)
Tests should calucalte expected array_size accordingly to raid level. Also
tests should take care about runding to neares MB introduced from b53bfba6
"imsm: use rounded size for metadata initialization".

Expect proper size in tests. Simplify 09imsm-overlap test by creating array
with size which has not been rounded. Main purpose of this test is checking
something else.

Signed-off-by: Michal Zylowski <michal.zylowski@intel.com>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
tests/09imsm-create-fail-rebuild
tests/09imsm-overlap
tests/env-imsm-template

index 886d385aefbfd202277767c7bc6ceecb61efcbf4..f09b437b202d0d8b5785888776779acaa5fe68ab 100644 (file)
@@ -36,7 +36,7 @@ mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size -c $chunk
 imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
 testdev $member0 $num_disks $size $chunk
 
-offset=$(((size & ~(chunk - 1)) + 4096))
+offset=$(((size & ~(1024 - 1)) + 4096))
 size=4000
 level=1
 chunk=0
@@ -60,7 +60,7 @@ mdadm -CR $member0 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $
 imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
 testdev $member0 $((num_disks-2)) $size $chunk
 
-offset=$(((size & ~(chunk - 1)) + 4096))
+offset=$(((size & ~(1024 - 1)) + 4096))
 size=4000
 level=5
 mdadm -CR $member1 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
index 2d1ab69219aed7e8e543c22a9c577592147029df..ff5d2093a94c0dffa2eb5b4687b0f4cbababd81c 100644 (file)
@@ -5,7 +5,7 @@
 mdadm -CR $container -e imsm -n 6 $dev0 $dev1 $dev2 $dev3 $dev4 $dev5
 imsm_check container 6
 
-size=1910
+size=1024
 level=1
 num_disks=2
 mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size
index 40479b48d88b6b0f9c9d26ac264af7d851a638f9..d5247714a75d7cb6700dab2cea157f6454131384 100644 (file)
@@ -14,13 +14,31 @@ imsm_check() {
         t_offset=$7
         t_chunk=$8
 
-       if [ $t_level -ne 1 ]; then
-          t_rd_size=$((t_rd_size & ~(t_chunk - 1)))
-       else
+       t_rd_size=$((t_rd_size & ~(1024 - 1)))
+
+       if [ $t_level -eq 1 ]; then
           t_chunk=64
        fi
-       t_size=$((t_size/1024))
-       t_size=$((t_size*1024))
+
+       t_num_data_disks=0
+
+       case $t_level in
+       0)
+               t_num_data_disks=$t_num_disks
+               ;;
+       1)
+               t_num_data_disks=1
+               ;;
+       5)
+               t_num_data_disks=$((t_num_disks-1))
+               ;;
+       10)
+               t_num_data_disks=$((t_num_disks/2))
+               ;;
+       esac
+
+       t_size=$((t_rd_size*t_num_data_disks))
+
         err=0
 
         eval `stat -L -c "let major=0x%t; let minor=0x%T;" $t_member`