xref: /freebsd/tests/sys/geom/class/mirror/2_test.sh (revision 96950419f15510287080c557174e0d8409f06956)
109d98641SEnji Cooper#!/bin/sh
209d98641SEnji Cooper
309d98641SEnji Cooper. `dirname $0`/conf.sh
409d98641SEnji Cooper
509d98641SEnji Cooperecho "1..4"
609d98641SEnji Cooper
709d98641SEnji Cooperbalance="round-robin"
809d98641SEnji Cooperddbs=2048
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 $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 Cooperdd if=/dev/${us0} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
3209d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
3309d98641SEnji Cooper	echo "not ok 2"
3409d98641SEnji Cooperelse
3509d98641SEnji Cooper	echo "ok 2"
3609d98641SEnji Cooperfi
3709d98641SEnji Cooperdd if=/dev/${us1} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
3809d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
3909d98641SEnji Cooper	echo "not ok 3"
4009d98641SEnji Cooperelse
4109d98641SEnji Cooper	echo "ok 3"
4209d98641SEnji Cooperfi
4309d98641SEnji Cooper
4409d98641SEnji Cooperdd if=/dev/${us2} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
4509d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
4609d98641SEnji Cooper	echo "not ok 4"
4709d98641SEnji Cooperelse
4809d98641SEnji Cooper	echo "ok 4"
4909d98641SEnji Cooperfi
5009d98641SEnji Cooper
5109d98641SEnji Cooperrm -f ${src} ${dst}
52