blob: 1efd4ea01ac745ad8d39f756b913b4e005ffc2d8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# $FreeBSD$
# Test various operations for geli-on-geli providers, to ensure that geli is
# reentrant.
. $(atf_get_srcdir)/conf.sh
init_test()
{
cipher=$1
aalgo=$2
secsize=$3
ealgo=${cipher%%:*}
keylen=${cipher##*:}
atf_check dd if=/dev/random of=testdata bs=$secsize count=1 status=none
atf_check dd if=/dev/random of=keyfile bs=$secsize count=16 status=none
# Create the lower geli device
atf_check -s exit:0 -e ignore \
geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K keyfile \
-s $secsize ${md}
atf_check geli attach -p -k keyfile ${md}
# Create the upper geli device
atf_check -s exit:0 -e ignore \
geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K keyfile \
-s $secsize ${md}.eli
atf_check geli attach -p -k keyfile ${md}.eli
echo ${md} > layered_md_device
# Ensure we can read and write.
atf_check dd if=testdata of=/dev/${md}.eli.eli bs=$secsize count=1 \
status=none
atf_check dd if=/dev/${md}.eli.eli of=cmpdata bs=$secsize count=1 \
status=none
atf_check cmp -s testdata cmpdata
geli detach ${md}.eli 2>/dev/null
}
atf_test_case init cleanup
init_head()
{
atf_set "descr" "Initialize a geli provider on top of another"
atf_set "require.user" "root"
atf_set "timeout" 600
}
init_body()
{
sectors=2
geli_test_setup
for_each_geli_config init_test
}
init_cleanup()
{
if [ -f layered_md_device ]; then
while read provider; do
[ -c /dev/${md}.eli.eli ] && \
geli detach $md.eli.eli 2>/dev/null
done < layered_md_device
fi
geli_test_cleanup
}
atf_init_test_cases()
{
atf_add_test_case init
}
|