From 76735df427abd772ee3be35268dfdb54b439fc20 Mon Sep 17 00:00:00 2001 From: Wainer dos Santos Moschetta Date: Wed, 22 May 2024 15:26:00 -0300 Subject: [PATCH] tests/k8s: disable "fail-fast" behavior by default The k8s test suite halts on the first failure, i.e., failing-fast. This isn't the behavior that we used to see when running tests on Jenkins and it seems that running the entire test suite is still the most productive way. So this disable fail-fast by default. However, if you still wish to run on fail-fast mode then just export K8S_TEST_FAIL_FAST=yes in your environment. Fixes: #9697 Signed-off-by: Wainer dos Santos Moschetta --- tests/integration/kubernetes/run_kubernetes_tests.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/integration/kubernetes/run_kubernetes_tests.sh b/tests/integration/kubernetes/run_kubernetes_tests.sh index 7aae576a82..6ef8c4ccb3 100755 --- a/tests/integration/kubernetes/run_kubernetes_tests.sh +++ b/tests/integration/kubernetes/run_kubernetes_tests.sh @@ -14,6 +14,8 @@ TARGET_ARCH="${TARGET_ARCH:-x86_64}" KATA_HYPERVISOR="${KATA_HYPERVISOR:-qemu}" K8S_TEST_DEBUG="${K8S_TEST_DEBUG:-false}" K8S_TEST_HOST_TYPE="${K8S_TEST_HOST_TYPE:-small}" +# Setting to "yes" enables fail fast, stopping execution at the first failed test. +K8S_TEST_FAIL_FAST="${K8S_TEST_FAIL_FAST:-no}" if [ -n "${K8S_TEST_UNION:-}" ]; then K8S_TEST_UNION=($K8S_TEST_UNION) @@ -104,9 +106,17 @@ fi ensure_yq +tests_fail=() for K8S_TEST_ENTRY in ${K8S_TEST_UNION[@]} do info "$(kubectl get pods --all-namespaces 2>&1)" info "Executing ${K8S_TEST_ENTRY}" - bats --show-output-of-passing-tests "${K8S_TEST_ENTRY}" + if ! bats --show-output-of-passing-tests "${K8S_TEST_ENTRY}"; then + tests_fail+=("${K8S_TEST_ENTRY}") + [ "${K8S_TEST_FAIL_FAST}" = "yes" ] && break + fi done + +[ ${#tests_fail[@]} -ne 0 ] && die "Tests FAILED from suites: ${tests_fail[*]}" + +info "All tests SUCCEEDED"