Просмотр исходного кода

fix: enhance test case execution handling in test_wamr.sh (#4712)

liang.he 1 месяц назад
Родитель
Сommit
ea9e11c88f
1 измененных файлов с 33 добавлено и 7 удалено
  1. 33 7
      tests/wamr-test-suites/test_wamr.sh

+ 33 - 7
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 "\<DEBUG\>") ]] && $@
+  env | grep -q "\<DEBUG\>" && "$@"
 }
-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