From c8f9834d59c8db4f150be3409c98debc1282134e Mon Sep 17 00:00:00 2001 From: xingweizheng Date: Tue, 11 Jan 2022 10:38:09 +0800 Subject: [PATCH 06/20] Refactor: combine all base command tests --- tests/lib/base_commonlib.sh | 177 ++++++++++++++++ tests/lib/common.sh | 198 ++---------------- tests/lib/integration_commonlib.sh | 42 ++++ tests/src/isula_build_base_command.sh | 44 ++++ tests/src/test_add_chown_basic.sh | 28 --- tests/src/test_build_from_scratch.sh | 28 --- tests/src/test_ctr_img_rm.sh | 13 +- ...test_image_name_conflict_with_image_id.sh} | 0 tests/src/test_isula_build_base_command.sh | 26 --- tests/src/test_multi_files_env.sh | 28 --- tests/src/test_multi_stage_builds.sh | 28 --- ...> test_save_single_image_multiple_tags.sh} | 0 ...t_set_new_root.sh => test_set_new_root.sh} | 0 tests/test.sh | 8 +- 14 files changed, 293 insertions(+), 327 deletions(-) create mode 100644 tests/lib/base_commonlib.sh create mode 100644 tests/lib/integration_commonlib.sh create mode 100644 tests/src/isula_build_base_command.sh delete mode 100755 tests/src/test_add_chown_basic.sh delete mode 100755 tests/src/test_build_from_scratch.sh rename tests/src/{integration_test_image_name_conflict_with_image_id.sh => test_image_name_conflict_with_image_id.sh} (100%) delete mode 100644 tests/src/test_isula_build_base_command.sh delete mode 100755 tests/src/test_multi_files_env.sh delete mode 100755 tests/src/test_multi_stage_builds.sh rename tests/src/{integration_test_save_single_image_multiple_tags.sh => test_save_single_image_multiple_tags.sh} (100%) rename tests/src/{integration_test_set_new_root.sh => test_set_new_root.sh} (100%) diff --git a/tests/lib/base_commonlib.sh b/tests/lib/base_commonlib.sh new file mode 100644 index 0000000..996fcdd --- /dev/null +++ b/tests/lib/base_commonlib.sh @@ -0,0 +1,177 @@ +#!/bin/bash + +# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. +# isula-build 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. +# Author: Weizheng Xing +# Create: 2022-01-10 +# Description: common functions for isula-build base commands tests + +top_dir=$(git rev-parse --show-toplevel) +# shellcheck disable=SC1091 +source "$top_dir"/tests/lib/common.sh + +# cross process environment for killing isula-builder +declare -x pidofbuilder + +# check if legacy builder exists +function pre_check() { + if pgrep isula-builder >/dev/null 2>&1; then + echo "isula-builder is already running, please stop it first" + exit 1 + fi +} + +# start isula-builder +function start_isula_builder() { + nohup isula-builder >/tmp/buildlog-daemon 2>&1 & + pidofbuilder=$! + + # check if isula-builder is started + builder_started=0 + for _ in $(seq 1 30); do + if ! grep -i "is listening on" /tmp/buildlog-daemon >/dev/null 2>&1; then + sleep 0.1 + continue + else + builder_started=1 + break + fi + done + if [ "${builder_started}" -eq 0 ]; then + echo "isula-builder start failed, log dir /tmp/buildlog-daemon" + exit 1 + fi +} + +function cleanup() { + isula-build ctr-img rm -p >/dev/null 2>&1 + kill -15 "${pidofbuilder}" >/dev/null 2>&1 + rm -f /tmp/buildlog-* +} + +# isula-build builds with different output +# $1 (image name) +# $2 (build context dir) +function test_isula_build_output() { + local -r image_name="$1" + local -r context_dir="$2" + + functions=( + test_build_without_output_with_docker_format + test_build_without_output_with_oci_format + test_build_with_docker_archive_output + test_build_with_oci_archive_output + test_build_with_docker_daemon_output + test_build_with_isulad_output + ) + + for function in "${functions[@]}"; do $function "$image_name" "$context_dir"; done +} + +# test build image without output with default docker format +function test_build_without_output_with_docker_format() { + commands=( + "isula-build ctr-img build --format docker --tag $1:latest $2" + "isula-build ctr-img rm $1:latest" + ) + + for command in "${commands[@]}"; do show_and_run_command "$command"; done +} + +# test build image without output with oci format +function test_build_without_output_with_oci_format() { + declare -a commands=( + "isula-build ctr-img build --format oci --tag $1:latest $2" + "isula-build ctr-img rm $1:latest" + ) + for command in "${commands[@]}"; do show_and_run_command "$command"; done +} + +# test build image with docker-archive output +function test_build_with_docker_archive_output() { + declare -a commands=( + "isula-build ctr-img build --output=docker-archive:/tmp/$1.tar:$1:latest $2" + "isula-build ctr-img rm $1:latest" + ) + for command in "${commands[@]}"; do show_and_run_command "$command"; done + rm -f /tmp/"$1".tar +} + +# test build image with oci-archive output +function test_build_with_oci_archive_output() { + declare -a commands=( + "isula-build ctr-img build --output=oci-archive:/tmp/$1.tar:$1:latest $2" + "isula-build ctr-img rm $1:latest" + ) + for command in "${commands[@]}"; do show_and_run_command "$command"; done + rm -f /tmp/"$1".tar +} + +# test build image with docker-daemon output +function test_build_with_docker_daemon_output() { + if ! systemctl status docker >/dev/null 2>&1; then + return 0 + fi + + declare -a commands=( + "isula-build ctr-img build --output=docker-daemon:isula/$1:latest $2" + "isula-build ctr-img rm isula/$1:latest" + ) + for command in "${commands[@]}"; do show_and_run_command "$command"; done + docker rmi isula/"$1" >/dev/null 2>&1 +} + +# test build image with isulad output +function test_build_with_isulad_output() { + if ! systemctl status isulad >/dev/null 2>&1; then + return 0 + fi + + declare -a commands=( + "isula-build ctr-img build --output=isulad:isula/$1:latest $2" + "isula-build ctr-img rm isula/$1:latest" + ) + for command in "${commands[@]}"; do show_and_run_command "$command"; done + isula rmi isula/"$1" >/dev/null 2>&1 +} + +# test isula build base command +function test_isula_build_base_command() { + declare -A commands=( + ["Build docker format image"]="isula-build ctr-img build --tag $1-docker:latest --output=docker-archive:/tmp/$1-docker.tar:$1-docker:latest $2" + ["Build oci format image"]="isula-build ctr-img build --tag $1-oci:latest --output=oci-archive:/tmp/$1-oci.tar:$1-oci:latest $2" + ["List all images"]="isula-build ctr-img images" + ["List docker format image"]="isula-build ctr-img images $1-docker:latest" + ["List oci format image"]="isula-build ctr-img images $1-oci:latest" + ["Save image with docker format"]="isula-build ctr-img save -f docker $1-docker:latest -o /tmp/$1-save-docker.tar" + ["Save image with oci format"]="isula-build ctr-img save -f oci $1-oci:latest -o /tmp/$1-save-oci.tar" + ["Load docker format images"]="isula-build ctr-img load -i /tmp/$1-docker.tar" + ["Load oci format images"]="isula-build ctr-img load -i /tmp/$1-oci.tar" + ["Save multipile images with docker format"]="isula-build ctr-img save -f docker $1-docker:latest $1-oci:latest -o /tmp/$1-all.tar" + ["Remove images"]="isula-build ctr-img rm $1-docker:latest $1-oci:latest" + ) + declare -a orders + orders+=("Build docker format image") + orders+=("Build oci format image") + orders+=("List all images") + orders+=("List docker format image") + orders+=("List oci format image") + orders+=("Save image with docker format") + orders+=("Save image with oci format") + orders+=("Load docker format images") + orders+=("Load oci format images") + orders+=("Save multipile images with docker format") + orders+=("Remove images") + for i in "${!orders[@]}"; do + show_and_run_command "${orders[$i]}" "${commands[${orders[$i]}]}" + done + + rm -f /tmp/*.tar +} diff --git a/tests/lib/common.sh b/tests/lib/common.sh index 3c031f9..3710f62 100755 --- a/tests/lib/common.sh +++ b/tests/lib/common.sh @@ -12,154 +12,10 @@ # Author: Danni Xia # Create: 2020-03-01 # Description: common functions for tests +# History: 2022-01-10 Weizheng Xing Refactor: only maintain the most common functions here -# cross process environment for killing isula-builder -declare -x pidofbuilder - -# check if legacy builder exists -function pre_check() { - if pgrep isula-builder >/dev/null 2>&1; then - echo "isula-builder is already running, please stop it first" - exit 1 - fi -} - -# start isula-builder -function start_isula_builder() { - nohup isula-builder >/tmp/buildlog-daemon 2>&1 & - pidofbuilder=$! - - # check if isula-builder is started - builder_started=0 - for _ in $(seq 1 30); do - if ! grep -i "is listening on" /tmp/buildlog-daemon >/dev/null 2>&1; then - sleep 0.1 - continue - else - builder_started=1 - break - fi - done - if [ "${builder_started}" -eq 0 ]; then - echo "isula-builder start failed, log dir /tmp/buildlog-daemon" - exit 1 - fi -} - -function cleanup() { - isula-build ctr-img rm -p >/dev/null 2>&1 - kill -15 "${pidofbuilder}" >/dev/null 2>&1 - rm -f /tmp/buildlog-* -} - -# test build image without output with default docker format -function test_build_without_output() { - commands=( - "isula-build ctr-img build --format docker --tag $1:latest $2" - "isula-build ctr-img rm $1:latest" - ) - - for command in "${commands[@]}"; do show_and_run_command "$command"; done -} - -# test build image without output with oci format -function test_build_without_output_with_oci_format() { - declare -a commands=( - "isula-build ctr-img build --format oci --tag $1:latest $2" - "isula-build ctr-img rm $1:latest" - ) - for command in "${commands[@]}"; do show_and_run_command "$command"; done -} - -# test build image with docker-archive output -function test_build_with_docker_archive_output() { - declare -a commands=( - "isula-build ctr-img build --output=docker-archive:/tmp/$1.tar:$1:latest $2" - "isula-build ctr-img rm $1:latest" - ) - for command in "${commands[@]}"; do show_and_run_command "$command"; done - rm -f /tmp/"$1".tar -} - -# test build image with oci-archive output -function test_build_with_oci_archive_output() { - declare -a commands=( - "isula-build ctr-img build --output=oci-archive:/tmp/$1.tar:$1:latest $2" - "isula-build ctr-img rm $1:latest" - ) - for command in "${commands[@]}"; do show_and_run_command "$command"; done - rm -f /tmp/"$1".tar -} - -# test build image with docker-daemon output -function test_build_with_docker_daemon_output() { - if ! systemctl status docker >/dev/null 2>&1; then - return 0 - fi - - declare -a commands=( - "isula-build ctr-img build --output=docker-daemon:isula/$1:latest $2" - "isula-build ctr-img rm isula/$1:latest" - ) - for command in "${commands[@]}"; do show_and_run_command "$command"; done - docker rmi isula/"$1" >/dev/null 2>&1 -} - -# test build image with isulad output -function test_build_with_isulad_output() { - if ! systemctl status isulad >/dev/null 2>&1; then - return 0 - fi - - declare -a commands=( - "isula-build ctr-img build --output=isulad:isula/$1:latest $2" - "isula-build ctr-img rm isula/$1:latest" - ) - for command in "${commands[@]}"; do show_and_run_command "$command"; done - isula rmi isula/"$1" >/dev/null 2>&1 -} - -# test isula build base command -function test_isula_build_base_command() { - declare -A commands=( - ["Build docker format image"]="isula-build ctr-img build --tag $1-docker:latest --output=docker-archive:/tmp/$1-docker.tar:$1-docker:latest $2" - ["Build oci format image"]="isula-build ctr-img build --tag $1-oci:latest --output=oci-archive:/tmp/$1-oci.tar:$1-oci:latest $2" - ["List all images"]="isula-build ctr-img images" - ["List docker format image"]="isula-build ctr-img images $1-docker:latest" - ["List oci format image"]="isula-build ctr-img images $1-oci:latest" - ["Save image with docker format"]="isula-build ctr-img save -f docker $1-docker:latest -o /tmp/$1-save-docker.tar" - ["Save image with oci format"]="isula-build ctr-img save -f oci $1-oci:latest -o /tmp/$1-save-oci.tar" - ["Load docker format images"]="isula-build ctr-img load -i /tmp/$1-docker.tar" - ["Load oci format images"]="isula-build ctr-img load -i /tmp/$1-oci.tar" - ["Save multipile images with docker format"]="isula-build ctr-img save -f docker $1-docker:latest $1-oci:latest -o /tmp/$1-all.tar" - ["Remove images"]="isula-build ctr-img rm $1-docker:latest $1-oci:latest" - ) - declare -a orders - orders+=("Build docker format image") - orders+=("Build oci format image") - orders+=("List all images") - orders+=("List docker format image") - orders+=("List oci format image") - orders+=("Save image with docker format") - orders+=("Save image with oci format") - orders+=("Load docker format images") - orders+=("Load oci format images") - orders+=("Save multipile images with docker format") - orders+=("Remove images") - for i in "${!orders[@]}"; do - show_and_run_command "${orders[$i]}" "${commands[${orders[$i]}]}" - done - - rm -f /tmp/*.tar -} - -# print callstack of shell function -function shell_print_callstack() { - echo "Shell Function Call Stack:" - for ((index = 1; index < ${#FUNCNAME[@]}; index++)); do - printf "\t%d - %s\n" "$((index - 1))" "${FUNCNAME[index]} (${BASH_SOURCE[index + 1]}:${BASH_LINENO[index]})" - done -} +# exit_flag for a testcase, which will be added one when check or command goes something wrong +exit_flag=0 # show command brief and run # $1 (command brief) @@ -182,13 +38,11 @@ function show_and_run_command() { fi local -r brief="$1" local -r command="$2" - printf "%-45s" "$brief"":" + printf "%-45s" "$brief:" run_command echo "PASS" } -exit_flag=0 - # run command when isula-builder running in systemd mode # $1 (concrete command) function systemd_run_command() { @@ -217,12 +71,14 @@ function run_check_result() { eval "$command" >/dev/null 2>&1 result=$? + debug "expected $expected, get $result" if [ "$result" != "$expected" ]; then - debug "expected $expected, get $result" testcase_path="${BASH_SOURCE[1]}" testcase="${testcase_path##/*/}" - echo "$testcase:${BASH_LINENO[0]}" "$command" >>/tmp/buildlog-failed - echo expected "$expected", get "$result" >>/tmp/buildlog-failed + { + echo "$testcase:${BASH_LINENO[0]}" "$command" + echo expected "$expected", get "$result" + } >>/tmp/buildlog-failed ((exit_flag++)) fi } @@ -233,13 +89,15 @@ function run_check_result() { function check_value() { local -r result="$1" local -r expected="$2" + debug "expected $expected, get $result" if [ "$result" != "$expected" ]; then - debug "expected $expected, get $result" testcase_path="${BASH_SOURCE[1]}" testcase="${testcase_path##/*/}" - echo "TESTCASE: $testcase:${BASH_LINENO[0]}" "${FUNCNAME[0]}" >>/tmp/buildlog-failed - echo expected "$expected", get "$result" >>/tmp/buildlog-failed + { + echo "TESTCASE: $testcase:${BASH_LINENO[0]}" "${FUNCNAME[0]}" + echo expected "$expected", get "$result" + } >>/tmp/buildlog-failed ((exit_flag++)) fi } @@ -254,26 +112,10 @@ function debug() { fi } -run_root="/var/run/integration-isula-build" -data_root="/var/lib/integration-isula-build" -config_file="/etc/isula-build/configuration.toml" - -function pre_integration() { - rm -rf /tmp/buildlog-failed - - cp $config_file "$config_file".integration - sed -i "/run_root/d;/data_root/d" $config_file - echo "run_root = \"${run_root}\"" >>$config_file - echo "data_root = \"${data_root}\"" >>$config_file - - systemctl restart isula-build -} - -function after_integration() { - systemd_run_command "isula-build ctr-img rm -a" - - rm -f $config_file - mv "$config_file".integration $config_file - systemctl stop isula-build - rm -rf $run_root $data_root +# print callstack of shell function +function shell_print_callstack() { + echo "Shell Function Call Stack:" + for ((index = 1; index < ${#FUNCNAME[@]}; index++)); do + printf "\t%d - %s\n" "$((index - 1))" "${FUNCNAME[index]} (${BASH_SOURCE[index + 1]}:${BASH_LINENO[index]})" + done } diff --git a/tests/lib/integration_commonlib.sh b/tests/lib/integration_commonlib.sh new file mode 100644 index 0000000..9dcc415 --- /dev/null +++ b/tests/lib/integration_commonlib.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. +# isula-build 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. +# Author: Weizheng Xing +# Create: 2022-01-10 +# Description: common functions for isula-build integration tests + +top_dir=$(git rev-parse --show-toplevel) +# shellcheck disable=SC1091 +source "$top_dir"/tests/lib/common.sh + +run_root="/var/run/integration-isula-build" +data_root="/var/lib/integration-isula-build" +config_file="/etc/isula-build/configuration.toml" + +function pre_integration() { + rm -f /tmp/buildlog-failed + + cp $config_file "$config_file".integration + sed -i "/run_root/d;/data_root/d" $config_file + echo "run_root = \"${run_root}\"" >>$config_file + echo "data_root = \"${data_root}\"" >>$config_file + + systemctl restart isula-build +} + +function after_integration() { + systemd_run_command "isula-build ctr-img rm -a" + + rm -f $config_file + mv "$config_file".integration $config_file + systemctl stop isula-build + rm -rf $run_root $data_root +} diff --git a/tests/src/isula_build_base_command.sh b/tests/src/isula_build_base_command.sh new file mode 100644 index 0000000..157a747 --- /dev/null +++ b/tests/src/isula_build_base_command.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. +# isula-build 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. +# Author: Weizheng Xing +# Create: 2021-01-12 +# Description: test isula-build base commands + +top_dir=$(git rev-parse --show-toplevel) +source "$top_dir"/tests/lib/base_commonlib.sh + +function test_isula_build_output_with_different_dockerfiles() { + declare -A dockerfiles=( + ["build-from-scratch"]="$top_dir"/tests/data/build-from-scratch + ["add-chown-basic"]="$top_dir"/tests/data/add-chown-basic + ["multi-files-env"]="$top_dir"/tests/data/multi-files-env + ["multi-stage-builds"]="$top_dir"/tests/data/multi-stage-builds + ) + + for image_name in "${!dockerfiles[@]}"; do + printf "%-45s" "Outputs with dockerfile $image_name:" + test_isula_build_output "$image_name" "${dockerfiles[$image_name]}" + echo "PASS" + done +} + +function test_isula_build_all_base_command() { + image_name=build-from-scratch + context_dir="$top_dir"/tests/data/build-from-scratch + + test_isula_build_base_command "$image_name" "$context_dir" + echo "PASS" +} + +echo "" +test_isula_build_output_with_different_dockerfiles +test_isula_build_all_base_command diff --git a/tests/src/test_add_chown_basic.sh b/tests/src/test_add_chown_basic.sh deleted file mode 100755 index 1ae55cc..0000000 --- a/tests/src/test_add_chown_basic.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. -# isula-build 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. -# Author: Danni Xia -# Create: 2020-08-27 -# Description: dockerfile test add-chown-basic - -top_dir=$(git rev-parse --show-toplevel) -source "$top_dir"/tests/lib/common.sh - -image_name=add-chown-basic -context_dir="$top_dir"/tests/data/add-chown-basic -test_build_without_output "$image_name" "$context_dir" -test_build_without_output_with_oci_format "$image_name" "$context_dir" -test_build_with_docker_archive_output "$image_name" "$context_dir" -test_build_with_oci_archive_output "$image_name" "$context_dir" -test_build_with_docker_daemon_output "$image_name" "$context_dir" -test_build_with_isulad_output "$image_name" "$context_dir" - -echo "PASS" diff --git a/tests/src/test_build_from_scratch.sh b/tests/src/test_build_from_scratch.sh deleted file mode 100755 index 6279d4a..0000000 --- a/tests/src/test_build_from_scratch.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. -# isula-build 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. -# Author: Danni Xia -# Create: 2020-08-27 -# Description: dockerfile test test-build-from-scratch - -top_dir=$(git rev-parse --show-toplevel) -source "$top_dir"/tests/lib/common.sh - -image_name=build-from-scratch -context_dir="$top_dir"/tests/data/build-from-scratch -test_build_without_output "$image_name" "$context_dir" -test_build_without_output_with_oci_format "$image_name" "$context_dir" -test_build_with_docker_archive_output "$image_name" "$context_dir" -test_build_with_oci_archive_output "$image_name" "$context_dir" -test_build_with_docker_daemon_output "$image_name" "$context_dir" -test_build_with_isulad_output "$image_name" "$context_dir" - -echo "PASS" diff --git a/tests/src/test_ctr_img_rm.sh b/tests/src/test_ctr_img_rm.sh index 480e074..4f40544 100755 --- a/tests/src/test_ctr_img_rm.sh +++ b/tests/src/test_ctr_img_rm.sh @@ -12,13 +12,12 @@ # Author: Jingxiao Lu # Create: 2020-09-07 # Description: dockerfile test multi-stage-builds +# History: 2022-01-10 Weizheng Xing change to integration test and use run_check_result + +top_dir=$(git rev-parse --show-toplevel) +# shellcheck disable=SC1091 +source "$top_dir"/tests/lib/common.sh nonexistent_image="foo:bar" # rm an nonexistent image -isula-build ctr-img rm ${nonexistent_image} > /dev/null 2>&1 -if [ $? -eq 0 ]; then - echo "FAIL" - exit 1 -fi - -echo "PASS" +run_check_result "isula-build ctr-img rm ${nonexistent_image}" "1" diff --git a/tests/src/integration_test_image_name_conflict_with_image_id.sh b/tests/src/test_image_name_conflict_with_image_id.sh similarity index 100% rename from tests/src/integration_test_image_name_conflict_with_image_id.sh rename to tests/src/test_image_name_conflict_with_image_id.sh diff --git a/tests/src/test_isula_build_base_command.sh b/tests/src/test_isula_build_base_command.sh deleted file mode 100644 index 35b9e91..0000000 --- a/tests/src/test_isula_build_base_command.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. -# isula-build 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. -# Author: Weizheng Xing -# Create: 2021-01-12 -# Description: test isula-build base commands - -top_dir=$(git rev-parse --show-toplevel) -source "$top_dir"/tests/lib/common.sh - -image_name=build-from-scratch -context_dir="$top_dir"/tests/data/build-from-scratch - -echo "" - -test_isula_build_base_command "$image_name" "$context_dir" - -echo "PASS" \ No newline at end of file diff --git a/tests/src/test_multi_files_env.sh b/tests/src/test_multi_files_env.sh deleted file mode 100755 index 437e6f5..0000000 --- a/tests/src/test_multi_files_env.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. -# isula-build 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. -# Author: Danni Xia -# Create: 2020-08-27 -# Description: dockerfile test multi-files-env - -top_dir=$(git rev-parse --show-toplevel) -source "$top_dir"/tests/lib/common.sh - -image_name=multi-files-env -context_dir="$top_dir"/tests/data/multi-files-env -test_build_without_output "$image_name" "$context_dir" -test_build_without_output_with_oci_format "$image_name" "$context_dir" -test_build_with_docker_archive_output "$image_name" "$context_dir" -test_build_with_oci_archive_output "$image_name" "$context_dir" -test_build_with_docker_daemon_output "$image_name" "$context_dir" -test_build_with_isulad_output "$image_name" "$context_dir" - -echo "PASS" diff --git a/tests/src/test_multi_stage_builds.sh b/tests/src/test_multi_stage_builds.sh deleted file mode 100755 index 5fcd351..0000000 --- a/tests/src/test_multi_stage_builds.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. -# isula-build 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. -# Author: Danni Xia -# Create: 2020-08-27 -# Description: dockerfile test multi-stage-builds - -top_dir=$(git rev-parse --show-toplevel) -source "$top_dir"/tests/lib/common.sh - -image_name=multi-stage-builds -context_dir="$top_dir"/tests/data/multi-stage-builds -test_build_without_output "$image_name" "$context_dir" -test_build_without_output_with_oci_format "$image_name" "$context_dir" -test_build_with_docker_archive_output "$image_name" "$context_dir" -test_build_with_oci_archive_output "$image_name" "$context_dir" -test_build_with_docker_daemon_output "$image_name" "$context_dir" -test_build_with_isulad_output "$image_name" "$context_dir" - -echo "PASS" diff --git a/tests/src/integration_test_save_single_image_multiple_tags.sh b/tests/src/test_save_single_image_multiple_tags.sh similarity index 100% rename from tests/src/integration_test_save_single_image_multiple_tags.sh rename to tests/src/test_save_single_image_multiple_tags.sh diff --git a/tests/src/integration_test_set_new_root.sh b/tests/src/test_set_new_root.sh similarity index 100% rename from tests/src/integration_test_set_new_root.sh rename to tests/src/test_set_new_root.sh diff --git a/tests/test.sh b/tests/test.sh index df29c22..6cf78c9 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -4,7 +4,7 @@ top_dir=$(git rev-parse --show-toplevel) # base test function base() { - source "$top_dir"/tests/lib/common.sh + source "$top_dir"/tests/lib/base_commonlib.sh pre_check start_isula_builder @@ -13,7 +13,7 @@ function base() { if ! bash "$testfile"; then exit 1 fi - done < <(find "$top_dir"/tests/src -maxdepth 1 -name "test_*" -type f -print) + done < <(find "$top_dir"/tests/src -maxdepth 1 -name "isula_build_base_command.sh" -type f -print) cleanup } @@ -35,7 +35,7 @@ function fuzz() { # integration test function integration() { - source "$top_dir"/tests/lib/common.sh + source "$top_dir"/tests/lib/integration_commonlib.sh pre_integration while IFS= read -r testfile; do @@ -45,7 +45,7 @@ function integration() { continue fi echo "PASS" - done < <(find "$top_dir"/tests/src -maxdepth 1 -name "integration_test*" -type f -print) + done < <(find "$top_dir"/tests/src -maxdepth 1 -name "test_*" -type f -print) after_integration } -- 2.27.0