summaryrefslogtreecommitdiff
path: root/0031-modify-CI-for-default-runtime-to-runc.patch
diff options
context:
space:
mode:
Diffstat (limited to '0031-modify-CI-for-default-runtime-to-runc.patch')
-rw-r--r--0031-modify-CI-for-default-runtime-to-runc.patch815
1 files changed, 815 insertions, 0 deletions
diff --git a/0031-modify-CI-for-default-runtime-to-runc.patch b/0031-modify-CI-for-default-runtime-to-runc.patch
new file mode 100644
index 0000000..9b8f8d8
--- /dev/null
+++ b/0031-modify-CI-for-default-runtime-to-runc.patch
@@ -0,0 +1,815 @@
+From c0d86490ba53bf9a33f7569dc31c4ec1ba54f073 Mon Sep 17 00:00:00 2001
+From: zhongtao <zhongtao17@huawei.com>
+Date: Tue, 21 Nov 2023 21:32:08 +0800
+Subject: [PATCH 31/64] modify CI for default runtime to runc
+
+Signed-off-by: zhongtao <zhongtao17@huawei.com>
+---
+ CI/test_cases/container_cases/cni_test.sh | 103 ++++++++++--------
+ .../container_cases/exec_additional_gids.sh | 26 +++--
+ CI/test_cases/container_cases/export.sh | 10 +-
+ .../hook_ignore_poststart_error.sh | 10 +-
+ .../container_cases/hook_spec_test.sh | 12 +-
+ ...igdata_stream.sh => lcr_bigdata_stream.sh} | 32 +-----
+ .../container_cases/{exec.sh => lcr_exec.sh} | 2 +-
+ CI/test_cases/container_cases/nano_cpus.sh | 8 +-
+ CI/test_cases/container_cases/restart.sh | 14 ++-
+ CI/test_cases/container_cases/run.sh | 49 +++++----
+ ..._stream_runc.sh => runc_bigdata_stream.sh} | 0
+ .../{exec_runc.sh => runc_exec.sh} | 0
+ CI/test_cases/container_cases/seccomp.sh | 12 +-
+ CI/test_cases/container_cases/stop.sh | 19 +++-
+ CI/test_cases/critest.sh | 6 +-
+ 15 files changed, 166 insertions(+), 137 deletions(-)
+ rename CI/test_cases/container_cases/{bigdata_stream.sh => lcr_bigdata_stream.sh} (93%)
+ rename CI/test_cases/container_cases/{exec.sh => lcr_exec.sh} (97%)
+ rename CI/test_cases/container_cases/{bigdata_stream_runc.sh => runc_bigdata_stream.sh} (100%)
+ rename CI/test_cases/container_cases/{exec_runc.sh => runc_exec.sh} (100%)
+
+diff --git a/CI/test_cases/container_cases/cni_test.sh b/CI/test_cases/container_cases/cni_test.sh
+index bbc381dd..114cf2a3 100755
+--- a/CI/test_cases/container_cases/cni_test.sh
++++ b/CI/test_cases/container_cases/cni_test.sh
+@@ -37,6 +37,10 @@ function do_post()
+ start_isulad_with_valgrind
+ }
+
++# $1: pod runtime;
++# $2: pod config;
++# $3: eth0 ip;
++# $4: eth1 ip;
+ function do_test_help()
+ {
+ msg_info "this is $0 do_test"
+@@ -53,7 +57,7 @@ function do_test_help()
+ TC_RET_T=$(($TC_RET_T+1))
+ fi
+
+- sid=`crictl runp ${data_path}/$1`
++ sid=`crictl runp --runtime $1 ${data_path}/$2`
+ if [ $? -ne 0 ]; then
+ msg_err "Failed to run sandbox"
+ TC_RET_T=$(($TC_RET_T+1))
+@@ -61,7 +65,7 @@ function do_test_help()
+
+ cnt=`ls /var/lib/cni/results/* | wc -l`
+ target_cnt=1
+- if [ "x$3" != "x" ];then
++ if [ "x$4" != "x" ];then
+ target_cnt=2
+ fi
+
+@@ -77,7 +81,7 @@ function do_test_help()
+ TC_RET_T=$(($TC_RET_T+1))
+ fi
+
+- cid=`crictl create $sid ${data_path}/container-config.json ${data_path}/$1`
++ cid=`crictl create $sid ${data_path}/container-config.json ${data_path}/$2`
+ if [ $? -ne 0 ];then
+ msg_err "create container failed"
+ TC_RET_T=$(($TC_RET_T+1))
+@@ -107,29 +111,29 @@ function do_test_help()
+ nsenter -t $con_pid -n ifconfig eth0
+ TC_RET_T=$(($TC_RET_T+1))
+ fi
+- nsenter -t $pod_pid -n ifconfig eth0 | grep "$2"
++ nsenter -t $pod_pid -n ifconfig eth0 | grep "$3"
+ if [ $? -ne 0 ];then
+- msg_err "expect ip: $1, get: "
++ msg_err "expect ip: $3, get: "
+ nsenter -t $pod_pid -n ifconfig eth0
+ TC_RET_T=$(($TC_RET_T+1))
+ fi
+- crictl inspectp $sid | grep "$2"
++ crictl inspectp $sid | grep "$3"
+ if [ $? -ne 0 ];then
+- msg_err "inspectp: expect ip: $1, get: "
++ msg_err "inspectp: expect ip: $3, get: "
+ crictl inspectp $sid
+ TC_RET_T=$(($TC_RET_T+1))
+ fi
+
+- if [ "x$3" != "x" ];then
+- nsenter -t $pod_pid -n ifconfig eth1 | grep "$3"
++ if [ "x$4" != "x" ];then
++ nsenter -t $pod_pid -n ifconfig eth1 | grep "$4"
+ if [ $? -ne 0 ];then
+- msg_err "expect ip: $2, get: "
++ msg_err "expect ip: $4, get: "
+ nsenter -t $pod_pid -n ifconfig eth1
+ TC_RET_T=$(($TC_RET_T+1))
+ fi
+- crictl inspectp $sid | grep "$3"
++ crictl inspectp $sid | grep "$4"
+ if [ $? -ne 0 ];then
+- msg_err "inspectp expect ip: $2, get: "
++ msg_err "inspectp expect ip: $4, get: "
+ crictl inspectp $sid
+ TC_RET_T=$(($TC_RET_T+1))
+ fi
+@@ -170,7 +174,7 @@ function do_test_help()
+
+ function default_cni_config()
+ {
+- do_test_help "sandbox-config.json" "10\.1\."
++ do_test_help $1 "sandbox-config.json" "10\.1\."
+ }
+
+ function new_cni_config()
+@@ -189,12 +193,12 @@ function new_cni_config()
+ fi
+ done
+ tail $ISUALD_LOG
+- do_test_help "mutlnet_pod.json" "10\.2\." "10\.1\."
++ do_test_help $1 "mutlnet_pod.json" "10\.2\." "10\.1\."
+ }
+
+ function check_annotation_extension()
+ {
+- sid=`crictl runp ${data_path}/sandbox-config.json`
++ sid=`crictl runp --runtime $1 ${data_path}/sandbox-config.json`
+ if [ $? -ne 0 ]; then
+ msg_err "Failed to run sandbox"
+ TC_RET_T=$(($TC_RET_T+1))
+@@ -253,7 +257,7 @@ function check_rollback()
+ done
+ tail $ISUALD_LOG
+
+- crictl runp ${data_path}/mutl_wrong_net_pod.json
++ crictl runp --runtime $1 ${data_path}/mutl_wrong_net_pod.json
+ if [ $? -eq 0 ]; then
+ msg_err "Run sandbox success with invalid cni configs"
+ TC_RET_T=$(($TC_RET_T+1))
+@@ -302,13 +306,14 @@ function check_rollback()
+ # $2: expect ingress rate;
+ # $3: input egress rate;
+ # $4: expect egress rate;
++# $5: pod runtime;
+ function check_annotation_valid_bandwidth()
+ {
+ rm bandwidth.json
+ cp ${data_path}/mock_sandbox.json bandwidth.json
+ sed -i "s#ingressholder#$1#g" bandwidth.json
+ sed -i "s#engressholder#$3#g" bandwidth.json
+- sid=`crictl runp bandwidth.json`
++ sid=`crictl runp --runtime $5 bandwidth.json`
+ if [ $? -ne 0 ]; then
+ msg_err "Failed to run sandbox"
+ TC_RET_T=$(($TC_RET_T+1))
+@@ -345,6 +350,7 @@ function check_annotation_valid_bandwidth()
+ return $TC_RET_T
+ }
+
++# function not called
+ function check_annotation_invalid_bandwidth()
+ {
+ rm bandwidth.json
+@@ -386,44 +392,51 @@ function check_annotation()
+ done
+ tail $ISUALD_LOG
+
+- check_annotation_extension
++ check_annotation_extension $1
+
+- check_annotation_valid_bandwidth "10.24k" "10240" "-1.024k" "-1024"
+- check_annotation_valid_bandwidth "1024m" "2" "-1024m" "-1"
+- check_annotation_valid_bandwidth "1.000001Ki" "1025" "-1.00001Ki" "-1024"
+- check_annotation_valid_bandwidth "0.1Mi" "104858" "-0.01Mi" "-10485"
+- check_annotation_valid_bandwidth "1.00001e2" "101" "-1.0001e2" "-100"
++ check_annotation_valid_bandwidth "10.24k" "10240" "-1.024k" "-1024" $1
++ check_annotation_valid_bandwidth "1024m" "2" "-1024m" "-1" $1
++ check_annotation_valid_bandwidth "1.000001Ki" "1025" "-1.00001Ki" "-1024" $1
++ check_annotation_valid_bandwidth "0.1Mi" "104858" "-0.01Mi" "-10485" $1
++ check_annotation_valid_bandwidth "1.00001e2" "101" "-1.0001e2" "-100" $1
+
+ return $TC_RET_T
+ }
+
+-ret=0
++function do_test_t()
++{
++ local ret=0
++ local runtime=$1
++ local test="cni_test => (${runtime})"
++ msg_info "${test} starting..."
++
++ default_cni_config $runtime || ((ret++))
++
++ new_cni_config $runtime || ((ret++))
++
++ check_annotation $runtime || ((ret++))
+
+-do_pre
+-if [ $? -ne 0 ];then
+- let "ret=$ret + 1"
+-fi
++ check_rollback $runtime || ((ret++))
+
+-default_cni_config
+-if [ $? -ne 0 ];then
+- let "ret=$ret + 1"
+-fi
++ msg_info "${test} finished with return ${ret}..."
+
+-new_cni_config
+-if [ $? -ne 0 ];then
+- let "ret=$ret + 1"
+-fi
++ return $ret
++}
+
+-check_annotation
+-if [ $? -ne 0 ];then
+- let "ret=$ret + 1"
+-fi
++ret=0
+
+-check_rollback
+-if [ $? -ne 0 ];then
+- let "ret=$ret + 1"
+-fi
++for element in ${RUNTIME_LIST[@]};
++do
++ do_pre
++ if [ $? -ne 0 ];then
++ let "ret=$ret + 1"
++ fi
+
+-do_post
++ do_test_t $element
++ if [ $? -ne 0 ];then
++ let "ret=$ret + 1"
++ fi
++ do_post
++done
+
+ show_result $ret "cni base test"
+diff --git a/CI/test_cases/container_cases/exec_additional_gids.sh b/CI/test_cases/container_cases/exec_additional_gids.sh
+index f24678d3..2edfd750 100755
+--- a/CI/test_cases/container_cases/exec_additional_gids.sh
++++ b/CI/test_cases/container_cases/exec_additional_gids.sh
+@@ -22,7 +22,6 @@
+ curr_path=$(dirname $(readlink -f "$0"))
+ data_path=$(realpath $curr_path/../data)
+ source ../helpers.sh
+-test="exec additional gids test => test_exec_additional_gids"
+ test_log=$(mktemp /tmp/additional_gids_test_XXX)
+
+ USERNAME="user"
+@@ -37,10 +36,14 @@ file_info="Keep it secret, keep it safe"
+ function additional_gids_test()
+ {
+ local ret=0
++ local runtime=$1
++ test="exec additional gids test => test_exec_additional_gids => $runtime"
++
++ msg_info "${test} starting..."
+
+ isula rm -f `isula ps -a -q`
+
+- isula run -tid -n $cont_name ubuntu bash
++ isula run -tid --runtime $runtime -n $cont_name ubuntu bash
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run container" && ((ret++))
+
+ isula exec $cont_name bash -c "groupadd --gid $USER_GID $USERNAME \
+@@ -52,10 +55,13 @@ function additional_gids_test()
+ && chmod 606 /app/sekrit.txt"
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - create user and group failed" && ((ret++))
+
++ # runc is not support exec --workdir
+ /usr/bin/expect <<- EOF > ${test_log} 2>&1
+ set timeout 10
+-spawn isula exec -it --workdir /app -u $USERNAME $cont_name bash
++spawn isula exec -it -u $USERNAME $cont_name bash
+ expect "${USERNAME}*"
++send "cd /app\n"
++expect "*"
+ send "newgrp ${ADDITIONAL_GROUP}\n"
+ expect "*"
+ send "groups\n"
+@@ -75,18 +81,18 @@ EOF
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - read error message failed" && ((ret++))
+
+ isula rm -f `isula ps -a -q`
++ rm -rf ${test_log}
++
++ msg_info "${test} finished with return ${ret}..."
+
+ return ${ret}
+ }
+
+ declare -i ans=0
+
+-msg_info "${test} starting..."
+-
+-additional_gids_test || ((ans++))
+-
+-rm -rf ${test_log}
+-
+-msg_info "${test} finished with return ${ret}..."
++for element in ${RUNTIME_LIST[@]};
++do
++ additional_gids_test $element || ((ans++))
++done
+
+ show_result ${ans} "${curr_path}/${0}"
+diff --git a/CI/test_cases/container_cases/export.sh b/CI/test_cases/container_cases/export.sh
+index eeef2809..1cff873d 100755
+--- a/CI/test_cases/container_cases/export.sh
++++ b/CI/test_cases/container_cases/export.sh
+@@ -26,7 +26,8 @@ function test_image_export()
+ {
+ local ret=0
+ local image="busybox"
+- local test="export container test => (${FUNCNAME[@]})"
++ local runtime=$1
++ local test="export container test => (${FUNCNAME[@]}) => $runtime"
+
+ msg_info "${test} starting..."
+
+@@ -36,7 +37,7 @@ function test_image_export()
+ isula images | grep busybox
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - missing list image: ${image}" && ((ret++))
+
+- CONT=`isula run -itd busybox`
++ CONT=`isula run --runtime $runtime -itd busybox`
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run container with image: ${image}" && ((ret++))
+
+ isula export -o export.tar ${CONT}
+@@ -55,6 +56,9 @@ function test_image_export()
+
+ declare -i ans=0
+
+-test_image_export || ((ans++))
++for element in ${RUNTIME_LIST[@]};
++do
++ test_image_export $element || ((ans++))
++done
+
+ show_result ${ans} "${curr_path}/${0}"
+diff --git a/CI/test_cases/container_cases/hook_ignore_poststart_error.sh b/CI/test_cases/container_cases/hook_ignore_poststart_error.sh
+index 5c86a4c1..8c636f7e 100755
+--- a/CI/test_cases/container_cases/hook_ignore_poststart_error.sh
++++ b/CI/test_cases/container_cases/hook_ignore_poststart_error.sh
+@@ -28,7 +28,8 @@ function test_hook_ignore_poststart_error_spec()
+ {
+ local ret=0
+ local image="busybox"
+- local test="container hook test => (${FUNCNAME[@]})"
++ local runtime=$1
++ local test="container hook test => (${FUNCNAME[@]}) => $runtime"
+ CONT=test_hook_spec
+ cp ${test_data_path}/poststart.sh /tmp/
+
+@@ -40,7 +41,7 @@ function test_hook_ignore_poststart_error_spec()
+ isula images | grep busybox
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - missing list image: ${image}" && ((ret++))
+
+- isula run -n $CONT -itd --hook-spec ${test_data_path}/oci_hook_poststart_check.json ${image} &
++ isula run -n $CONT -itd --runtime $runtime --hook-spec ${test_data_path}/oci_hook_poststart_check.json ${image} &
+
+ for a in `seq 20`
+ do
+@@ -74,6 +75,9 @@ function test_hook_ignore_poststart_error_spec()
+
+ declare -i ans=0
+
+-test_hook_ignore_poststart_error_spec || ((ans++))
++for element in ${RUNTIME_LIST[@]};
++do
++ test_hook_ignore_poststart_error_spec $1 || ((ans++))
++done
+
+ show_result ${ans} "${curr_path}/${0}"
+diff --git a/CI/test_cases/container_cases/hook_spec_test.sh b/CI/test_cases/container_cases/hook_spec_test.sh
+index c88ed340..33b7c2e5 100755
+--- a/CI/test_cases/container_cases/hook_spec_test.sh
++++ b/CI/test_cases/container_cases/hook_spec_test.sh
+@@ -28,7 +28,8 @@ function test_hook_spec()
+ {
+ local ret=0
+ local image="busybox"
+- local test="container hook test => (${FUNCNAME[@]})"
++ local runtime=$1
++ local test="container hook test => (${FUNCNAME[@]}) => $runtime"
+ msg_info "${test} starting..."
+
+ isula pull ${image}
+@@ -37,7 +38,7 @@ function test_hook_spec()
+ isula images | grep busybox
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - missing list image: ${image}" && ((ret++))
+
+- CONT=`isula run -itd --hook-spec ${test_data_path}/test-hookspec.json ${image}`
++ CONT=`isula run -itd --runtime $runtime --hook-spec ${test_data_path}/test-hookspec.json ${image}`
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run container with image: ${image}" && ((ret++))
+
+ isula stop -t 0 ${CONT}
+@@ -51,7 +52,7 @@ function test_hook_spec()
+ isula run -n $no_permission_container -itd --hook-spec ${test_data_path}/no_permission.json ${image} > $runlog 2>&1
+ [[ $? -ne 126 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to check exit code container with image: ${image}" && ((ret++))
+
+- cat $runlog | grep "Permission denied"
++ cat $runlog | grep -i "Permission denied"
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to get no_permission output: ${image}" && ((ret++))
+
+ isula rm -f $no_permission_container
+@@ -95,6 +96,9 @@ EOF
+
+ declare -i ans=0
+
+-test_hook_spec || ((ans++))
++for element in ${RUNTIME_LIST[@]};
++do
++ test_hook_spec $element || ((ans++))
++done
+
+ show_result ${ans} "${curr_path}/${0}"
+diff --git a/CI/test_cases/container_cases/bigdata_stream.sh b/CI/test_cases/container_cases/lcr_bigdata_stream.sh
+similarity index 93%
+rename from CI/test_cases/container_cases/bigdata_stream.sh
+rename to CI/test_cases/container_cases/lcr_bigdata_stream.sh
+index 3bfc2d50..c8ecc48a 100755
+--- a/CI/test_cases/container_cases/bigdata_stream.sh
++++ b/CI/test_cases/container_cases/lcr_bigdata_stream.sh
+@@ -40,7 +40,7 @@ function set_up()
+ isula images | grep busybox
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - missing list image: ${image}" && ((ret++))
+
+- CID=$(isula run -itd ${image} sh)
++ CID=$(isula run --runtime lcr -itd ${image} sh)
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run container with image: ${image}" && ((ret++))
+
+ isula exec -it $CID dd if=/dev/zero of=test_500M bs=1M count=500
+@@ -389,33 +389,6 @@ function test_stream_with_kill_isulad()
+ return ${ret}
+ }
+
+-function test_stream_with_runc()
+-{
+- local ret=0
+- local image="busybox"
+- local test="test_stream_with_runc => (${FUNCNAME[@]})"
+- msg_info "${test} starting..."
+-
+- RUNCID=$(isula run -itd --runtime runc ${image} sh)
+- isula exec -it $RUNCID dd if=/dev/zero of=test_500M bs=1M count=500
+- [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to create bigdata" && ((ret++))
+-
+- isula exec -it $RUNCID cat test_500M > /home/iocopy_stream_data_500M
+- [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to cat bigdata" && ((ret++))
+-
+- sync && sync
+- total_size=$(stat -c"%s" /home/iocopy_stream_data_500M)
+- [[ $total_size -ne 524288000 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - stream iocopy loss data" && ((ret++))
+-
+- isula rm -f $RUNCID
+- [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to rm container" && ((ret++))
+-
+- rm -rf /home/iocopy_stream_data_500M
+-
+- msg_info "${test} finished with return ${ret}..."
+- return ${ret}
+-}
+-
+ function tear_down()
+ {
+ local ret=0
+@@ -438,7 +411,7 @@ function test_memory_leak_with_bigdata_stream()
+
+ start_isulad_with_valgrind
+
+- CID=$(isula run -itd ${image} sh)
++ CID=$(isula run --runtime lcr -itd ${image} sh)
+
+ isula exec -it $CID dd if=/dev/zero of=test_100M bs=1M count=100
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to create bigdata" && ((ret++))
+@@ -477,7 +450,6 @@ test_stream_with_stop_lxc_monitor || ((ans++))
+ test_stream_with_kill_lxc_monitor || ((ans++))
+ test_stream_with_stop_isulad || ((ans++))
+ test_stream_with_kill_isulad || ((ans++))
+-test_stream_with_runc || ((ans++))
+ tear_down || ((ans++))
+
+ test_memory_leak_with_bigdata_stream || ((ans++))
+diff --git a/CI/test_cases/container_cases/exec.sh b/CI/test_cases/container_cases/lcr_exec.sh
+similarity index 97%
+rename from CI/test_cases/container_cases/exec.sh
+rename to CI/test_cases/container_cases/lcr_exec.sh
+index 96ceb884..4f51773d 100755
+--- a/CI/test_cases/container_cases/exec.sh
++++ b/CI/test_cases/container_cases/lcr_exec.sh
+@@ -30,7 +30,7 @@ function exec_workdir()
+
+ isula rm -f `isula ps -a -q`
+
+- isula run -tid -n cont_workdir busybox sh
++ isula run -tid --runtime lcr -n cont_workdir busybox sh
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run container with --workdir" && ((ret++))
+
+ isula exec -ti --workdir /workdir cont_workdir pwd | grep "/workdir"
+diff --git a/CI/test_cases/container_cases/nano_cpus.sh b/CI/test_cases/container_cases/nano_cpus.sh
+index c679958d..85223038 100755
+--- a/CI/test_cases/container_cases/nano_cpus.sh
++++ b/CI/test_cases/container_cases/nano_cpus.sh
+@@ -26,7 +26,8 @@ function test_cpu_nano_spec()
+ {
+ local ret=0
+ local image="busybox"
+- local test="container blkio nano test => (${FUNCNAME[@]})"
++ local runtime=$1
++ local test="container blkio nano test => (${FUNCNAME[@]}) => $runtime"
+
+ msg_info "${test} starting..."
+
+@@ -108,6 +109,9 @@ function test_cpu_nano_spec()
+
+ declare -i ans=0
+
+-test_cpu_nano_spec || ((ans++))
++for element in ${RUNTIME_LIST[@]};
++do
++ test_cpu_nano_spec $element || ((ans++))
++done
+
+ show_result ${ans} "${curr_path}/${0}"
+diff --git a/CI/test_cases/container_cases/restart.sh b/CI/test_cases/container_cases/restart.sh
+index 5902af06..fddee1f7 100755
+--- a/CI/test_cases/container_cases/restart.sh
++++ b/CI/test_cases/container_cases/restart.sh
+@@ -26,7 +26,8 @@ source ../helpers.sh
+ function do_test_t()
+ {
+ containername=test_restart
+- isula run --name $containername -td busybox
++
++ isula run --runtime $1 --name $containername -td busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername running
+
+@@ -46,9 +47,12 @@ function do_test_t()
+
+ ret=0
+
+-do_test_t
+-if [ $? -ne 0 ];then
+- let "ret=$ret + 1"
+-fi
++for element in ${RUNTIME_LIST[@]};
++do
++ do_test_t $element
++ if [ $? -ne 0 ];then
++ let "ret=$ret + 1"
++ fi
++done
+
+ show_result $ret "basic restart"
+diff --git a/CI/test_cases/container_cases/run.sh b/CI/test_cases/container_cases/run.sh
+index ad449402..8ea3e514 100755
+--- a/CI/test_cases/container_cases/run.sh
++++ b/CI/test_cases/container_cases/run.sh
+@@ -25,7 +25,7 @@ source ../helpers.sh
+
+ function do_test_t()
+ {
+- tid=`isula run -tid --name hostname busybox`
++ tid=`isula run --runtime $1 -tid --name hostname busybox`
+ chostname=`isula exec -it $tid hostname`
+ fn_check_eq "$chostname" "${tid:0:12}" "default hostname is id of container"
+ isula exec -it hostname env | grep HOSTNAME
+@@ -37,7 +37,7 @@ function do_test_t()
+ containername=test_basic_run
+ containername2=container_to_join
+
+- isula run --name $containername -td busybox
++ isula run --runtime $1 --name $containername -td busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername running
+
+@@ -48,7 +48,7 @@ function do_test_t()
+ isula rm $containername
+ fn_check_eq "$?" "0" "rm failed"
+
+- isula run --name $containername -td -v /dev/shm:/dev/shm busybox
++ isula run --runtime $1 --name $containername -td -v /dev/shm:/dev/shm busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername running
+
+@@ -61,7 +61,7 @@ function do_test_t()
+
+ echo AA > /tmp/test_run_env
+
+- isula run --name $containername -itd --user 100:100 -e AAA=BB -e BAA --env-file /tmp/test_run_env busybox
++ isula run --runtime $1 --name $containername -itd --user 100:100 -e AAA=BB -e BAA --env-file /tmp/test_run_env busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername running
+
+@@ -72,18 +72,21 @@ function do_test_t()
+ isula rm $containername
+ fn_check_eq "$?" "0" "rm failed"
+
+- isula run --name $containername -itd --external-rootfs / --read-only none sh
+- fn_check_eq "$?" "0" "run container with host rootfs failed"
+- testcontainer $containername running
++ # runc directly uses the root directory as external rootfs and will report the error pivot_root .: device or resource busy
++ if [ $runtime == "lcr" ]; then
++ isula run --runtime $1 --name $containername -itd --external-rootfs / --read-only none sh
++ fn_check_eq "$?" "0" "run container with host rootfs failed"
++ testcontainer $containername running
+
+- isula stop -t 0 $containername
+- fn_check_eq "$?" "0" "stop failed"
+- testcontainer $containername exited
++ isula stop -t 0 $containername
++ fn_check_eq "$?" "0" "stop failed"
++ testcontainer $containername exited
+
+- isula rm $containername
+- fn_check_eq "$?" "0" "rm failed"
++ isula rm $containername
++ fn_check_eq "$?" "0" "rm failed"
++ fi
+
+- isula run --name $containername -itd --net=host --pid=host --ipc=host --uts=host busybox
++ isula run --runtime $1 --name $containername -itd --net=host --pid=host --ipc=host --uts=host busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername running
+
+@@ -94,7 +97,7 @@ function do_test_t()
+ isula rm $containername
+ fn_check_eq "$?" "0" "rm failed"
+
+- isula run --name $containername -itd --net=none --pid=none --ipc=none --uts=none busybox
++ isula run --runtime $1 --name $containername -itd --net=none --pid=none --ipc=none --uts=none busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername running
+
+@@ -105,11 +108,11 @@ function do_test_t()
+ isula rm $containername
+ fn_check_eq "$?" "0" "rm failed"
+
+- isula run --name $containername2 -itd busybox
++ isula run --runtime $1 --name $containername2 -itd busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername2 running
+
+- isula run --name $containername -itd --net=container:$containername2 --pid=container:$containername2 --ipc=container:$containername2 --uts=container:$containername2 busybox
++ isula run --runtime $1 --name $containername -itd --net=container:$containername2 --pid=container:$containername2 --ipc=container:$containername2 --uts=container:$containername2 busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername running
+
+@@ -135,7 +138,7 @@ function do_run_remote_test_t()
+ local ret=0
+ local image="busybox"
+ local config='tcp://127.0.0.1:2890'
+- local test="container start with --attach remote test => (${FUNCNAME[@]})"
++ local test="container start with --attach remote test => (${FUNCNAME[@]}) => $1"
+
+ check_valgrind_log
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - stop isulad failed" && ((ret++))
+@@ -144,13 +147,13 @@ function do_run_remote_test_t()
+
+ containername=run_remote
+
+- isula run -ti -H "$config" --name $containername busybox xxx
++ isula run --runtime $1 -ti -H "$config" --name $containername busybox xxx
+ [[ $? -eq 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed check invalid run ${containername} remote" && ((ret++))
+ testcontainer $containername exited
+ isula rm -f -H "$config" $containername
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to rm container remote" && ((ret++))
+
+- isula run -ti -H "$config" --name $containername busybox /bin/sh -c 'echo "hello"' | grep hello
++ isula run --runtime $1 -ti -H "$config" --name $containername busybox /bin/sh -c 'echo "hello"' | grep hello
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to run ${containername} remote" && ((ret++))
+ testcontainer $containername exited
+
+@@ -169,8 +172,10 @@ function do_run_remote_test_t()
+
+ declare -i ans=0
+
+-do_test_t || ((ans++))
+-
+-do_run_remote_test_t || ((ans++))
++for element in ${RUNTIME_LIST[@]};
++do
++ do_test_t $element || ((ans++))
++ do_run_remote_test_t $element || ((ans++))
++done
+
+ show_result ${ans} "${curr_path}/${0}"
+diff --git a/CI/test_cases/container_cases/bigdata_stream_runc.sh b/CI/test_cases/container_cases/runc_bigdata_stream.sh
+similarity index 100%
+rename from CI/test_cases/container_cases/bigdata_stream_runc.sh
+rename to CI/test_cases/container_cases/runc_bigdata_stream.sh
+diff --git a/CI/test_cases/container_cases/exec_runc.sh b/CI/test_cases/container_cases/runc_exec.sh
+similarity index 100%
+rename from CI/test_cases/container_cases/exec_runc.sh
+rename to CI/test_cases/container_cases/runc_exec.sh
+diff --git a/CI/test_cases/container_cases/seccomp.sh b/CI/test_cases/container_cases/seccomp.sh
+index 9e886d10..3cb08d84 100755
+--- a/CI/test_cases/container_cases/seccomp.sh
++++ b/CI/test_cases/container_cases/seccomp.sh
+@@ -39,8 +39,9 @@ function do_pre() {
+
+ function do_test() {
+ local ret=0
+-
+- msg_info "this is $0 do_test"
++ local runtime=$1
++ local test="seccomp test => (${runtime})"
++ msg_info "${test} starting..."
+
+ cid1=$(isula run -tid --security-opt seccomp=/etc/isulad/seccomp_default.json busybox sh)
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - Failed to run container with the default seccomp profile" && ((ret++))
+@@ -52,7 +53,7 @@ function do_test() {
+ --security-opt seccomp=${test_data_path}/seccomp_profile_without_archmap.json busybox sh)
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - Failed to run container with multiple seccomp profiles" && ((ret++))
+
+- isula stop "${cid1}" "${cid2}" "${cid3}"
++ isula stop -t 0 "${cid1}" "${cid2}" "${cid3}"
+
+ isula rm -f $(isula ps -qa)
+
+@@ -69,7 +70,10 @@ declare -i ans=0
+
+ do_pre || ((ans++))
+
+-do_test || ((ans++))
++for element in ${RUNTIME_LIST[@]};
++do
++ do_test $element || ((ans++))
++done
+
+ do_post
+
+diff --git a/CI/test_cases/container_cases/stop.sh b/CI/test_cases/container_cases/stop.sh
+index 962e72f3..13292710 100755
+--- a/CI/test_cases/container_cases/stop.sh
++++ b/CI/test_cases/container_cases/stop.sh
+@@ -25,8 +25,12 @@ source ../helpers.sh
+
+ function do_test_t()
+ {
++ local runtime=$1
++ local test="start_test => (${runtime})"
++ msg_info "${test} starting..."
++
+ containername=test_stop
+- isula run --name $containername -td busybox
++ isula run --runtime $runtime --name $containername -td busybox
+ fn_check_eq "$?" "0" "run failed"
+ testcontainer $containername running
+
+@@ -61,14 +65,19 @@ function do_test_t()
+ isula rm $containername
+ fn_check_eq "$?" "0" "rm failed"
+
++ msg_info "${test} finished with return ${ret}..."
++
+ return $TC_RET_T
+ }
+
+ ret=0
+
+-do_test_t
+-if [ $? -ne 0 ];then
+- let "ret=$ret + 1"
+-fi
++for element in ${RUNTIME_LIST[@]};
++do
++ do_test_t $element
++ if [ $? -ne 0 ];then
++ let "ret=$ret + 1"
++ fi
++done
+
+ show_result $ret "basic stop"
+diff --git a/CI/test_cases/critest.sh b/CI/test_cases/critest.sh
+index 044ce2ed..f8d4975e 100755
+--- a/CI/test_cases/critest.sh
++++ b/CI/test_cases/critest.sh
+@@ -130,7 +130,7 @@ function test_critest() {
+ function do_test_t() {
+ local ret=0
+
+- local runtime="lcr"
++ local runtime="runc"
+ local test="critest => $runtime"
+ msg_info "${test} starting..."
+ echo "${test}" >> ${testcase_data}/critest.log
+@@ -143,11 +143,11 @@ function do_test_t() {
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - stop isulad failed" && ((ret++))
+
+ # replace default runtime
+- sed -i 's/"default-runtime": "lcr"/"default-runtime": "runc"/g' /etc/isulad/daemon.json
++ sed -i 's/"default-runtime": "runc"/"default-runtime": "lcr"/g' /etc/isulad/daemon.json
+ start_isulad_without_valgrind --selinux-enabled --network-plugin cni
+ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - start isulad with selinux and cni failed" && ((ret++))
+
+- runtime=runc
++ runtime=lcr
+ test="critest => $runtime"
+ msg_info "${test} starting..."
+ echo "${test}" >> ${testcase_data}/critest.log
+--
+2.42.0
+