1105513Sphk#!/bin/sh
2105513Sphk# $FreeBSD$
3105513Sphk
4105513Sphkset -e
5105513Sphk
6105513SphkMD=99
7120878Sphkmdconfig -d -u $MD > /dev/null 2>&1 || true
8105513Sphk
9105513Sphkmdconfig -a -t malloc -s 1m -u $MD
10105513Sphk
11105513SphkD=/dev/md$MD
12105513Sphk
13105513Sphk./gbde init $D -P foo -L /tmp/_l1
14105513Sphk./gbde setkey $D -p foo -l /tmp/_l1 -P bar -L /tmp/_l1
15105513Sphk./gbde setkey $D -p bar -l /tmp/_l1 -P foo -L /tmp/_l1
16105513Sphk
17105513Sphk./gbde setkey $D -p foo  -l /tmp/_l1 -n 2 -P foo2 -L /tmp/_l2
18105513Sphk./gbde setkey $D -p foo2 -l /tmp/_l2 -n 3 -P foo3 -L /tmp/_l3
19105513Sphk./gbde setkey $D -p foo3 -l /tmp/_l3 -n 4 -P foo4 -L /tmp/_l4
20105513Sphk./gbde setkey $D -p foo4 -l /tmp/_l4 -n 1 -P foo1 -L /tmp/_l1
21105513Sphk
22105513Sphk./gbde nuke $D -p foo1 -l /tmp/_l1 -n 4
23105513Sphkif ./gbde nuke $D -p foo4 -l /tmp/_l4 -n 3 ; then false ; fi
24105513Sphk./gbde destroy $D -p foo2 -l /tmp/_l2
25105513Sphkif ./gbde destroy $D -p foo2 -l /tmp/_l2 ; then false ; fi
26105513Sphk
27105513Sphk./gbde nuke $D -p foo1 -l /tmp/_l1 -n -1
28105513Sphkif ./gbde nuke $D -p foo1 -l /tmp/_l1 -n -1 ; then false ; fi
29105513Sphkif ./gbde nuke $D -p foo2 -l /tmp/_l2 -n -1 ; then false ; fi
30105513Sphkif ./gbde nuke $D -p foo3 -l /tmp/_l3 -n -1 ; then false ; fi
31105513Sphkif ./gbde nuke $D -p foo4 -l /tmp/_l4 -n -1 ; then false ; fi
32105513Sphk
33168420Spjdrm -f /tmp/_l1 /tmp/_l2 /tmp/_l3 /tmp/_l4
34168420Spjd
35105513Sphk./gbde init $D -P foo 
36105513Sphk./gbde setkey $D -p foo -P bar
37105513Sphk./gbde setkey $D -p bar -P foo
38105513Sphk
39105513Sphk./gbde setkey $D -p foo  -n 2 -P foo2
40105513Sphk./gbde setkey $D -p foo2 -n 3 -P foo3
41105513Sphk./gbde setkey $D -p foo3 -n 4 -P foo4
42105513Sphk./gbde setkey $D -p foo4 -n 1 -P foo1
43105513Sphk
44120878Sphkmdconfig -d -u $MD
45120878Sphk
46120878Sphkmdconfig -a -t malloc -s 1m -u $MD
47121169Sphkif [ -f image.uu ] ; then
48121169Sphk	uudecode -p image.uu | bzcat > $D
49121169Sphkelse
50121169Sphk	uudecode -p ${1}/image.uu | bzcat > $D
51121169Sphkfi
52125578Sphk
53125578Sphkif [ `md5 < $D` != "a4066a739338d451b919e63f9ee4a12c" ] ; then
54125578Sphk	echo "Failed to set up md(4) device correctly"
55125578Sphk	exit 2
56125578Sphkfi
57125578Sphk
58125578Sphk./gbde attach $D -p foo
59120878Sphkfsck_ffs ${D}.bde
60125578Sphk./gbde detach $D
61120878Sphkmdconfig -d -u $MD
62120878Sphk
63120878Sphk
64105513Sphkecho "***********"
65105513Sphkecho "Test passed"
66105513Sphkecho "***********"
67105513Sphkexit 0
68