1#!/bin/sh
2# $FreeBSD$
3
4base=`basename $0`
5no=45
6sectors=100
7keyfile=`mktemp /tmp/$base.XXXXXX` || exit 1
8backupfile=`mktemp /tmp/$base.XXXXXX` || exit 1
9
10echo "1..13"
11
12dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
13
14mdconfig -a -t malloc -s $sectors -u $no || exit 1
15
16# -B none
17rm -f /var/backups/md${no}.eli
18geli init -B none -P -K $keyfile md${no} 2>/dev/null
19if [ ! -f /var/backups/md${no}.eli ]; then
20	echo "ok 1 - -B none"
21else
22	echo "not ok 1 - -B none"
23fi
24
25# no -B
26rm -f /var/backups/md${no}.eli
27geli init -P -K $keyfile md${no} >/dev/null 2>&1
28if [ -f /var/backups/md${no}.eli ]; then
29	echo "ok 2 - no -B"
30else
31	echo "not ok 2 - no -B"
32fi
33geli clear md${no}
34geli attach -p -k $keyfile md${no} 2>/dev/null
35if [ $? -ne 0 ]; then
36	echo "ok 3 - no -B"
37else
38	echo "not ok 3 - no -B"
39fi
40if [ ! -c /dev/md${no}.eli ]; then
41	echo "ok 4 - no -B"
42else
43	echo "not ok 4 - no -B"
44fi
45geli restore /var/backups/md${no}.eli md${no}
46if [ $? -eq 0 ]; then
47	echo "ok 5 - no -B"
48else
49	echo "not ok 5 - no -B"
50fi
51geli attach -p -k $keyfile md${no} 2>/dev/null
52if [ $? -eq 0 ]; then
53	echo "ok 6 - no -B"
54else
55	echo "not ok 6 - no -B"
56fi
57if [ -c /dev/md${no}.eli ]; then
58	echo "ok 7 - no -B"
59else
60	echo "not ok 7 - no -B"
61fi
62geli detach md${no}
63rm -f /var/backups/md${no}.eli
64
65# -B file
66rm -f $backupfile
67geli init -B $backupfile -P -K $keyfile md${no} >/dev/null 2>&1
68if [ -f $backupfile ]; then
69	echo "ok 8 - -B file"
70else
71	echo "not ok 8 - -B file"
72fi
73geli clear md${no}
74geli attach -p -k $keyfile md${no} 2>/dev/null
75if [ $? -ne 0 ]; then
76	echo "ok 9 - -B file"
77else
78	echo "not ok 9 - -B file"
79fi
80if [ ! -c /dev/md${no}.eli ]; then
81	echo "ok 10 - -B file"
82else
83	echo "not ok 10 - -B file"
84fi
85geli restore $backupfile md${no}
86if [ $? -eq 0 ]; then
87	echo "ok 11 - -B file"
88else
89	echo "not ok 11 - -B file"
90fi
91geli attach -p -k $keyfile md${no} 2>/dev/null
92if [ $? -eq 0 ]; then
93	echo "ok 12 - -B file"
94else
95	echo "not ok 12 - -B file"
96fi
97if [ -c /dev/md${no}.eli ]; then
98	echo "ok 13 - -B file"
99else
100	echo "not ok 13 - -B file"
101fi
102geli detach md${no}
103rm -f $backupfile
104
105mdconfig -d -u $no
106rm -f $keyfile
107