4_test.sh revision 153182
1153182Spjd#!/bin/sh 2153182Spjd# $FreeBSD: head/tools/regression/geom_mirror/test-4.t 153182 2005-12-07 00:34:27Z pjd $ 3153182Spjd 4153182Spjdname="test" 5153182Spjdbase=`basename $0` 6153182Spjdbalance="load" 7153182Spjdus0=45 8153182Spjdus1=`expr $us0 + 1` 9153182Spjdus2=`expr $us0 + 2` 10153182Spjdddbs=2048 11153182Spjdnblocks1=1024 12153182Spjdnblocks2=`expr $nblocks1 / \( $ddbs / 512 \)` 13153182Spjdsrc=`mktemp /tmp/$base.XXXXXX` || exit 1 14153182Spjddst=`mktemp /tmp/$base.XXXXXX` || exit 1 15153182Spjd 16153182Spjdecho "1..5" 17153182Spjd 18153182Spjddd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 19153182Spjd 20153182Spjdmdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1 21153182Spjdmdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1 22153182Spjdmdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1 23153182Spjd 24153182Spjdkldstat -q -m g_mirror || gmirror load || exit 1 25153182Spjd 26153182Spjdgmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1 27153182Spjdsleep 1 28153182Spjd 29153182Spjddd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 30153182Spjd 31153182Spjddd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 32153182Spjdif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then 33153182Spjd echo "not ok 1" 34153182Spjdelse 35153182Spjd echo "ok 1" 36153182Spjdfi 37153182Spjd 38153182Spjdgmirror remove $name md${us0} 39153182Spjddd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 40153182Spjdif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then 41153182Spjd echo "not ok 2" 42153182Spjdelse 43153182Spjd echo "ok 2" 44153182Spjdfi 45153182Spjd 46153182Spjdgmirror remove $name md${us1} 47153182Spjddd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 48153182Spjdif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then 49153182Spjd echo "not ok 3" 50153182Spjdelse 51153182Spjd echo "ok 3" 52153182Spjdfi 53153182Spjd 54153182Spjdgmirror remove $name md${us2} 55153182Spjddd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1 56153182Spjdif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then 57153182Spjd echo "not ok 4" 58153182Spjdelse 59153182Spjd echo "ok 4" 60153182Spjdfi 61153182Spjd 62153182Spjd# mirror/${name} should be removed. 63153182Spjdif [ -c /dev/${name} ]; then 64153182Spjd echo "not ok 5" 65153182Spjdelse 66153182Spjd echo "ok 5" 67153182Spjdfi 68153182Spjd 69153182Spjdmdconfig -d -u $us0 70153182Spjdmdconfig -d -u $us1 71153182Spjdmdconfig -d -u $us2 72153182Spjdrm -f ${src} ${dst} 73