1148459Spjd#!/bin/sh
2148459Spjd# $FreeBSD: releng/11.0/tests/sys/geom/class/eli/kill_test.sh 293821 2016-01-13 09:14:27Z ngie $
3148459Spjd
4293436Sngie. $(dirname $0)/conf.sh
5293436Sngie
6148459Spjdbase=`basename $0`
7148459Spjdsectors=100
8293436Sngiekeyfile1=`mktemp $base.XXXXXX` || exit 1
9293436Sngiekeyfile2=`mktemp $base.XXXXXX` || exit 1
10148459Spjdmdconfig -a -t malloc -s `expr $sectors + 1` -u $no || exit 1
11148459Spjd
12148459Spjdecho "1..9"
13148459Spjd
14148459Spjddd if=/dev/random of=${keyfile1} bs=512 count=16 >/dev/null 2>&1
15148459Spjddd if=/dev/random of=${keyfile2} bs=512 count=16 >/dev/null 2>&1
16148459Spjd
17182452Spjdgeli init -B none -P -K $keyfile1 md${no}
18148459Spjdgeli attach -p -k $keyfile1 md${no}
19148459Spjdgeli setkey -n 1 -P -K $keyfile2 md${no}
20148459Spjd
21148459Spjd# Kill attached provider.
22148459Spjdgeli kill md${no}
23148459Spjdif [ $? -eq 0 ]; then
24148459Spjd	echo "ok 1"
25148459Spjdelse
26148459Spjd	echo "not ok 1"
27148459Spjdfi
28148459Spjdsleep 1
29148459Spjd# Provider should be automatically detached.
30148459Spjdif [ ! -c /dev/md{$no}.eli ]; then
31148459Spjd	echo "ok 2"
32148459Spjdelse
33148459Spjd	echo "not ok 2"
34148459Spjdfi
35148459Spjd
36148459Spjd# We cannot use keyfile1 anymore.
37148459Spjdgeli attach -p -k $keyfile1 md${no} 2>/dev/null
38148459Spjdif [ $? -ne 0 ]; then
39148459Spjd	echo "ok 3"
40148459Spjdelse
41148459Spjd	echo "not ok 3"
42148459Spjdfi
43148459Spjd
44148459Spjd# We cannot use keyfile2 anymore.
45148459Spjdgeli attach -p -k $keyfile2 md${no} 2>/dev/null
46148459Spjdif [ $? -ne 0 ]; then
47148459Spjd	echo "ok 4"
48148459Spjdelse
49148459Spjd	echo "not ok 4"
50148459Spjdfi
51148459Spjd
52182452Spjdgeli init -B none -P -K $keyfile1 md${no}
53148459Spjdgeli setkey -n 1 -p -k $keyfile1 -P -K $keyfile2 md${no}
54148459Spjd
55148459Spjd# Should be possible to attach with keyfile1.
56148459Spjdgeli attach -p -k $keyfile1 md${no}
57148459Spjdif [ $? -eq 0 ]; then
58148459Spjd	echo "ok 5"
59148459Spjdelse
60148459Spjd	echo "not ok 5"
61148459Spjdfi
62148459Spjdgeli detach md${no}
63148459Spjd
64148459Spjd# Should be possible to attach with keyfile2.
65148459Spjdgeli attach -p -k $keyfile2 md${no}
66148459Spjdif [ $? -eq 0 ]; then
67148459Spjd	echo "ok 6"
68148459Spjdelse
69148459Spjd	echo "not ok 6"
70148459Spjdfi
71148459Spjdgeli detach md${no}
72148459Spjd
73148459Spjd# Kill detached provider.
74148459Spjdgeli kill md${no}
75148459Spjdif [ $? -eq 0 ]; then
76148459Spjd	echo "ok 7"
77148459Spjdelse
78148459Spjd	echo "not ok 7"
79148459Spjdfi
80148459Spjd
81148459Spjd# We cannot use keyfile1 anymore.
82148459Spjdgeli attach -p -k $keyfile1 md${no} 2>/dev/null
83148459Spjdif [ $? -ne 0 ]; then
84148459Spjd	echo "ok 8"
85148459Spjdelse
86148459Spjd	echo "not ok 8"
87148459Spjdfi
88148459Spjd
89148459Spjd# We cannot use keyfile2 anymore.
90148459Spjdgeli attach -p -k $keyfile2 md${no} 2>/dev/null
91148459Spjdif [ $? -ne 0 ]; then
92148459Spjd	echo "ok 9"
93148459Spjdelse
94148459Spjd	echo "not ok 9"
95148459Spjdfi
96148459Spjd
97148459Spjdrm -f $keyfile1 $keyfile2
98