1#!/bin/sh
2# $FreeBSD$
3
4. `dirname $0`/conf.sh
5
6echo "1..1"
7
8us0=45
9us1=`expr $us0 + 1`
10us2=`expr $us0 + 2`
11nblocks1=9
12nblocks2=`expr $nblocks1 - 1`
13nblocks3=`expr $nblocks2 / 2`
14
15mdconfig -a -t malloc -s $nblocks1 -u $us0 || exit 1
16mdconfig -a -t malloc -s $nblocks1 -u $us1 || exit 1
17mdconfig -a -t malloc -s $nblocks1 -u $us2 || exit 1
18
19dd if=/dev/random of=/dev/md${us0} count=$nblocks1 >/dev/null 2>&1
20dd if=/dev/random of=/dev/md${us1} count=$nblocks1 >/dev/null 2>&1
21dd if=/dev/random of=/dev/md${us2} count=$nblocks1 >/dev/null 2>&1
22
23graid3 label -w $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
24devwait
25# Wait for synchronization.
26sleep 2
27graid3 stop $name
28# Break one component.
29dd if=/dev/random of=/dev/md${us1} count=$nblocks2 >/dev/null 2>&1
30# Provoke retaste of the rest components.
31true > /dev/md${us0}
32true > /dev/md${us2}
33sleep 1
34
35dd if=/dev/raid3/${name} of=/dev/null bs=1k count=$nblocks3 >/dev/null 2>&1
36ec=$?
37if [ $ec -eq 0 ]; then
38	echo "not ok 1"
39else
40	echo "ok 1"
41fi
42
43graid3 stop $name
44mdconfig -d -u $us0
45mdconfig -d -u $us1
46mdconfig -d -u $us2
47