109d98641SEnji Cooper#!/bin/sh 209d98641SEnji Cooper 309d98641SEnji Cooper. `dirname $0`/conf.sh 409d98641SEnji Cooper 509d98641SEnji Cooperecho "1..5" 609d98641SEnji Cooper 709d98641SEnji Cooperbalance="split" 809d98641SEnji Cooperddbs=8192 909d98641SEnji Coopernblocks1=1024 1009d98641SEnji Coopernblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` 1109d98641SEnji Coopersrc=`mktemp $base.XXXXXX` || exit 1 1209d98641SEnji Cooperdst=`mktemp $base.XXXXXX` || exit 1 1309d98641SEnji Cooper 1409d98641SEnji Cooperdd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 1509d98641SEnji Cooper 16*96950419SGleb Smirnoffattach_md us0 -t malloc -s `expr $nblocks1 + 1` || exit 1 17*96950419SGleb Smirnoffattach_md us1 -t malloc -s `expr $nblocks1 + 1` || exit 1 18*96950419SGleb Smirnoffattach_md us2 -t malloc -s `expr $nblocks1 + 1` || exit 1 1909d98641SEnji Cooper 2009d98641SEnji Coopergmirror label -b $balance -s `expr $ddbs / 2` $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1 2109d98641SEnji Cooperdevwait 2209d98641SEnji Cooper 2309d98641SEnji Cooperdd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 2409d98641SEnji Cooper 2509d98641SEnji Cooperdd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 2609d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then 2709d98641SEnji Cooper echo "not ok 1" 2809d98641SEnji Cooperelse 2909d98641SEnji Cooper echo "ok 1" 3009d98641SEnji Cooperfi 3109d98641SEnji Cooper 3209d98641SEnji Coopergmirror remove $name ${us0} 3309d98641SEnji Cooperdd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 3409d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then 3509d98641SEnji Cooper echo "not ok 2" 3609d98641SEnji Cooperelse 3709d98641SEnji Cooper echo "ok 2" 3809d98641SEnji Cooperfi 3909d98641SEnji Cooper 4009d98641SEnji Coopergmirror remove $name ${us1} 4109d98641SEnji Cooperdd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 4209d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then 4309d98641SEnji Cooper echo "not ok 3" 4409d98641SEnji Cooperelse 4509d98641SEnji Cooper echo "ok 3" 4609d98641SEnji Cooperfi 4709d98641SEnji Cooper 4809d98641SEnji Coopergmirror remove $name ${us2} 4909d98641SEnji Cooperdd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 5009d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then 5109d98641SEnji Cooper echo "not ok 4" 5209d98641SEnji Cooperelse 5309d98641SEnji Cooper echo "ok 4" 5409d98641SEnji Cooperfi 5509d98641SEnji Cooper 5609d98641SEnji Cooper# mirror/${name} should be removed. 5709d98641SEnji Cooperif [ -c /dev/${name} ]; then 5809d98641SEnji Cooper echo "not ok 5" 5909d98641SEnji Cooperelse 6009d98641SEnji Cooper echo "ok 5" 6109d98641SEnji Cooperfi 6209d98641SEnji Cooper 6309d98641SEnji Cooperrm -f ${src} ${dst} 64