]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - tools/regression/geom_gate/test-1.t
MFC r293621,r293622,r293815:
[FreeBSD/stable/10.git] / tools / regression / geom_gate / test-1.t
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 conf=`mktemp $base.XXXXXX` || exit 1
14 pidfile=/var/run/ggated.pid
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 $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
46 dd if=/dev/${src} of=/dev/ggate${us} bs=1m count=1
47 sleep 1
48
49 work_checksum=$(md5 -q /dev/$work)
50 if [ "$work_checksum" != "$src_checksum" ]; then
51         echo "not ok 1 - md5 checksums didn't match ($work_checksum != $src_checksum)"
52         echo "not ok 2 # SKIP"
53 else
54         echo 'ok 1 - md5 checksum'
55
56         ggate_checksum=$(md5 -q /dev/ggate${us})
57         if [ "$ggate_checksum" != "$src_checksum" ]; then
58                 echo "not ok 2 - md5 checksums didn't match ($ggate_checksum != $src_checksum)"
59         else
60                 echo 'ok 2 - md5 checksum'
61         fi
62 fi