From 4b8086307bf4ef4951bf9377338578d1908e41cc Mon Sep 17 00:00:00 2001 From: xingweizheng Date: Tue, 11 Jan 2022 15:59:50 +0800 Subject: [PATCH 08/20] better display of integration test --- tests/lib/common.sh | 6 +++--- tests/lib/integration_commonlib.sh | 12 ++++++++++-- tests/test.sh | 15 +++++++++++++-- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/tests/lib/common.sh b/tests/lib/common.sh index c600616..b67361e 100755 --- a/tests/lib/common.sh +++ b/tests/lib/common.sh @@ -78,7 +78,7 @@ function run_check_result() { eval "$command" >/dev/null 2>&1 result=$? - debug "expected $expected, get $result" + debug "run command: $command, expected $expected, get $result" if [ "$result" != "$expected" ]; then testcase_path="${BASH_SOURCE[1]}" testcase="${testcase_path##/*/}" @@ -96,7 +96,7 @@ function run_check_result() { function check_value() { local -r result="$1" local -r expected="$2" - debug "expected $expected, get $result" + debug "check value: expected $expected, get $result" if [ "$result" != "$expected" ]; then testcase_path="${BASH_SOURCE[1]}" @@ -115,7 +115,7 @@ function debug() { local -r message="$1" if [ "$TEST_DEBUG" == "true" ]; then - printf "(%s %s) " "DEBUG:" "$message" + echo -e " \tDEBUG:" "$message" fi } diff --git a/tests/lib/integration_commonlib.sh b/tests/lib/integration_commonlib.sh index 44f186f..de8dde5 100644 --- a/tests/lib/integration_commonlib.sh +++ b/tests/lib/integration_commonlib.sh @@ -22,8 +22,6 @@ data_root="/var/lib/integration-isula-build" config_file="/etc/isula-build/configuration.toml" function pre_integration() { - rm -f "$TMPDIR"/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 @@ -32,11 +30,21 @@ function pre_integration() { systemctl restart isula-build } +# clean test dir +# $1 (failed testcases) function after_integration() { + local -r failed="$1" + 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 + + if [ $((failed)) -eq 0 ]; then + rm -rf "$TMPDIR" + else + echo "Please check $TMPDIR/buildlog-failed for more information." + fi } diff --git a/tests/test.sh b/tests/test.sh index 3f2785b..c949a4e 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -40,15 +40,26 @@ function integration() { create_tmp_dir pre_integration + all=0 + failed=0 while IFS= read -r testfile; do + ((all++)) printf "%-65s" "test $(basename "$testfile"): " + if [ "$TEST_DEBUG" == true ]; then + echo "" + fi + if ! bash "$testfile"; then + ((failed++)) echo "FAIL" continue fi - echo "PASS" + echo -e "\033[32mPASS\033[0m" done < <(find "$top_dir"/tests/src -maxdepth 1 -name "test_*" -type f -print) - after_integration + after_integration "$failed" + + rate=$(echo "scale=2; $((all - failed)) * 100 / $all" | bc) + echo -e "\033[32m| $(date "+%Y-%m-%d-%H-%M-%S") | Total Testcases: $all | FAIL: $failed | PASS: $((all - failed)) | PASS RATE: $rate %|\033[0m" } # main function to chose which kind of test -- 2.27.0