]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - tests/sys/geom/class/eli/readonly_test.sh
MFC r294973:
[FreeBSD/stable/10.git] / tests / sys / geom / class / eli / readonly_test.sh
1 #!/bin/sh
2 # $FreeBSD$
3
4 . $(dirname $0)/conf.sh
5
6 base=`basename $0`
7 sectors=100
8 keyfile=`mktemp $base.XXXXXX` || exit 1
9 mdconfig -a -t malloc -s `expr $sectors + 1` -u $no || exit 1
10
11 echo "1..11"
12
13 dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
14
15 geli init -B none -P -K $keyfile md${no}
16 if [ $? -eq 0 ]; then
17         echo "ok 1"
18 else
19         echo "not ok 1"
20 fi
21
22 geli attach -r -p -k $keyfile md${no}
23 if [ $? -eq 0 ]; then
24         echo "ok 2"
25 else
26         echo "not ok 2"
27 fi
28
29 sh -c "true >/dev/md${no}.eli" 2>/dev/null
30 if [ $? -ne 0 ]; then
31         echo "ok 3"
32 else
33         echo "not ok 3"
34 fi
35
36 geli kill md${no}
37 if [ $? -eq 0 ]; then
38         echo "ok 4"
39 else
40         echo "not ok 4"
41 fi
42
43 # kill should detach provider...
44 if [ ! -c /dev/md{$no}.eli ]; then
45         echo "ok 5"
46 else
47         echo "not ok 5"
48 fi
49
50 # ...but not destroy the metadata.
51 geli attach -r -p -k $keyfile md${no}
52 if [ $? -eq 0 ]; then
53         echo "ok 6"
54 else
55         echo "not ok 6"
56 fi
57
58 geli setkey -n 1 -P -K /dev/null md${no} 2>/dev/null
59 if [ $? -ne 0 ]; then
60         echo "ok 7"
61 else
62         echo "not ok 7"
63 fi
64
65 geli delkey -n 0 md${no} 2>/dev/null
66 if [ $? -ne 0 ]; then
67         echo "ok 8"
68 else
69         echo "not ok 8"
70 fi
71
72 geli delkey -f -n 0 md${no} 2>/dev/null
73 if [ $? -ne 0 ]; then
74         echo "ok 9"
75 else
76         echo "not ok 9"
77 fi
78
79 geli list md${no}.eli | egrep '^Flags: .*READ-ONLY' >/dev/null
80 if [ $? -eq 0 ]; then
81         echo "ok 10"
82 else
83         echo "not ok 10"
84 fi
85
86 geli detach md${no}
87 if [ $? -eq 0 ]; then
88         echo "ok 11"
89 else
90         echo "not ok 11"
91 fi
92
93 mdconfig -d -u $no
94 rm -f $keyfile