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