]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/regression/geom_raid3/test-12.sh
merge fix for boot-time hang on centos' xen
[FreeBSD/FreeBSD.git] / tools / regression / geom_raid3 / test-12.sh
1 #!/bin/sh
2 # $FreeBSD$
3
4 name="test"
5 base=`basename $0`
6 us0=45
7 us1=`expr $us0 + 1`
8 us2=`expr $us0 + 2`
9 nblocks1=9
10 nblocks2=`expr $nblocks1 - 1`
11 nblocks3=`expr $nblocks2 / 2`
12
13 mdconfig -a -t malloc -s $nblocks1 -u $us0 || exit 1
14 mdconfig -a -t malloc -s $nblocks1 -u $us1 || exit 1
15 mdconfig -a -t malloc -s $nblocks1 -u $us2 || exit 1
16
17 dd if=/dev/random of=/dev/md${us0} count=$nblocks1 >/dev/null 2>&1
18 dd if=/dev/random of=/dev/md${us1} count=$nblocks1 >/dev/null 2>&1
19 dd if=/dev/random of=/dev/md${us2} count=$nblocks1 >/dev/null 2>&1
20
21 graid3 label -w $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
22 # Wait for synchronization.
23 sleep 2
24 graid3 stop $name
25 # Break one component.
26 dd if=/dev/random of=/dev/md${us1} count=$nblocks2 >/dev/null 2>&1
27 # Provoke retaste of the rest components.
28 true > /dev/md${us0}
29 true > /dev/md${us2}
30 sleep 1
31
32 dd if=/dev/raid3/${name} of=/dev/null bs=1k count=$nblocks3 >/dev/null 2>&1
33 ec=$?
34 if [ $ec -eq 0 ]; then
35         echo "FAIL"
36 else
37         echo "PASS"
38 fi
39
40 graid3 stop $name
41 mdconfig -d -u $us0
42 mdconfig -d -u $us1
43 mdconfig -d -u $us2