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