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 +}