diff options
author | Jan Stancek <jstancek@redhat.com> | 2012-01-09 16:31:36 +0000 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2012-01-09 16:31:36 +0000 |
commit | 9c56bf465ae9f4a7f4f6587de0c2dd9428e3ed0e (patch) | |
tree | b17a43ba2769282a33f84eceb06f058acdad0101 | |
parent | 5cd9d711f650e03685ba8bf2099b2df30cf6e71a (diff) | |
download | keyutils-9c56bf465ae9f4a7f4f6587de0c2dd9428e3ed0e.tar.gz |
TEST: Use lower gc_delay for some tests
The behaviour of how keys are deleted changed between RHEL6 and RHEL7.
In following sequence, key will go away only after gc delay time, which can
take several minutes. The Documentation doesn't make any statements about
when will the key go away, so this most likely is not a bug.
$ keyctl request2 user debug:lizard gizzard
$ keyctl unlink 580084255 @s
keyctl_unlink: No such file or directory
... after gc timeout ...
$ keyctl unlink 580084255 @s
keyctl_unlink: Required key not available
Signed-off-by: Jan Stancek <jstancek@redhat.com>
Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r-- | tests/keyctl/requesting/piped/runtest.sh | 4 | ||||
-rw-r--r-- | tests/keyctl/requesting/valid/runtest.sh | 4 | ||||
-rw-r--r-- | tests/toolbox.inc.sh | 24 |
3 files changed, 32 insertions, 0 deletions
diff --git a/tests/keyctl/requesting/piped/runtest.sh b/tests/keyctl/requesting/piped/runtest.sh index 4750c87..529f8af 100644 --- a/tests/keyctl/requesting/piped/runtest.sh +++ b/tests/keyctl/requesting/piped/runtest.sh @@ -9,6 +9,8 @@ result=PASS echo "++++ BEGINNING TEST" >$OUTPUTFILE +set_gc_delay 10 + # create a pair of keyrings to play in marker "CREATE KEYRINGS" create_keyring "sandbox" @s @@ -88,6 +90,8 @@ expect_error ENOKEY 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 --- diff --git a/tests/keyctl/requesting/valid/runtest.sh b/tests/keyctl/requesting/valid/runtest.sh index 7a7bbb8..c14d0cc 100644 --- a/tests/keyctl/requesting/valid/runtest.sh +++ b/tests/keyctl/requesting/valid/runtest.sh @@ -9,6 +9,8 @@ result=PASS echo "++++ BEGINNING TEST" >$OUTPUTFILE +set_gc_delay 10 + # create a pair of keyrings to play in marker "CREATE KEYRINGS" create_keyring "sandbox" @s @@ -88,6 +90,8 @@ expect_error ENOKEY 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 --- diff --git a/tests/toolbox.inc.sh b/tests/toolbox.inc.sh index 998cf1f..02e99cb 100644 --- a/tests/toolbox.inc.sh +++ b/tests/toolbox.inc.sh @@ -35,6 +35,14 @@ maxcall=$maxdesc maxsquota=`grep '^ *0': /proc/key-users | sed s@.*/@@` +key_gc_delay_file="/proc/sys/kernel/keys/gc_delay" +if [ -f $key_gc_delay_file ]; then + orig_gc_delay=`cat $key_gc_delay_file` +else + orig_gc_delay=300 +fi + + function marker () { echo -e "+++ \e[33m$*\e[0m" @@ -288,6 +296,7 @@ function pause_till_key_unlinked () then break fi + sleep 1 done } @@ -1077,3 +1086,18 @@ function sleep_at_least () sleep .02 done } + +############################################################################### +# +# set gc delay time, return original value +# +############################################################################### +function set_gc_delay() +{ + delay=$1 + if [ -f $key_gc_delay_file ]; then + echo $delay > $key_gc_delay_file + echo "Set $key_gc_delay_file to $delay, orig: $orig_gc_delay" + fi +} + |