diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/09imsm-create-fail-rebuild | 4 | ||||
-rw-r--r-- | tests/09imsm-overlap | 12 | ||||
-rw-r--r-- | tests/13imsm-r0_r0_2d-grow-r0_r0_4d | 2 | ||||
-rw-r--r-- | tests/13imsm-r0_r0_2d-grow-r0_r0_5d | 2 | ||||
-rw-r--r-- | tests/13imsm-r0_r0_3d-grow-r0_r0_4d | 2 | ||||
-rw-r--r-- | tests/13imsm-r0_r5_3d-grow-r0_r5_4d | 2 | ||||
-rw-r--r-- | tests/13imsm-r0_r5_3d-grow-r0_r5_5d | 2 | ||||
-rw-r--r-- | tests/13imsm-r5_r0_3d-grow-r5_r0_4d | 2 | ||||
-rw-r--r-- | tests/13imsm-r5_r0_3d-grow-r5_r0_5d | 2 | ||||
-rw-r--r-- | tests/14imsm-r0_3d-r5_3d-migrate-r5_4d-r5_4d | 2 | ||||
-rw-r--r-- | tests/14imsm-r0_r0_2d-takeover-r10_4d | 2 | ||||
-rw-r--r-- | tests/14imsm-r10_r5_4d-takeover-r0_2d | 2 | ||||
-rw-r--r-- | tests/15imsm-r5_r0_3d_64k-migrate-r5_r0_3d_256k | 2 | ||||
-rw-r--r-- | tests/16imsm-r0_3d-migrate-r5_4d | 1 | ||||
-rw-r--r-- | tests/16imsm-r0_5d-migrate-r5_6d | 1 | ||||
-rw-r--r-- | tests/16imsm-r5_3d-migrate-r0_3d | 4 | ||||
-rw-r--r-- | tests/16imsm-r5_5d-migrate-r0_5d | 4 | ||||
-rw-r--r-- | tests/18imsm-r1_2d-takeover-r0_1d | 2 | ||||
-rw-r--r-- | tests/env-imsm-template | 30 | ||||
-rw-r--r-- | tests/imsm-grow-template | 11 |
20 files changed, 57 insertions, 34 deletions
diff --git a/tests/09imsm-create-fail-rebuild b/tests/09imsm-create-fail-rebuild index de17f321..f09b437b 100644 --- a/tests/09imsm-create-fail-rebuild +++ b/tests/09imsm-create-fail-rebuild @@ -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)) + 2048)) +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)) + 2048)) +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 diff --git a/tests/09imsm-overlap b/tests/09imsm-overlap index e832257c..ff5d2093 100644 --- a/tests/09imsm-overlap +++ b/tests/09imsm-overlap @@ -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 @@ -18,13 +18,11 @@ udevadm settle offset=0 imsm_check member $member0 $num_disks $level $size 1024 $offset -offset=$((offset+size+2048)) +offset=$((offset+size+4096)) imsm_check member $member1 $num_disks $level $size 1024 $offset -offset=$((offset+size+2048)) +offset=$((offset+size+4096)) imsm_check member $member2 $num_disks $level $size 1024 $offset -# at this point there should be more freespace at the start of the disk -# than the end -offset=0 +offset=$((offset+size+4096)) imsm_check member $member3 $num_disks $level $size 1024 $offset -offset=$((offset+size+2048)) +offset=$((offset+size+4096)) imsm_check member $member4 $num_disks $level $size 1024 $offset diff --git a/tests/13imsm-r0_r0_2d-grow-r0_r0_4d b/tests/13imsm-r0_r0_2d-grow-r0_r0_4d index f85efa5d..66ceeb36 100644 --- a/tests/13imsm-r0_r0_2d-grow-r0_r0_4d +++ b/tests/13imsm-r0_r0_2d-grow-r0_r0_4d @@ -19,7 +19,7 @@ vol1_level=0 vol1_comp_size=$((5 * 1024)) vol1_chunk=64 vol1_num_comps=$num_disks -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) # After: RAID 0 volume in slot #0, 4 disks, 128k chunk size # RAID 0 volume in slot #1, 4 disks, 64k chunk size diff --git a/tests/13imsm-r0_r0_2d-grow-r0_r0_5d b/tests/13imsm-r0_r0_2d-grow-r0_r0_5d index 1b851a9b..0da9ef32 100644 --- a/tests/13imsm-r0_r0_2d-grow-r0_r0_5d +++ b/tests/13imsm-r0_r0_2d-grow-r0_r0_5d @@ -19,7 +19,7 @@ vol1_level=0 vol1_comp_size=$((6 * 1024)) vol1_chunk=256 vol1_num_comps=$num_disks -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) # After: RAID 0 volume in slot #0, 5 disks, 64k chunk size # RAID 0 volume in slot #1, 5 disks, 256k chunk size diff --git a/tests/13imsm-r0_r0_3d-grow-r0_r0_4d b/tests/13imsm-r0_r0_3d-grow-r0_r0_4d index 27ba83b3..1ff60257 100644 --- a/tests/13imsm-r0_r0_3d-grow-r0_r0_4d +++ b/tests/13imsm-r0_r0_3d-grow-r0_r0_4d @@ -19,7 +19,7 @@ vol1_level=0 vol1_comp_size=$((5 * 1024)) vol1_chunk=128 vol1_num_comps=$num_disks -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) # After: RAID0 volume in slot #0, 4 disks, 128k chunk size # RAID0 volume in slot #1, 4 disks, 512k chunk size diff --git a/tests/13imsm-r0_r5_3d-grow-r0_r5_4d b/tests/13imsm-r0_r5_3d-grow-r0_r5_4d index b4bde449..2977f367 100644 --- a/tests/13imsm-r0_r5_3d-grow-r0_r5_4d +++ b/tests/13imsm-r0_r5_3d-grow-r0_r5_4d @@ -19,7 +19,7 @@ vol1_level=5 vol1_comp_size=$((5 * 1024)) vol1_chunk=128 vol1_num_comps=$((num_disks - 1)) -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) # After: RAID 0 volume in slot #0, 4 disks, 64k chunk size # RAID 5 volume in slot #1, 4 disks, 128k chunk size diff --git a/tests/13imsm-r0_r5_3d-grow-r0_r5_5d b/tests/13imsm-r0_r5_3d-grow-r0_r5_5d index d0db9aeb..ff15ad09 100644 --- a/tests/13imsm-r0_r5_3d-grow-r0_r5_5d +++ b/tests/13imsm-r0_r5_3d-grow-r0_r5_5d @@ -19,7 +19,7 @@ vol1_level=5 vol1_comp_size=$((5 * 1024)) vol1_chunk=128 vol1_num_comps=$((num_disks - 1)) -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) # After: RAID 0 volume in slot #0, 5 disks, 256k chunk size # RAID 5 volume in slot #1, 5 disks, 512k chunk size diff --git a/tests/13imsm-r5_r0_3d-grow-r5_r0_4d b/tests/13imsm-r5_r0_3d-grow-r5_r0_4d index 32ebc924..9fed88a2 100644 --- a/tests/13imsm-r5_r0_3d-grow-r5_r0_4d +++ b/tests/13imsm-r5_r0_3d-grow-r5_r0_4d @@ -18,7 +18,7 @@ vol0_offset=0 vol1_level=0 vol1_comp_size=$((5 * 1024)) vol1_chunk=64 -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) vol1_num_comps=$num_disks # After: RAID 5 volume in slot #0, 4 disks, 64k chunk size diff --git a/tests/13imsm-r5_r0_3d-grow-r5_r0_5d b/tests/13imsm-r5_r0_3d-grow-r5_r0_5d index a97002d0..e8beddc3 100644 --- a/tests/13imsm-r5_r0_3d-grow-r5_r0_5d +++ b/tests/13imsm-r5_r0_3d-grow-r5_r0_5d @@ -18,7 +18,7 @@ vol0_offset=0 vol1_level=0 vol1_comp_size=$((5 * 1024)) vol1_chunk=64 -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) vol1_num_comps=$num_disks # After: RAID 5 volume in slot #0, 5 disks, 128k chunk size diff --git a/tests/14imsm-r0_3d-r5_3d-migrate-r5_4d-r5_4d b/tests/14imsm-r0_3d-r5_3d-migrate-r5_4d-r5_4d index 386abeee..cb7328a9 100644 --- a/tests/14imsm-r0_3d-r5_3d-migrate-r5_4d-r5_4d +++ b/tests/14imsm-r0_3d-r5_3d-migrate-r5_4d-r5_4d @@ -19,7 +19,7 @@ vol1_level=5 vol1_comp_size=$((5 * 1024)) vol1_chunk=64 vol1_num_comps=$((num_disks - 1)) -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) # After: RAID 5 volume, 4 disks, 64k chunk size (only member #0) vol0_new_level=5 diff --git a/tests/14imsm-r0_r0_2d-takeover-r10_4d b/tests/14imsm-r0_r0_2d-takeover-r10_4d index df5b0ce3..d068abb3 100644 --- a/tests/14imsm-r0_r0_2d-takeover-r10_4d +++ b/tests/14imsm-r0_r0_2d-takeover-r10_4d @@ -20,7 +20,7 @@ vol1_level=0 vol1_comp_size=$((5 * 1024)) vol1_chunk=64 vol1_num_comps=num_disks -vol1_offset=$(( $vol0_comp_size + 2048 )) +vol1_offset=$(( $vol0_comp_size + 4096 )) # After: RAID 10, 4 disks, 64k chunk size vol0_new_level=10 diff --git a/tests/14imsm-r10_r5_4d-takeover-r0_2d b/tests/14imsm-r10_r5_4d-takeover-r0_2d index 9e5205e2..720e575b 100644 --- a/tests/14imsm-r10_r5_4d-takeover-r0_2d +++ b/tests/14imsm-r10_r5_4d-takeover-r0_2d @@ -20,7 +20,7 @@ vol1_level=5 vol1_comp_size=$((5 * 1024)) vol1_chunk=64 vol1_num_comps=$(( $num_disks - 1 )) -vol1_offset=$(( $vol0_comp_size + 2048 )) +vol1_offset=$(( $vol0_comp_size + 4096 )) # After: RAID 10, 4 disks, 64k chunk size vol0_new_level=0 diff --git a/tests/15imsm-r5_r0_3d_64k-migrate-r5_r0_3d_256k b/tests/15imsm-r5_r0_3d_64k-migrate-r5_r0_3d_256k index da218efa..f9369d5d 100644 --- a/tests/15imsm-r5_r0_3d_64k-migrate-r5_r0_3d_256k +++ b/tests/15imsm-r5_r0_3d_64k-migrate-r5_r0_3d_256k @@ -24,7 +24,7 @@ vol1_level=0 vol1_comp_size=$((5 * 1024)) vol1_chunk=64 vol1_num_comps=$num_disks -vol1_offset=$((vol0_comp_size + 2048)) +vol1_offset=$((vol0_comp_size + 4096)) # After migration paramters vol1_new_level=0 diff --git a/tests/16imsm-r0_3d-migrate-r5_4d b/tests/16imsm-r0_3d-migrate-r5_4d index 4f45479a..265adf94 100644 --- a/tests/16imsm-r0_3d-migrate-r5_4d +++ b/tests/16imsm-r0_3d-migrate-r5_4d @@ -15,6 +15,7 @@ vol0_offset=0 # After: RAID 5, 4 disks, 64k chunk size vol0_new_level=5 +new_num_disks=4 vol0_new_num_comps=$num_disks vol0_new_chunk=64 diff --git a/tests/16imsm-r0_5d-migrate-r5_6d b/tests/16imsm-r0_5d-migrate-r5_6d index bee505bf..535b6099 100644 --- a/tests/16imsm-r0_5d-migrate-r5_6d +++ b/tests/16imsm-r0_5d-migrate-r5_6d @@ -17,5 +17,6 @@ vol0_offset=0 vol0_new_level=5 vol0_new_num_comps=$num_disks vol0_new_chunk=64 +new_num_disks=6 . tests/imsm-grow-template 0 1 diff --git a/tests/16imsm-r5_3d-migrate-r0_3d b/tests/16imsm-r5_3d-migrate-r0_3d index b1459cc1..bcb57090 100644 --- a/tests/16imsm-r5_3d-migrate-r0_3d +++ b/tests/16imsm-r5_3d-migrate-r0_3d @@ -1,7 +1,7 @@ . tests/env-imsm-template # RAID 5 volume (3 disks) migrate to RAID 0 volume (2 disks) -# POSITIVE test +# NEGATIVE test num_disks=3 device_list="$dev0 $dev1 $dev2" @@ -18,4 +18,4 @@ vol0_new_level=0 vol0_new_num_comps=$((num_disks-1)) vol0_new_chunk=64 -. tests/imsm-grow-template 0 1 +. tests/imsm-grow-template 1 1 diff --git a/tests/16imsm-r5_5d-migrate-r0_5d b/tests/16imsm-r5_5d-migrate-r0_5d index 323ca52e..ca77435f 100644 --- a/tests/16imsm-r5_5d-migrate-r0_5d +++ b/tests/16imsm-r5_5d-migrate-r0_5d @@ -1,7 +1,7 @@ . tests/env-imsm-template # RAID 5 volume (5 disks) migration to RAID 0 volume (4 disks) -# POSITIVE test +# NEGATIVE test num_disks=5 device_list="$dev0 $dev1 $dev2 $dev3 $dev4" @@ -18,4 +18,4 @@ vol0_new_level=0 vol0_new_num_comps=$((num_disks - 1)) vol0_new_chunk=64 -. tests/imsm-grow-template 0 1 +. tests/imsm-grow-template 1 1 diff --git a/tests/18imsm-r1_2d-takeover-r0_1d b/tests/18imsm-r1_2d-takeover-r0_1d index cb10ec97..fd5852ed 100644 --- a/tests/18imsm-r1_2d-takeover-r0_1d +++ b/tests/18imsm-r1_2d-takeover-r0_1d @@ -17,6 +17,6 @@ vol0_offset=0 vol0_new_level=0 vol0_new_num_comps=1 vol0_new_chunk=64 -new_num_disks=0 +new_num_disks=1 . tests/imsm-grow-template 0 1 diff --git a/tests/env-imsm-template b/tests/env-imsm-template index ea45bae9..d5247714 100644 --- a/tests/env-imsm-template +++ b/tests/env-imsm-template @@ -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` @@ -30,7 +48,7 @@ imsm_check() { fi _chunk=`cat ${sysfs}/md/chunk_size` if [ $t_chunk -ne $((_chunk/1024)) ]; then - echo "**Error**: Chunk size mismatch - expected $t_chunk, actual $_chunk" >&2 + echo "**Error**: Chunk size mismatch - expected $t_chunk, actual $(($_chunk/1024))" >&2 err=$((err + 1)) fi for i in `seq 0 $((t_num_disks - 1))`; do diff --git a/tests/imsm-grow-template b/tests/imsm-grow-template index 71a0bbb1..428e448e 100644 --- a/tests/imsm-grow-template +++ b/tests/imsm-grow-template @@ -13,10 +13,15 @@ function grow_member() { local size=$5 local offset=$6 local chunk=$7 + local old_chunk=$8 local array_size=$((comps * size)) rm -f $backup_imsm - ( set -ex; mdadm --grow $member --chunk=$chunk --level=$level ) + if [ $chunk -eq $old_chunk ]; then + ( set -ex; mdadm --grow $member --level=$level ) + else + ( set -ex; mdadm --grow $member --chunk=$chunk ) + fi local status=$? if [ $negative_test -ne 0 ]; then if [ $status -eq 0 ]; then @@ -76,9 +81,9 @@ if [ $migration_test -ne 0 ]; then if [ -z $new_num_disks ]; then new_num_disks=$num_disks fi - grow_member $member0 $new_num_disks $vol0_new_num_comps $vol0_new_level $vol0_comp_size $vol0_offset $vol0_new_chunk + grow_member $member0 $new_num_disks $vol0_new_num_comps $vol0_new_level $vol0_comp_size $vol0_offset $vol0_new_chunk $vol0_chunk if [[ $vol1_new_chunk -ne 0 ]] ; then - grow_member $member1 $new_num_disks $vol1_new_num_comps $vol1_new_level $vol1_comp_size $vol1_offset $vol1_new_chunk + grow_member $member1 $new_num_disks $vol1_new_num_comps $vol1_new_level $vol1_comp_size $vol1_offset $vol1_new_chunk $vol1_chunk fi else rm -f $backup_imsm |