xref: /freebsd-src/tests/sys/geom/class/raid3/12_test.sh (revision 96950419f15510287080c557174e0d8409f06956)
109d98641SEnji Cooper#!/bin/sh
209d98641SEnji Cooper
309d98641SEnji Cooper. `dirname $0`/conf.sh
409d98641SEnji Cooper
509d98641SEnji Cooperecho "1..1"
609d98641SEnji Cooper
709d98641SEnji Coopernblocks1=9
809d98641SEnji Coopernblocks2=`expr $nblocks1 - 1`
909d98641SEnji Coopernblocks3=`expr $nblocks2 / 2`
1009d98641SEnji Cooper
11*96950419SGleb Smirnoffattach_md us0 -t malloc -s $nblocks1 || exit 1
12*96950419SGleb Smirnoffattach_md us1 -t malloc -s $nblocks1 || exit 1
13*96950419SGleb Smirnoffattach_md us2 -t malloc -s $nblocks1 || exit 1
1409d98641SEnji Cooper
1509d98641SEnji Cooperdd if=/dev/random of=/dev/${us0} count=$nblocks1 >/dev/null 2>&1
1609d98641SEnji Cooperdd if=/dev/random of=/dev/${us1} count=$nblocks1 >/dev/null 2>&1
1709d98641SEnji Cooperdd if=/dev/random of=/dev/${us2} count=$nblocks1 >/dev/null 2>&1
1809d98641SEnji Cooper
1909d98641SEnji Coopergraid3 label -w $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1
2009d98641SEnji Cooperdevwait
2109d98641SEnji Cooper# Wait for synchronization.
2209d98641SEnji Coopersleep 2
2309d98641SEnji Coopergraid3 stop $name
2409d98641SEnji Cooper# Break one component.
2509d98641SEnji Cooperdd if=/dev/random of=/dev/${us1} count=$nblocks2 >/dev/null 2>&1
2609d98641SEnji Cooper# Provoke retaste of the rest components.
2709d98641SEnji Coopertrue > /dev/${us0}
2809d98641SEnji Coopertrue > /dev/${us2}
2909d98641SEnji Coopersleep 1
3009d98641SEnji Cooper
3109d98641SEnji Cooperdd if=/dev/raid3/${name} of=/dev/null bs=1k count=$nblocks3 >/dev/null 2>&1
3209d98641SEnji Cooperec=$?
3309d98641SEnji Cooperif [ $ec -eq 0 ]; then
3409d98641SEnji Cooper	echo "not ok 1"
3509d98641SEnji Cooperelse
3609d98641SEnji Cooper	echo "ok 1"
3709d98641SEnji Cooperfi
38