aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Stancek <jstancek@redhat.com>2012-01-09 16:31:36 +0000
committerDavid Howells <dhowells@redhat.com>2012-01-09 16:31:36 +0000
commit9c56bf465ae9f4a7f4f6587de0c2dd9428e3ed0e (patch)
treeb17a43ba2769282a33f84eceb06f058acdad0101
parent5cd9d711f650e03685ba8bf2099b2df30cf6e71a (diff)
downloadkeyutils-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.sh4
-rw-r--r--tests/keyctl/requesting/valid/runtest.sh4
-rw-r--r--tests/toolbox.inc.sh24
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
+}
+