diff --git a/e2e/tests/0040-reboot.sh b/e2e/tests/0040-reboot.sh index 22a5b84897..f964c03bae 100755 --- a/e2e/tests/0040-reboot.sh +++ b/e2e/tests/0040-reboot.sh @@ -8,13 +8,22 @@ set -x SCRIPT_PATH="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")")" -RETRIES=5 -BACKOFF=20 +RETRIES=25 +BACKOFF=10 +SUCCESSFUL_TRIES=3 wait_until() { + successes=0 local cmd=$* for _ in $(seq "${RETRIES}"); do - ${cmd} && return 0 + if ${cmd}; then + successes=$((successes+=1)) + else + successes=0 + fi + if [[ "${successes}" -ge "${SUCCESSFUL_TRIES}" ]]; then + return 0 + fi sleep "${BACKOFF}" done return 1 diff --git a/e2e/tests/assets/greenboot-test.sh b/e2e/tests/assets/greenboot-test.sh index ef9c1061be..54b141bfdb 100644 --- a/e2e/tests/assets/greenboot-test.sh +++ b/e2e/tests/assets/greenboot-test.sh @@ -5,19 +5,32 @@ IFS=$'\n\t' PS4='+ $(date "+%T.%N")\011 ' set -x +sudo dnf install -y --setopt=install_weak_deps=False podman +whereis skopeo || true + +mapfile -t images < <(podman images -q) +podman save --output /root/images.tar "${images[@]}" + function check_greenboot_exit_status() { local expectedRC=$1 local cleanup=$2 if [ "${cleanup}" -ne 0 ]; then + crictl images + echo 1 | microshift-cleanup-data --all + + crictl images + podman load --input /root/images.tar + crictl images + systemctl enable --now microshift || true fi for check_script in $(find /etc/greenboot/check/ -name \*.sh | sort); do echo Running "${check_script}"... local currentRC=1 - if ${check_script}; then + if "${check_script}"; then currentRC=0 fi