File: runtest.sh

package info (click to toggle)
keyutils 1.5.9-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,052 kB
  • ctags: 486
  • sloc: sh: 3,071; ansic: 2,946; makefile: 242
file content (108 lines) | stat: -rw-r--r-- 2,734 bytes parent folder | download | duplicates (2)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/sh

. ../../../prepare.inc.sh
. ../../../toolbox.inc.sh


# ---- do the actual testing ----

result=PASS

if [ $skip_install_required -eq 1 ]
then
    echo "++++ SKIPPING TEST" >>$OUTPUTFILE
    marker "SKIP BECAUSE REQUIRES FULL INSTALLATION (for /sbin/request-key)"
    toolbox_report_result $TEST PASS
    exit 0
fi


echo "++++ BEGINNING TEST" >$OUTPUTFILE

set_gc_delay 10

# create a pair of keyrings to play in
marker "CREATE KEYRINGS"
create_keyring "sandbox" @s
expect_keyid keyringid

# check that we can't yet request a non-existent key
marker "CHECK REQUEST FAILS"
request_key --fail user lizard $keyringid
expect_error ENOKEY

# add a user key to the first keyring
marker "ADD USER KEY"
create_key user lizard gizzard $keyringid
expect_keyid keyid

# request the key
marker "REQUEST KEY"
request_key user lizard
expect_keyid keyid2 $keyid

# remove the key from the keyring
marker "DETACH KEY FROM KEYRING"
unlink_key $keyid $keyringid

# request a key from /sbin/request-key to the session keyring
marker "CALL OUT REQUEST KEY TO SESSION"
request_key_callout user debug:lizard gizzard
expect_keyid keyid

# should have appeared in the session keyring
marker "CHECK ATTACHMENT TO SESSION KEYRING"
list_keyring @s
expect_keyring_rlist rlist $keyid

# rerequesting should pick up that key again
marker "REDO CALL OUT REQUEST KEY TO SESSION"
request_key_callout user debug:lizard gizzard
expect_keyid keyid2 $keyid

# remove the key from the session
# - it was installed twice
#   - once by request_key's keyring arg
#   - once from the instantiation call
#   but it will only have one link
marker "DETACH KEY FROM SESSION"
unlink_key --wait $keyid @s
unlink_key --fail $keyid @s
expect_error ENOKEY

# request a key from /sbin/request-key to the keyring we made
marker "CALL OUT REQUEST KEY TO KEYRING"
request_key_callout user debug:lizard gizzard $keyringid
expect_keyid keyid

# should have appeared once each in the sandbox and session keyrings
marker "CHECK ATTACHMENT TO KEYRING"
list_keyring $keyringid
expect_keyring_rlist rlist $keyid

marker "CHECK ATTACHMENT TO SESSION"
list_keyring @s
expect_keyring_rlist rlist $keyid

# rerequesting should pick up that key again
marker "REDO CALL OUT REQUEST KEY TO KEYRING"
request_key_callout user debug:lizard gizzard $keyringid
expect_keyid keyid2 $keyid

# remove the key from the session
marker "DETACH KEY"
unlink_key $keyid $keyringid
unlink_key --wait $keyid @s
unlink_key --fail $keyid @s
expect_error ENOKEY

# remove the keyrings we added
marker "UNLINK KEYRINGS"
unlink_key $keyringid @s

set_gc_delay $orig_gc_delay

echo "++++ FINISHED TEST: $result" >>$OUTPUTFILE

# --- then report the results in the database ---
toolbox_report_result $TEST $result