From d875f89fa2b27e7ce533657a2d093c2ab83f51ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Thu, 9 May 2024 11:58:00 +0200 Subject: [PATCH] tests: Add is_confidential_hardware() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This function is a helper to check whether the KATA_HYPERVISOR being used is a confidential hardware (TEE) or not, and we can use it to skip or only run tests on those platforms when needed. Signed-off-by: Fabiano FidĂȘncio --- .../kubernetes/confidential_common.sh | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/tests/integration/kubernetes/confidential_common.sh b/tests/integration/kubernetes/confidential_common.sh index 8b319f2386..85e4029709 100644 --- a/tests/integration/kubernetes/confidential_common.sh +++ b/tests/integration/kubernetes/confidential_common.sh @@ -44,7 +44,7 @@ function check_hypervisor_for_confidential_tests() { local kata_hypervisor="${1}" # This check must be done with "${KATA_HYPERVISOR}" to avoid # having substrings, like qemu, being matched with qemu-$something. - if [[ " ${SUPPORTED_TEE_HYPERVISORS[*]} " =~ " ${kata_hypervisor} " ]] ||\ + if check_hypervisor_for_confidential_tests_tee_only "${kata_hypervisor}" ||\ [[ " ${SUPPORTED_NON_TEE_HYPERVISORS[*]} " =~ " ${kata_hypervisor} " ]]; then return 0 else @@ -52,6 +52,19 @@ function check_hypervisor_for_confidential_tests() { fi } +# This function verifies whether the input hypervisor supports confidential tests and +# relies on `KATA_HYPERVISOR` being an environment variable +function check_hypervisor_for_confidential_tests_tee_only() { + local kata_hypervisor="${1}" + # This check must be done with "${KATA_HYPERVISOR}" to avoid + # having substrings, like qemu, being matched with qemu-$something. + if [[ " ${SUPPORTED_TEE_HYPERVISORS[*]} " =~ " ${kata_hypervisor} " ]]; then + return 0 + fi + + return 1 +} + # Common check for confidential tests. function is_confidential_runtime_class() { ensure_yq @@ -61,3 +74,12 @@ function is_confidential_runtime_class() { return 1 } + +# Common check for confidential hardware tests. +function is_confidential_hardware() { + if check_hypervisor_for_confidential_tests_tee_only "${KATA_HYPERVISOR}"; then + return 0 + fi + + return 1 +}