From c267ba8d40c3636da74147bb328707a0f4ecfda4 Mon Sep 17 00:00:00 2001 From: Cris Dywa Date: Wed, 11 May 2022 13:34:47 +0200 Subject: [PATCH] Use script_retry instead of shell for loops Fixes: https://progress.opensuse.org/issues/110803 --- tests/containers/build.pm | 7 ++++--- tests/containers/setup_env.pm | 2 +- tests/osautoinst/test_running.pm | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/containers/build.pm b/tests/containers/build.pm index 23b29f34..c9995b94 100644 --- a/tests/containers/build.pm +++ b/tests/containers/build.pm @@ -1,13 +1,14 @@ use strict; use base "openQAcoretest"; use testapi; +use utils; sub run { my ($self) = @_; assert_script_run("git clone https://github.com/os-autoinst/openQA.git", timeout => 300); - assert_script_run('for i in {1..3}; do docker build openQA/container/webui -t openqa_webui && break; done', timeout => 3600); - assert_script_run('for i in {1..3}; do docker build openQA/container/worker -t openqa_worker && break; done', timeout => 3600); - assert_script_run('for i in {1..3}; do docker build openQA/container/openqa_data -t openqa_data && break; done', timeout => 3600); + script_retry('docker build openQA/container/webui -t openqa_webui', retry => 3, delay => 60, timeout => 3600); + script_retry('docker build openQA/container/worker -t openqa_worker', retry => 3, delay => 60, timeout => 3600); + script_retry('docker build openQA/container/openqa_data -t openqa_data', retry => 3, delay => 60, timeout => 3600); } 1; diff --git a/tests/containers/setup_env.pm b/tests/containers/setup_env.pm index afd6b68e..e5011823 100644 --- a/tests/containers/setup_env.pm +++ b/tests/containers/setup_env.pm @@ -7,7 +7,7 @@ sub run { assert_script_run("mkdir -p /root/data/factory/{iso,hdd,other} /root/data/tests"); assert_script_run("docker network create testing"); - assert_script_run("docker run --rm -d --network testing -e POSTGRES_PASSWORD=openqa -e POSTGRES_USER=openqa -e POSTGRES_DB=openqa --net-alias=db --name db postgres", timeout => 600); + script_retry("docker run --rm -d --network testing -e POSTGRES_PASSWORD=openqa -e POSTGRES_USER=openqa -e POSTGRES_DB=openqa --net-alias=db --name db postgres", retry => 3, delay => 60, timeout => 600); wait_for_container_log("db", "database system is ready to accept connections", "docker"); } diff --git a/tests/osautoinst/test_running.pm b/tests/osautoinst/test_running.pm index 0bf78a24..0b1a426c 100644 --- a/tests/osautoinst/test_running.pm +++ b/tests/osautoinst/test_running.pm @@ -5,7 +5,7 @@ use utils; sub run { assert_script_run 'command -v ack >/dev/null || zypper --no-refresh -n in ack'; - assert_script_run 'ret=false; for i in {1..5} ; do openqa-cli api jobs state=running state=done | ack --passthru --color "running|done" && ret=true && break ; sleep 30 ; done ; [ "$ret" = "true" ]', 300; + script_retry('openqa-cli api jobs state=running state=done | ack --passthru --color "running|done"', retry => 5, delay => 30, timeout => 300); save_screenshot; clear_root_console; }