From bb2ed9b37d7c69b0af88487693826556321d46e9 Mon Sep 17 00:00:00 2001 From: zhongtao Date: Tue, 11 Feb 2025 22:42:39 +0800 Subject: [PATCH 193/198] add dt for cri v1 Signed-off-by: zhongtao --- CI/test_cases/container_cases/cri_stats.sh | 90 ++++++++++++++++++++++ CI/test_cases/container_cases/cri_test.sh | 80 +++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100755 CI/test_cases/container_cases/cri_stats.sh diff --git a/CI/test_cases/container_cases/cri_stats.sh b/CI/test_cases/container_cases/cri_stats.sh new file mode 100755 index 00000000..f6acb397 --- /dev/null +++ b/CI/test_cases/container_cases/cri_stats.sh @@ -0,0 +1,90 @@ +#!/bin/bash +# +# attributes: isulad basic cri seccomp +# concurrent: NA +# spend time: 4 + +####################################################################### +##- Copyright (c) Huawei Technologies Co., Ltd. 2022. All rights reserved. +# - iSulad licensed under the Mulan PSL v2. +# - You can use this software according to the terms and conditions of the Mulan PSL v2. +# - You may obtain a copy of Mulan PSL v2 at: +# - http://license.coscl.org.cn/MulanPSL2 +# - THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR +# - IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR +# - PURPOSE. +# - See the Mulan PSL v2 for more details. +##- @Description:CI +##- @Author: wangfengtu +##- @Create: 2022-08-13 +####################################################################### + +source ../helpers.sh +curr_path=$(dirname $(readlink -f "$0")) +data_path=$(realpath $curr_path/criconfigs) +pause_img_path=$(realpath $curr_path/test_data) + +function do_pre() +{ + sed -i "s#seccomp_localhost_ref#${data_path}/seccomp_localhost.json#g" ${data_path}/container-config-seccomp-localhost.json + + init_cri_conf $1 "without_valgrind" + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to init cri conf: ${1}" && return ${FAILURE} + + isula pull busybox + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to pull busybox" && return ${FAILURE} + + return 0 +} + +function do_post() +{ + local ret=0 + restore_cri_conf "without_valgrind" + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to restore cri conf" && ((ret++)) + return $ret +} + +function test_cri_stats() +{ + local ret=0 + local test="cri stats test => (${FUNCNAME[@]})" + + msg_info "${test} starting..." + + sid=$(crictl runp ${data_path}/sandbox-config.json) + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run sandbox" && ((ret++)) + + cid=$(crictl create $sid ${data_path}/container-config.json ${data_path}/sandbox-config.json) + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to create container" && ((ret++)) + + crictl start $cid + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to start container" && ((ret++)) + + crictl statsp $sid + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to get cri stats" && ((ret++)) + + crictl stats $cid + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to get cri stats" && ((ret++)) + + msg_info "${test} finished with return ${ret}..." + return ${ret} +} + +declare -i ans=0 + +for version in ${CRI_LIST[@]}; +do + test="test_cri_test_fun, use cri version => (${version})" + msg_info "${test} starting..." + + do_pre $version || ((ans++)) + + test_cri_stats || ((ans++)) + + do_post || ((ans++)) + msg_info "${test} finished with return ${ans}..." +done + +show_result ${ans} "${curr_path}/${0}" + diff --git a/CI/test_cases/container_cases/cri_test.sh b/CI/test_cases/container_cases/cri_test.sh index ed333a28..6dc2291e 100755 --- a/CI/test_cases/container_cases/cri_test.sh +++ b/CI/test_cases/container_cases/cri_test.sh @@ -45,6 +45,83 @@ function do_post() return $ret } +function test_cri_info() +{ + local ret=0 + local image="busybox" + local test="cri info test => (${FUNCNAME[@]})" + + msg_info "${test} starting..." + + crictl info + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to get cri info" && ((ret++)) + + msg_info "${test} finished with return ${ret}..." + return ${ret} +} + +function test_cri_list() +{ + local ret=0 + local image="busybox" + local test="cri list test => (${FUNCNAME[@]})" + + msg_info "${test} starting..." + + sid=$(crictl runp ${data_path}/sandbox-config.json) + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run sandbox" && ((ret++)) + + cid=$(crictl create $sid ${data_path}/container-config.json ${data_path}/sandbox-config.json) + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to create container" && ((ret++)) + + crictl start $cid + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to start container" && ((ret++)) + + crictl pods | grep "^${sid:0:5}" + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to list cri pod" && ((ret++)) + + crictl ps -a | grep "^${cid:0:5}" + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to list cri container" && ((ret++)) + + stop_isulad_without_valgrind + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - stop isulad failed" && ((ret++)) + + start_isulad_without_valgrind + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - stop isulad failed" && ((ret++)) + + crictl ps -a | grep "^${cid:0:5}" + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to list cri container after restart" && ((ret++)) + + crictl pods | grep "^${sid:0:5}" + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to list cri pod after restart" && ((ret++)) + + crictl rmp -f $(crictl pods -q) + + msg_info "${test} finished with return ${ret}..." + return ${ret} +} + +function test_cri_images() +{ + local ret=0 + local image="busybox" + local test="cri images test => (${FUNCNAME[@]})" + + msg_info "${test} starting..." + + crictl pull $image + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to pull image" && ((ret++)) + + crictl images | grep $image + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to list cri images" && ((ret++)) + + crictl rmi $image + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to remove image" && ((ret++)) + + msg_info "${test} finished with return ${ret}..." + return ${ret} +} + function test_cri_seccomp() { local ret=0 @@ -97,6 +174,9 @@ do test_cri_seccomp "default" || ((ans++)) test_cri_seccomp "unconfined" || ((ans++)) test_cri_seccomp "localhost" || ((ans++)) + test_cri_info || ((ans++)) + test_cri_list || ((ans++)) + test_cri_images || ((ans++)) do_post || ((ans++)) msg_info "${test} finished with return ${ans}..." -- 2.34.1