aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ci/common/suite.sh17
-rwxr-xr-xci/run_lint.sh11
2 files changed, 25 insertions, 3 deletions
diff --git a/ci/common/suite.sh b/ci/common/suite.sh
index 5c79ce2718..46207754fa 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
@@ -88,10 +96,16 @@ run_test_wd() {
break
fi
done
+ restarts=$[ restarts - 1 ]
if test "$(stat -c "%s" "$status_file")" -eq 0 ; then
# status file not updated, assuming hang
kill -KILL $pid
- echo "Test ${test_name} hang up, restarting"
+ if test $restarts -eq 0 ; then
+ fail "${test_name}" E "Test hang up"
+ else
+ echo "Test ${test_name} hang up, restarting"
+ eval "$restart_cmd"
+ fi
else
local new_failed="$(cat "$status_file")"
if test "x$new_failed" != "x0" ; then
@@ -99,7 +113,6 @@ run_test_wd() {
fi
return 0
fi
- restarts=$[ restarts - 1 ]
done
}
diff --git a/ci/run_lint.sh b/ci/run_lint.sh
index 5122ffc2b6..39a90102e7 100755
--- a/ci/run_lint.sh
+++ b/ci/run_lint.sh
@@ -12,8 +12,17 @@ enter_suite 'lint'
set -x
+csi_clean() {
+ find "${BUILD_DIR}/bin" -name 'test-includes-*' -delete
+ find "${BUILD_DIR}" -name '*test-include*.o' -delete
+}
+
run_test 'top_make clint-full' clint
run_test 'top_make testlint' testlint
-run_test_wd 5s 'top_make check-single-includes' single-includes
+CLICOLOR_FORCE=1 run_test_wd \
+ 5s \
+ 'top_make check-single-includes' \
+ 'csi_clean' \
+ single-includes
exit_suite