xref: /freebsd/tests/sys/geom/class/shsec/2_test.sh (revision 09d986419d8834aa4fdb998695a8b7cce7e8e52a)
1*09d98641SEnji Cooper#!/bin/sh
2*09d98641SEnji Cooper# $FreeBSD$
3*09d98641SEnji Cooper
4*09d98641SEnji Cooper. `dirname $0`/conf.sh
5*09d98641SEnji Cooper
6*09d98641SEnji Cooperecho "1..4"
7*09d98641SEnji Cooper
8*09d98641SEnji Coopernblocks1=1024
9*09d98641SEnji Coopernblocks2=`expr $nblocks1 + 1`
10*09d98641SEnji Coopersrc=`mktemp $base.XXXXXX` || exit 1
11*09d98641SEnji Cooperdst=`mktemp $base.XXXXXX` || exit 1
12*09d98641SEnji Cooper
13*09d98641SEnji Cooperdd if=/dev/random of=${src} count=$nblocks1 >/dev/null 2>&1
14*09d98641SEnji Cooper
15*09d98641SEnji Cooperus0=$(attach_md -t malloc -s $nblocks2) || exit 1
16*09d98641SEnji Cooperus1=$(attach_md -t malloc -s $nblocks2) || exit 1
17*09d98641SEnji Cooperus2=$(attach_md -t malloc -s $nblocks2) || exit 1
18*09d98641SEnji Cooper
19*09d98641SEnji Coopergshsec label $name /dev/$us0 /dev/$us1 /dev/$us2 || exit 1
20*09d98641SEnji Cooperdevwait
21*09d98641SEnji Cooper
22*09d98641SEnji Cooperdd if=${src} of=/dev/shsec/${name} count=$nblocks1 >/dev/null 2>&1
23*09d98641SEnji Cooper
24*09d98641SEnji Cooperdd if=/dev/shsec/${name} of=${dst} count=$nblocks1 >/dev/null 2>&1
25*09d98641SEnji Cooperif [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
26*09d98641SEnji Cooper	echo "not ok 1"
27*09d98641SEnji Cooperelse
28*09d98641SEnji Cooper	echo "ok 1"
29*09d98641SEnji Cooperfi
30*09d98641SEnji Cooper
31*09d98641SEnji Cooperdd if=/dev/${us0} of=${dst} count=$nblocks1 >/dev/null 2>&1
32*09d98641SEnji Cooperif [ `md5 -q ${src}` = `md5 -q ${dst}` ]; then
33*09d98641SEnji Cooper	echo "not ok 2"
34*09d98641SEnji Cooperelse
35*09d98641SEnji Cooper	echo "ok 2"
36*09d98641SEnji Cooperfi
37*09d98641SEnji Cooper
38*09d98641SEnji Cooperdd if=/dev/${us1} of=${dst} count=$nblocks1 >/dev/null 2>&1
39*09d98641SEnji Cooperif [ `md5 -q ${src}` = `md5 -q ${dst}` ]; then
40*09d98641SEnji Cooper	echo "not ok 3"
41*09d98641SEnji Cooperelse
42*09d98641SEnji Cooper	echo "ok 3"
43*09d98641SEnji Cooperfi
44*09d98641SEnji Cooper
45*09d98641SEnji Cooperdd if=/dev/${us2} of=${dst} count=$nblocks1 >/dev/null 2>&1
46*09d98641SEnji Cooperif [ `md5 -q ${src}` = `md5 -q ${dst}` ]; then
47*09d98641SEnji Cooper	echo "not ok 4"
48*09d98641SEnji Cooperelse
49*09d98641SEnji Cooper	echo "ok 4"
50*09d98641SEnji Cooperfi
51*09d98641SEnji Cooper
52*09d98641SEnji Cooperrm -f ${src} ${dst}
53