From fbe5b10f83fa060ca2c2e2c3a6dc943dc9a878a2 Mon Sep 17 00:00:00 2001 From: xingweizheng Date: Tue, 11 Jan 2022 15:59:18 +0800 Subject: [PATCH 07/20] integration test use TMPDIR --- tests/lib/base_commonlib.sh | 33 ++++++++++--------- tests/lib/common.sh | 21 ++++++++---- tests/lib/integration_commonlib.sh | 2 +- tests/src/isula_build_base_command.sh | 0 .../test_image_name_conflict_with_image_id.sh | 12 +++---- .../test_save_single_image_multiple_tags.sh | 5 +-- tests/src/test_set_new_root.sh | 0 tests/test.sh | 8 +++-- 8 files changed, 46 insertions(+), 35 deletions(-) mode change 100644 => 100755 tests/src/isula_build_base_command.sh mode change 100644 => 100755 tests/src/test_image_name_conflict_with_image_id.sh mode change 100644 => 100755 tests/src/test_save_single_image_multiple_tags.sh mode change 100644 => 100755 tests/src/test_set_new_root.sh diff --git a/tests/lib/base_commonlib.sh b/tests/lib/base_commonlib.sh index 996fcdd..8893894 100644 --- a/tests/lib/base_commonlib.sh +++ b/tests/lib/base_commonlib.sh @@ -30,13 +30,13 @@ function pre_check() { # start isula-builder function start_isula_builder() { - nohup isula-builder >/tmp/buildlog-daemon 2>&1 & + nohup isula-builder >"$TMPDIR"/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 + if ! grep -i "is listening on" "$TMPDIR"/buildlog-daemon >/dev/null 2>&1; then sleep 0.1 continue else @@ -45,7 +45,8 @@ function start_isula_builder() { fi done if [ "${builder_started}" -eq 0 ]; then - echo "isula-builder start failed, log dir /tmp/buildlog-daemon" + echo "isula-builder start failed, log dir $TMPDIR/buildlog-daemon" + cat "$TMPDIR"/buildlog-daemon exit 1 fi } @@ -53,7 +54,7 @@ function start_isula_builder() { function cleanup() { isula-build ctr-img rm -p >/dev/null 2>&1 kill -15 "${pidofbuilder}" >/dev/null 2>&1 - rm -f /tmp/buildlog-* + rm -rf "$TMPDIR" } # isula-build builds with different output @@ -97,21 +98,21 @@ function test_build_without_output_with_oci_format() { # 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 build --output=docker-archive:$TMPDIR/$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 + rm -f "$TMPDIR"/"$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 build --output=oci-archive:$TMPDIR/$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 + rm -f "$TMPDIR"/"$1".tar } # test build image with docker-daemon output @@ -145,16 +146,16 @@ function test_build_with_isulad_output() { # 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" + ["Build docker format image"]="isula-build ctr-img build --tag $1-docker:latest --output=docker-archive:$TMPDIR/$1-docker.tar:$1-docker:latest $2" + ["Build oci format image"]="isula-build ctr-img build --tag $1-oci:latest --output=oci-archive:$TMPDIR/$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" + ["Save image with docker format"]="isula-build ctr-img save -f docker $1-docker:latest -o $TMPDIR/$1-save-docker.tar" + ["Save image with oci format"]="isula-build ctr-img save -f oci $1-oci:latest -o $TMPDIR/$1-save-oci.tar" + ["Load docker format images"]="isula-build ctr-img load -i $TMPDIR/$1-docker.tar" + ["Load oci format images"]="isula-build ctr-img load -i $TMPDIR/$1-oci.tar" + ["Save multipile images with docker format"]="isula-build ctr-img save -f docker $1-docker:latest $1-oci:latest -o $TMPDIR/$1-all.tar" ["Remove images"]="isula-build ctr-img rm $1-docker:latest $1-oci:latest" ) declare -a orders @@ -173,5 +174,5 @@ function test_isula_build_base_command() { show_and_run_command "${orders[$i]}" "${commands[${orders[$i]}]}" done - rm -f /tmp/*.tar + rm -f "$TMPDIR"/*.tar } diff --git a/tests/lib/common.sh b/tests/lib/common.sh index 3710f62..c600616 100755 --- a/tests/lib/common.sh +++ b/tests/lib/common.sh @@ -16,16 +16,23 @@ # exit_flag for a testcase, which will be added one when check or command goes something wrong exit_flag=0 +# TMPDIR use in all base or integration test process +declare -x TMPDIR + +# only run once for create a temp dir +function create_tmp_dir() { + TMPDIR=$(mktemp -d) +} # show command brief and run # $1 (command brief) # $2 (concrete command) function show_and_run_command() { function run_command() { - if ! $command >/tmp/buildlog-client 2>&1; then + if ! $command >"$TMPDIR"/buildlog-client 2>&1; then echo "FAIL" echo "Failed when running command: $command" - echo "LOG DIR:/tmp/buildlog-client and /tmp/buildlog-daemon" + echo "LOG DIR:$TMPDIR/buildlog-client and $TMPDIR/buildlog-daemon" kill -15 "${pidofbuilder}" shell_print_callstack exit 1 @@ -49,14 +56,14 @@ function systemd_run_command() { local -r command="$1" start_time=$(date '+%Y-%m-%d %H:%M:%S') - if ! $command >/tmp/buildlog-client 2>&1; then + if ! $command >"$TMPDIR"/buildlog-client 2>&1; then { echo "Error from client:" - cat /tmp/buildlog-client + cat "$TMPDIR"/buildlog-client echo "Error from daemon:" journalctl -u isula-build --since "$start_time" --no-pager shell_print_callstack - } >>/tmp/buildlog-failed + } >>"$TMPDIR"/buildlog-failed ((exit_flag++)) fi @@ -78,7 +85,7 @@ function run_check_result() { { echo "$testcase:${BASH_LINENO[0]}" "$command" echo expected "$expected", get "$result" - } >>/tmp/buildlog-failed + } >>"$TMPDIR"/buildlog-failed ((exit_flag++)) fi } @@ -97,7 +104,7 @@ function check_value() { { echo "TESTCASE: $testcase:${BASH_LINENO[0]}" "${FUNCNAME[0]}" echo expected "$expected", get "$result" - } >>/tmp/buildlog-failed + } >>"$TMPDIR"/buildlog-failed ((exit_flag++)) fi } diff --git a/tests/lib/integration_commonlib.sh b/tests/lib/integration_commonlib.sh index 9dcc415..44f186f 100644 --- a/tests/lib/integration_commonlib.sh +++ b/tests/lib/integration_commonlib.sh @@ -22,7 +22,7 @@ data_root="/var/lib/integration-isula-build" config_file="/etc/isula-build/configuration.toml" function pre_integration() { - rm -f /tmp/buildlog-failed + rm -f "$TMPDIR"/buildlog-failed cp $config_file "$config_file".integration sed -i "/run_root/d;/data_root/d" $config_file diff --git a/tests/src/isula_build_base_command.sh b/tests/src/isula_build_base_command.sh old mode 100644 new mode 100755 diff --git a/tests/src/test_image_name_conflict_with_image_id.sh b/tests/src/test_image_name_conflict_with_image_id.sh old mode 100644 new mode 100755 index 2c436a0..cbcc353 --- a/tests/src/test_image_name_conflict_with_image_id.sh +++ b/tests/src/test_image_name_conflict_with_image_id.sh @@ -35,7 +35,7 @@ function clean() { function do_test() { systemd_run_command "isula-build ctr-img build -t $image_name:latest1 $context_dir" systemd_run_command "isula-build ctr-img build -t $image_name:latest2 $context_dir" - image_id2=$(grep Refactor: use systemd_run_command common function top_dir=$(git rev-parse --show-toplevel) +# shellcheck disable=SC1091 source "$top_dir"/tests/lib/common.sh image_name=build-from-scratch @@ -27,10 +28,10 @@ function pre_test() { function do_test() { # get image id systemd_run_command "isula-build ctr-img build -t $image_name:latest $context_dir" - image_id1=$(grep