]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - 6/tools/regression/geom_mirror/test-7.sh
Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64
[FreeBSD/FreeBSD.git] / 6 / tools / regression / geom_mirror / test-7.sh
1 #!/bin/sh
2 # $FreeBSD$
3
4 name="test"
5 base=`basename $0`
6 balance="prefer"
7 us0=45
8 us1=`expr $us0 + 1`
9 us2=`expr $us0 + 2`
10 ddbs=2048
11 nblocks1=1024
12 nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
13 src=`mktemp /tmp/$base.XXXXXX` || exit 1
14 dst=`mktemp /tmp/$base.XXXXXX` || exit 1
15
16 dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
17
18 mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
19 mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
20 mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
21
22 gmirror label -b $balance $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
23 sleep 1
24
25 dd if=${src} of=/dev/mirror/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
26
27 dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
28 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
29         echo "FAIL"
30 else
31         echo "PASS"
32 fi
33
34 gmirror remove $name md${us0}
35 dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
36 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
37         echo "FAIL"
38 else
39         echo "PASS"
40 fi
41
42 gmirror remove $name md${us1}
43 dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
44 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
45         echo "FAIL"
46 else
47         echo "PASS"
48 fi
49
50 gmirror remove $name md${us2}
51 dd if=/dev/mirror/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
52 if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
53         echo "FAIL"
54 else
55         echo "PASS"
56 fi
57
58 # mirror/${name} should be removed.
59 if [ -c /dev/${name} ]; then
60         echo "FAIL"
61 else
62         echo "PASS"
63 fi
64
65 mdconfig -d -u $us0
66 mdconfig -d -u $us1
67 mdconfig -d -u $us2
68 rm -f ${src} ${dst}