diff --git a/tests/wamr-test-suites/test_wamr.sh b/tests/wamr-test-suites/test_wamr.sh index 7fc2677b29..73b8f7dead 100755 --- a/tests/wamr-test-suites/test_wamr.sh +++ b/tests/wamr-test-suites/test_wamr.sh @@ -5,10 +5,12 @@ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # +# Run script like DEBUG=1 ./test_wamr.sh ... to enable debug mode function DEBUG() { - [[ -n $(env | grep "\") ]] && $@ + env | grep -q "\" && "$@" } -DEBUG set -exv pipefail +DEBUG set -exv +DEBUG set -o pipefail function help() { @@ -996,6 +998,18 @@ function do_execute_in_running_mode() function trigger() { + # return if TEST_CASE_ARR is empty + if [[ -z "${TEST_CASE_ARR[@]}" ]]; then + echo "TEST_CASE_ARR is empty, NO test case to run" + return + fi + + # Print all the test cases to be executed + echo "Following test cases to be executed: " + for suite in "${TEST_CASE_ARR[@]}"; do + echo " - " $suite"_test" + done + # Check if REQUIREMENT_NAME is set, if set, only calling requirement test and early return if [[ -n $REQUIREMENT_NAME ]]; then python ${REQUIREMENT_SCRIPT_DIR}/run_requirement.py -o ${REPORT_DIR}/ -r "$REQUIREMENT_NAME" "${SUBREQUIREMENT_IDS[@]}" @@ -1187,6 +1201,19 @@ function trigger() done } +function remove_empty_elements() +{ + # Remove empty elements from the array + local arr=("$@") + local new_arr=() + for element in "${arr[@]}"; do + if [[ -n "$element" ]]; then + new_arr+=("$element") + fi + done + echo "${new_arr[@]}" +} + if [[ $TEST_CASE_ARR ]];then # Check if 'unit' is in TEST_CASE_ARR if [[ " ${TEST_CASE_ARR[@]} " =~ " unit " ]]; then @@ -1194,14 +1221,12 @@ if [[ $TEST_CASE_ARR ]];then # and run under specific modes. # There is no need to loop through all running modes in this script. unit_test || (echo "TEST FAILED"; exit 1) - if [[ ${COLLECT_CODE_COVERAGE} == 1 ]]; then - collect_coverage unit - fi + collect_coverage unit # remove 'unit' from TEST_CASE_ARR TEST_CASE_ARR=("${TEST_CASE_ARR[@]/unit}") # remove empty elements from TEST_CASE_ARR - TEST_CASE_ARR=("${TEST_CASE_ARR[@]:-}") + TEST_CASE_ARR=($(remove_empty_elements "${TEST_CASE_ARR[@]}")) fi # loop others through all running modes @@ -1223,6 +1248,7 @@ else fi echo -e "Test finish. Reports are under ${REPORT_DIR}" -DEBUG set +exv pipefail +DEBUG set +exv +DEBUG set +o pipefail echo "TEST SUCCESSFUL" exit 0