aboutsummaryrefslogtreecommitdiff
path: root/ci/common/suite.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ci/common/suite.sh')
-rw-r--r--ci/common/suite.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/ci/common/suite.sh b/ci/common/suite.sh
index 5c79ce2718..44a560c50a 100644
--- a/ci/common/suite.sh
+++ b/ci/common/suite.sh
@@ -57,13 +57,21 @@ run_test() {
run_test_wd() {
local timeout="$1"
test $# -gt 0 && shift
+
local cmd="$1"
test $# -gt 0 && shift
+
+ local restart_cmd="$1"
+ : ${restart_cmd:=true}
+ test $# -gt 0 && shift
+
local test_name="$1"
: ${test_name:=$cmd}
test $# -gt 0 && shift
+
local output_file="$(mktemp)"
local status_file="$(mktemp)"
+
local restarts=5
local prev_tmpsize=-1
while test $restarts -gt 0 ; do
@@ -92,6 +100,7 @@ run_test_wd() {
# status file not updated, assuming hang
kill -KILL $pid
echo "Test ${test_name} hang up, restarting"
+ eval "$restart_cmd"
else
local new_failed="$(cat "$status_file")"
if test "x$new_failed" != "x0" ; then