From: NeilBrown Date: Wed, 15 Jun 2011 06:30:09 +0000 (+1000) Subject: Remove more duplicated code X-Git-Tag: mdadm-3.2.2~8 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=commitdiff_plain;h=67480d7593fa90665a08693c00da533a292b4ab2 Remove more duplicated code Code from env-imsm-template is also in 09imsm-create-fail-rebuild, so remove it from there. Signed-off-by: NeilBrown --- diff --git a/tests/08imsm-overlap b/tests/08imsm-overlap index f55c84e1..e832257c 100644 --- a/tests/08imsm-overlap +++ b/tests/08imsm-overlap @@ -1,11 +1,6 @@ . tests/env-imsm-template -member2=/dev/md/vol2 -member3=/dev/md/vol3 -member4=/dev/md/vol4 - - # create raid arrays with varying degress of overlap mdadm -CR $container -e imsm -n 6 $dev0 $dev1 $dev2 $dev3 $dev4 $dev5 imsm_check container 6 diff --git a/tests/09imsm-create-fail-rebuild b/tests/09imsm-create-fail-rebuild index 758edc31..3b288846 100644 --- a/tests/09imsm-create-fail-rebuild +++ b/tests/09imsm-create-fail-rebuild @@ -18,73 +18,7 @@ imsm_check_removal() { fi } -imsm_check() { - udevadm settle - case $1 in - container ) - grep -s " blocks super external:imsm" /proc/mdstat > /dev/null || { - echo >&2 "ERROR correctly formed container not found"; cat /proc/mdstat; exit 1;} - ;; - member ) - member=$2 - num_disks=$3 - level=$4 - size=$5 - offset=$6 - chunk=$7 - err=0 - - if [ $level -ne 1 ]; then - size=$((size & ~(chunk - 1))) - else - chunk=64 - fi - eval `stat -L -c "let major=0x%t; let minor=0x%T;" $member` - sysfs=/sys/dev/block/${major}:${minor} - if [ ! -f ${sysfs}/md/array_state ]; then - echo "member array $member not found" >&2 - cat /proc/mdstat >&2 - exit 1 - fi - _chunk=`cat ${sysfs}/md/chunk_size` - if [ $chunk -ne $((_chunk/1024)) ]; then - echo "chunk mismatch expected $chunk got $_chunk" >&2 - err=$((err+1)) - fi - for i in `seq 0 $((num_disks-1))` - do - _offset=`cat ${sysfs}/md/rd${i}/offset` - if [ $offset -ne $((_offset/2)) ]; then - echo "offset mismatch expected $offset got $_offset" >&2 - err=$((err+1)) - fi - _size=`cat ${sysfs}/md/rd${i}/size` - if [ $size -ne $_size ]; then - echo "size mismatch expected $size got $_size" >&2 - err=$((err+1)) - fi - done - - if [ $err -gt 0 ]; then - echo "$member failed check" >&2 - cat /proc/mdstat >&2 - mdadm -E /dev/loop0 >&2 - exit 1 - fi - ;; - * ) echo >&2 ERROR unknown check $1 ; exit 1; - esac -} - -export IMSM_DEVNAME_AS_SERIAL=1 -export IMSM_TEST_OROM=1 -export IMSM_NO_PLATFORM=1 -container=/dev/md/container -member0=/dev/md/vol0 -member1=/dev/md/vol1 -member2=/dev/md/vol2 -member3=/dev/md/vol3 -member4=/dev/md/vol4 +. tests/env-imsm-template # IMSM rounds to multiples of one mebibyte - 1024K DEV_ROUND_K=1024 @@ -99,7 +33,7 @@ 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)) @@ -107,7 +41,7 @@ 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 +imsm_check member $member1 $num_disks $level $size $size $offset $chunk testdev $member1 1 $size 1 check wait @@ -123,14 +57,14 @@ 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=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 diff --git a/tests/env-imsm-template b/tests/env-imsm-template index 30b73db1..bc5f5852 100644 --- a/tests/env-imsm-template +++ b/tests/env-imsm-template @@ -14,6 +14,13 @@ 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_chunk=64 + fi + t_size=$((t_size/1024)) + t_size=$((t_size*1024)) err=0 eval `stat -L -c "let major=0x%t; let minor=0x%T;" $t_member` @@ -62,3 +69,6 @@ export MDADM_EXPERIMENTAL=1 container=/dev/md/container member0=/dev/md/vol0 member1=/dev/md/vol1 +member2=/dev/md/vol2 +member3=/dev/md/vol3 +member4=/dev/md/vol4