diff --git a/test_script/runit.sh b/test_script/runit.sh index afddeca..38f0878 100644 --- a/test_script/runit.sh +++ b/test_script/runit.sh @@ -23,6 +23,7 @@ GCC_TIMEOUT=10 # gcc 编译超时 (秒) EXEC_TIMEOUT=5 # qemu 执行超时 (秒) TOTAL_CASES=0 PASSED_CASES=0 +FAILED_CASES_LIST="" # 用于存储未通过的测例列表 # 显示帮助信息的函数 show_help() { @@ -138,6 +139,9 @@ while IFS= read -r sy_file; do # 如果只编译不执行,只要编译成功就算通过 if [ "$is_passed" -eq 1 ]; then ((PASSED_CASES++)) + else + # --- 本次修改点 --- + FAILED_CASES_LIST+="${relative_path_no_ext}.sy\n" fi echo "" continue @@ -215,8 +219,12 @@ while IFS= read -r sy_file; do fi # 更新通过用例计数 + # --- 本次修改点 --- if [ "$is_passed" -eq 1 ]; then ((PASSED_CASES++)) + else + # 将失败的用例名称添加到列表中 + FAILED_CASES_LIST+="${relative_path_no_ext}.sy\n" fi echo "" # 添加空行以提高可读性 done <<< "$sy_files" @@ -225,6 +233,15 @@ done <<< "$sy_files" echo "========================================" echo "测试完成" echo "测试通过率: [${PASSED_CASES}/${TOTAL_CASES}]" + +# --- 本次修改点: 打印未通过的测例列表 --- +if [ -n "$FAILED_CASES_LIST" ]; then + echo "" + echo -e "\e[31m未通过的测例:\e[0m" + # 使用 -e 来解释换行符 \n + echo -e "${FAILED_CASES_LIST}" +fi + echo "========================================" if [ "$PASSED_CASES" -eq "$TOTAL_CASES" ]; then