tests, imsm: Calculate expected array_size in proper way

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>
This commit is contained in:
Michal Zylowski 2018-06-22 16:34:12 +02:00 committed by Jes Sorensen
parent f49f083e2c
commit cf42a1c707
3 changed files with 26 additions and 8 deletions

View 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

View 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

View 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`