3434# Store results
3535RESULTS_PASS=" "
3636RESULTS_FAIL=" "
37+ RESULTS_SKIP=" "
3738
3839execute_test_case () {
3940 test_path=$1
@@ -43,20 +44,37 @@ execute_test_case() {
4344 run_script=" $test_path /run.sh"
4445 if [ -f " $run_script " ]; then
4546 log " Executing test case: $test_name "
46- if (cd " $test_path " && sh " ./run.sh" ); then
47- log_pass " $test_name passed"
48- if [ -z " $RESULTS_PASS " ]; then
49- RESULTS_PASS=" $test_name "
47+ (cd " $test_path " && sh " ./run.sh" )
48+ res_file=" $test_path /$test_name .res"
49+ if [ -f " $res_file " ]; then
50+ if grep -q " SKIP" " $res_file " ; then
51+ log_skip " $test_name skipped"
52+ if [ -z " $RESULTS_SKIP " ]; then
53+ RESULTS_SKIP=" $test_name "
54+ else
55+ RESULTS_SKIP=$( printf " %s\n%s" " $RESULTS_SKIP " " $test_name " )
56+ fi
57+ elif grep -q " PASS" " $res_file " ; then
58+ log_pass " $test_name passed"
59+ if [ -z " $RESULTS_PASS " ]; then
60+ RESULTS_PASS=" $test_name "
61+ else
62+ RESULTS_PASS=$( printf " %s\n%s" " $RESULTS_PASS " " $test_name " )
63+ fi
64+ elif grep -q " FAIL" " $res_file " ; then
65+ log_fail " $test_name failed"
66+ if [ -z " $RESULTS_FAIL " ]; then
67+ RESULTS_FAIL=" $test_name "
68+ else
69+ RESULTS_FAIL=$( printf " %s\n%s" " $RESULTS_FAIL " " $test_name " )
70+ fi
5071 else
51- RESULTS_PASS=$( printf " %s\n%s" " $RESULTS_PASS " " $test_name " )
72+ log_fail " $test_name : unknown result in .res file"
73+ RESULTS_FAIL=$( printf " %s\n%s" " $RESULTS_FAIL " " $test_name (unknown result)" )
5274 fi
5375 else
54- log_fail " $test_name failed"
55- if [ -z " $RESULTS_FAIL " ]; then
56- RESULTS_FAIL=" $test_name "
57- else
58- RESULTS_FAIL=$( printf " %s\n%s" " $RESULTS_FAIL " " $test_name " )
59- fi
76+ log_fail " $test_name : .res file not found"
77+ RESULTS_FAIL=$( printf " %s\n%s" " $RESULTS_FAIL " " $test_name (.res not found)" )
6078 fi
6179 else
6280 log_error " No run.sh found in $test_path "
@@ -95,6 +113,9 @@ print_summary() {
95113 echo
96114 echo " FAILED:"
97115 [ -n " $RESULTS_FAIL " ] && printf " %s\n" " $RESULTS_FAIL " || echo " None"
116+ echo
117+ echo " SKIPPED:"
118+ [ -n " $RESULTS_SKIP " ] && printf " %s\n" " $RESULTS_SKIP " || echo " None"
98119 log_info " =================================="
99120}
100121
0 commit comments