From 78d5ee37ff4b2b3ef0a3e3031087d8cdb2e0c0cd Mon Sep 17 00:00:00 2001 From: xingweizheng Date: Sun, 30 May 2021 20:55:07 +0800 Subject: [PATCH 5/5] integration test from new flaw of run and data root set --- Makefile | 18 ++++++--- README.zh.md | 2 +- tests/src/test_integration_set_new_root.sh | 60 ++++++++++++++++++++++++++++++ tests/test.sh | 29 +++++++++++++-- 4 files changed, 98 insertions(+), 11 deletions(-) create mode 100644 tests/src/test_integration_set_new_root.sh diff --git a/Makefile b/Makefile index cbace59..f8578a4 100644 --- a/Makefile +++ b/Makefile @@ -73,13 +73,13 @@ debug: build-image: isula-build ctr-img build -f Dockerfile.proto ${IMAGE_BUILDARGS} -o isulad:${IMAGE_NAME}:latest . -tests: test-integration test-unit +tests: test-base test-unit test-integration -.PHONY: test-integration -test-integration: - @echo "Integration test starting..." - @./tests/test.sh - @echo "Integration test done!" +.PHONY: test-base +test-base: + @echo "Base test starting..." + @./tests/test.sh base + @echo "Base test done!" .PHONY: test-unit test-unit: @@ -87,6 +87,12 @@ test-unit: @./hack/unit_test.sh @echo "Unit test done!" +.PHONY: test-integration +test-integration: + @echo "Integration test starting..." + @./tests/test.sh integration + @echo "Integration test done!" + .PHONY: proto proto: @echo "Generating protobuf..." diff --git a/README.zh.md b/README.zh.md index 4b53ba3..15301c0 100644 --- a/README.zh.md +++ b/README.zh.md @@ -106,7 +106,7 @@ sudo rpm -ivh isula-build-*.rpm 如果需要使用`systemd`进行管理isula-build,请参考以下步骤: ```sh -sudo install -p -m 640 ./isula-build.service /etc/systemd/system/isula-build. +sudo install -p -m 640 ./isula-build.service /etc/systemd/system/isula-build.service sudo systemctl enable isula-build sudo systemctl start isula-build ``` diff --git a/tests/src/test_integration_set_new_root.sh b/tests/src/test_integration_set_new_root.sh new file mode 100644 index 0000000..85b724a --- /dev/null +++ b/tests/src/test_integration_set_new_root.sh @@ -0,0 +1,60 @@ +#!/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-05-29 +# Description: test set new run and data root in configuration.toml + +run_root="/var/run/new-isula-build" +data_root="/var/lib/new-isula-build" +config_file="/etc/isula-build/configuration.toml" +base_image="hub.oepkgs.net/openeuler/openeuler:21.03" + +function clean() +{ + isula-build ctr-img rm $base_image >/dev/null 2>&1 + rm -f $config_file + mv "$config_file".bak $config_file + systemctl stop isula-build + rm -rf $run_root $data_root +} + +# change to new data and run root +function pre_test() +{ + cp $config_file "$config_file".bak + 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 +} + +# check if new resources are downloaded in new root +function do_test() +{ + tree_node_befor=$(tree -L 3 $data_root | wc -l) + isula-build ctr-img pull $base_image >/dev/null 2>&1 + tree_node_after=$(tree -L 3 $data_root | wc -l) + + if [ $(($tree_node_after - $tree_node_befor)) -eq 8 ]; then + echo "PASS" + else + echo "Sets of run and data root are not effective" + clean + exit 1 + fi +} + +# clean +pre_test +do_test +clean diff --git a/tests/test.sh b/tests/test.sh index 79fde8a..e04cc96 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -2,8 +2,8 @@ top_dir=$(git rev-parse --show-toplevel) -# normal test -function normal() { +# base test +function base() { source "$top_dir"/tests/lib/common.sh pre_check start_isula_builder @@ -33,15 +33,36 @@ function fuzz() { exit $failed } +# base test +function integration() { + source "$top_dir"/tests/lib/common.sh + pre_check + systemctl restart isula-build + + while IFS= read -r testfile; do + printf "%-45s" "test $(basename "$testfile"): " + if ! bash "$testfile"; then + exit 1 + fi + done < <(find "$top_dir"/tests/src -maxdepth 1 -name "test_integration*" -type f -print) +} + # main function to chose which kind of test function main() { case "$1" in fuzz) fuzz "$2" ;; + base) + base + ;; + integration) + integration + ;; *) - normal - ;; + echo "Unknow test type." + exit 1 + ;; esac } -- 1.8.3.1