]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - tests/sys/geom/class/gate/1_test.sh
MFC r311349, r311445
[FreeBSD/stable/10.git] / tests / sys / geom / class / gate / 1_test.sh
1 #!/bin/sh
2 # $FreeBSD$
3
4 . `dirname $0`/conf.sh
5
6 echo '1..2'
7
8 base=`basename $0`
9 us=0
10 while [ -c /dev/ggate${us} ]; do
11         : $(( us += 1 ))
12 done
13 pidfile=ggated.$$.pid
14 conf=`mktemp $base.XXXXXX` || exit 1
15 port=33080
16
17 work=$(attach_md -t malloc -s 1M)
18 src=$(attach_md -t malloc -s 1M)
19
20 test_cleanup()
21 {
22         ggatec destroy -f -u $us
23         pkill -F $pidfile
24         geom_test_cleanup
25 }
26 trap test_cleanup ABRT EXIT INT TERM
27
28 dd if=/dev/random of=/dev/$work bs=1m count=1 conv=sync
29 dd if=/dev/random of=/dev/$src bs=1m count=1 conv=sync
30 src_checksum=$(md5 -q /dev/$src)
31
32 echo "127.0.0.1 RW /dev/$work" > $conf
33
34 if ! ggated -p $port -F $pidfile $conf; then
35         echo 'ggated failed to start'
36         echo 'Bail out!'
37         exit 1
38 fi
39 sleep 1
40 if ! ggatec create -p $port -u $us 127.0.0.1 /dev/$work; then
41         echo 'ggatec create failed'
42         echo 'Bail out!'
43         exit 1
44 fi
45 sleep 1
46
47 dd if=/dev/${src} of=/dev/ggate${us} bs=1m count=1
48 sleep 1
49
50 work_checksum=$(md5 -q /dev/$work)
51 if [ "$work_checksum" != "$src_checksum" ]; then
52         echo "not ok 1 - md5 checksums didn't match ($work_checksum != $src_checksum)"
53         echo "not ok 2 # SKIP"
54 else
55         echo 'ok 1 - md5 checksum'
56
57         ggate_checksum=$(md5 -q /dev/ggate${us})
58         if [ "$ggate_checksum" != "$src_checksum" ]; then
59                 echo "not ok 2 - md5 checksums didn't match ($ggate_checksum != $src_checksum)"
60         else
61                 echo 'ok 2 - md5 checksum'
62         fi
63 fi