xref: /freebsd/tests/sys/geom/class/raid3/8_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 Cooperddbs=2048
809d98641SEnji Coopernblocks1=1024
909d98641SEnji Coopernblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
1009d98641SEnji Coopersrc=`mktemp $base.XXXXXX` || exit 1
1109d98641SEnji Cooperdst=`mktemp $base.XXXXXX` || exit 1
1209d98641SEnji Cooper
13*96950419SGleb Smirnoffattach_md us0 -t malloc -s $(expr $nblocks1 + 1) || exit 1
14*96950419SGleb Smirnoffattach_md us1 -t malloc -s $(expr $nblocks1 + 1) || exit 1
15*96950419SGleb Smirnoffattach_md us2 -t malloc -s $(expr $nblocks1 + 1) || exit 1
1609d98641SEnji Cooper
1709d98641SEnji Cooperdd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
1809d98641SEnji Cooper
1909d98641SEnji Coopergraid3 label $name /dev/${us0} /dev/${us1} /dev/${us2} || exit 1
2009d98641SEnji Cooperdevwait
2109d98641SEnji Cooper
2209d98641SEnji Cooper#
2309d98641SEnji Cooper# Writing without DATA component and rebuild of DATA component.
2409d98641SEnji Cooper#
2509d98641SEnji Coopergraid3 remove -n 1 $name
2609d98641SEnji Cooperdd if=/dev/zero of=/dev/${us1} bs=512 count=`expr $nblocks1 + 1` >/dev/null 2>&1
2709d98641SEnji Cooperdd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
2809d98641SEnji Coopergraid3 insert -n 1 $name md${us1}
2909d98641SEnji Coopersleep 1
3009d98641SEnji Cooper
3109d98641SEnji Cooperdd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
3209d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
3309d98641SEnji Cooper	echo "not ok 1"
3409d98641SEnji Cooperelse
3509d98641SEnji Cooper	echo "ok 1"
3609d98641SEnji Cooperfi
3709d98641SEnji Cooper
3809d98641SEnji Cooperrm -f ${src} ${dst}
39