From e04d2f1d8382e7b3e81ab4725a21562147ad1727 Mon Sep 17 00:00:00 2001 From: zhongtao Date: Mon, 22 May 2023 12:50:32 +0800 Subject: [PATCH 7/9] reinforce cri_stream.sh and health_check.sh Signed-off-by: zhongtao --- CI/test_cases/container_cases/cri_stream.sh | 30 ++++++++++++---- CI/test_cases/container_cases/health_check.sh | 34 ++++++++++++++----- 2 files changed, 50 insertions(+), 14 deletions(-) diff --git a/CI/test_cases/container_cases/cri_stream.sh b/CI/test_cases/container_cases/cri_stream.sh index 8b5440d3..bfe90208 100755 --- a/CI/test_cases/container_cases/cri_stream.sh +++ b/CI/test_cases/container_cases/cri_stream.sh @@ -58,6 +58,9 @@ function set_up() function test_cri_exec_fun() { local ret=0 + local retry_limit=20 + local retry_interval=1 + local success=1 local test="test_cri_exec_fun => (${FUNCNAME[@]})" msg_info "${test} starting..." declare -a fun_pids @@ -74,9 +77,15 @@ function test_cri_exec_fun() done wait ${abn_pids[*]// /|} - sleep 2 - ps -T -p $(cat /var/run/isulad.pid) | grep IoCopy - [[ $? -eq 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - residual IO copy thread in CRI exec operation" && ((ret++)) + for i in $(seq 1 "$retry_limit"); do + ps -T -p $(cat /var/run/isulad.pid) | grep IoCopy + if [ $? -ne 0 ]; then + success=0 + break; + fi + sleep $retry_interval + done + [[ $success -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - residual IO copy thread in CRI exec operation" && ((ret++)) msg_info "${test} finished with return ${ret}..." return ${ret} @@ -85,6 +94,9 @@ function test_cri_exec_fun() function test_cri_exec_abn { local ret=0 + local retry_limit=20 + local retry_interval=1 + local success=1 local test="test_cri_exec_abn => (${FUNCNAME[@]})" msg_info "${test} starting..." @@ -92,10 +104,16 @@ function test_cri_exec_abn pid=$! sleep 3 kill -9 $pid - sleep 2 - ps -T -p $(cat /var/run/isulad.pid) | grep IoCopy - [[ $? -eq 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - residual IO copy thread in CRI exec operation" && ((ret++)) + for i in $(seq 1 "$retry_limit"); do + ps -T -p $(cat /var/run/isulad.pid) | grep IoCopy + if [ $? -ne 0 ]; then + success=0 + break; + fi + sleep $retry_interval + done + [[ $success -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - residual IO copy thread in CRI exec operation" && ((ret++)) msg_info "${test} finished with return ${ret}..." return ${ret} diff --git a/CI/test_cases/container_cases/health_check.sh b/CI/test_cases/container_cases/health_check.sh index 1542bd09..28af6149 100755 --- a/CI/test_cases/container_cases/health_check.sh +++ b/CI/test_cases/container_cases/health_check.sh @@ -123,6 +123,9 @@ function test_health_check_timeout() { local ret=0 local image="busybox" + local retry_limit=10 + local retry_interval=1 + local success=1 local test="list && inspect image info test => (${FUNCNAME[@]})" msg_info "${test} starting..." @@ -139,16 +142,31 @@ function test_health_check_timeout() [[ $(isula inspect -f '{{.State.Status}}' ${container_name}) == "running" ]] [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - incorrent container status: not running" && ((ret++)) - sleep 2 # Health check has been performed yet - + # Health check has been performed yet + for i in $(seq 1 "$retry_limit"); do + [[ $(isula inspect -f '{{.State.Health.Status}}' ${container_name}) == "starting" ]] + if [ $? -eq 0 ]; then + success=0 + break; + fi + sleep $retry_interval + done # Initial status when the container is still starting - [[ $(isula inspect -f '{{.State.Health.Status}}' ${container_name}) == "starting" ]] - [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - incorrent container health check status: not starting" && ((ret++)) - - sleep 10 # finish first health check + [[ $success -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - incorrent container health check status: not starting" && ((ret++)) + + sleep 7 # finish first health check + + success=1 + for i in $(seq 1 "$retry_limit"); do + [[ $(isula inspect -f '{{.State.Health.Status}}' ${container_name}) == "unhealthy" ]] + if [ $? -eq 0 ]; then + success=0 + break; + fi + sleep $retry_interval + done # The container process exits and the health check status becomes unhealthy - [[ $(isula inspect -f '{{.State.Health.Status}}' ${container_name}) == "unhealthy" ]] - [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - incorrent container health check status: not unhealthy" && ((ret++)) + [[ $success -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - incorrent container health check status: not unhealthy" && ((ret++)) [[ $(isula inspect -f '{{.State.ExitCode}}' ${container_name}) == "137" ]] [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - incorrent container exit code: not 137" && ((ret++)) -- 2.40.1