summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Reichl <preichl@redhat.com>2022-12-20 14:13:29 +0100
committerDavid Howells <dhowells@redhat.com>2023-03-20 16:32:10 +0000
commitc076dff259e99d84d3822b4d2ad7f3f66532f411 (patch)
tree0f3d5a57ab30cbc3ba39b7cd54091f2547772908
parent2939c50f7fdd0105e3ddcafab525bfa32c34981c (diff)
downloadkeyutils-master.tar.gz
test: Fix test expectation based on kernel configHEADmaster
Some test results are dependent on the kernel configuration option CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE. Check the kernel configuration file for its presence and expect appropriate test results. Function has_kernel_config is based on its xfstsests counterpart. Signed-off-by: Pavel Reichl <preichl@redhat.com> Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--tests/features/builtin_trusted/runtest.sh12
-rw-r--r--tests/prepare.inc.sh20
2 files changed, 30 insertions, 2 deletions
diff --git a/tests/features/builtin_trusted/runtest.sh b/tests/features/builtin_trusted/runtest.sh
index 27910b5..6bd073b 100644
--- a/tests/features/builtin_trusted/runtest.sh
+++ b/tests/features/builtin_trusted/runtest.sh
@@ -33,7 +33,11 @@ expect_error EACCES
create_key --fail user a a $stk
expect_error EOPNOTSUPP
create_key --fail user a a $blk
-expect_error EACCES
+if has_kernel_config "CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE"; then
+ expect_error EOPNOTSUPP
+else
+ expect_error EACCES
+fi
# Try adding a key to the keyrings
marker "TRY ADDING ASYMMETRIC KEYS"
@@ -89,7 +93,11 @@ expect_error EACCES
create_key --fail -x asymmetric "" "$x509" $stk
expect_error ENOKEY
create_key --fail -x asymmetric "" "$x509" $blk
-expect_error EACCES
+if has_kernel_config "CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE"; then
+ expect_error EOPNOTSUPP
+else
+ expect_error EACCES
+fi
echo "++++ FINISHED TEST: $result" >>$OUTPUTFILE
diff --git a/tests/prepare.inc.sh b/tests/prepare.inc.sh
index 0b66237..4033d69 100644
--- a/tests/prepare.inc.sh
+++ b/tests/prepare.inc.sh
@@ -4,6 +4,26 @@
includes=${BASH_SOURCE[0]}
includes=${includes%/*}/
+# Check if currently running kernel has option set
+function has_kernel_config()
+{
+ local option=$1
+ local uname=$(uname -r)
+ local config_list="$KCONFIG_PATH
+ /lib/modules/$uname/build/.config
+ /boot/config-$uname
+ /lib/kernel/config-$uname"
+
+ for config in $config_list; do
+ [ ! -f $config ] && continue
+ grep -qE "^${option}=[my]" $config
+ return
+ done
+
+ echo "Failed to find kernel configuration file"
+ return false
+}
+
# --- need to run in own session keyring
watch_fd=0
if [ "$1" != "--inside-test-session" ]