updated scripts and pptx

This commit is contained in:
2026-06-30 02:11:00 +08:00
parent 18efd26881
commit d9d36e017f
7 changed files with 90 additions and 22 deletions

View File

View File

@@ -17,6 +17,13 @@ MAGENTA='\e[35m'
BOLD='\e[1m'
RESET='\e[0m'
elapsed_seconds() {
local start_ms=$1
local end_ms
end_ms=$(date +%s%3N)
awk "BEGIN { printf \"%.3f\", ($end_ms - $start_ms) / 1000 }"
}
test_dir="$(pwd)/test/test_case"
compiler="$(pwd)/build/bin/compiler"
out_dir="$(pwd)/test/test_result/asm"
@@ -63,6 +70,7 @@ for test_file in $test_files; do
test_name=$(basename "$test_file")
stem=${test_name%.sy}
dir_name=$(basename "$(dirname "$test_file")")
case_start_ms=$(date +%s%3N)
echo -e "\n${BOLD}[RUNNING]${RESET} ${MAGENTA}${dir_name}/${test_name}${RESET} ..."
@@ -81,6 +89,7 @@ for test_file in $test_files; do
echo -e "${RED}✗ 失败${RESET}"
((failed_count++))
failed_tests+=("${dir_name}/${test_name} (Parsing)")
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
continue
fi
@@ -96,6 +105,7 @@ for test_file in $test_files; do
echo -e "${RED}✗ 失败${RESET}"
((failed_count++))
failed_tests+=("${dir_name}/${test_name} (IR/Optimizations)")
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
continue
fi
@@ -107,6 +117,7 @@ for test_file in $test_files; do
echo -e "${RED}✗ 失败${RESET}"
((failed_count++))
failed_tests+=("${dir_name}/${test_name} (Backend/Peephole)")
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
continue
fi
@@ -118,6 +129,7 @@ for test_file in $test_files; do
echo -e "${RED}✗ 失败 (空文件)${RESET}"
((failed_count++))
failed_tests+=("${dir_name}/${test_name} (Asm empty)")
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
continue
fi
@@ -129,6 +141,7 @@ for test_file in $test_files; do
echo -e "${RED}✗ 失败 (链接错误)${RESET}"
((failed_count++))
failed_tests+=("${dir_name}/${test_name} (Linking)")
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
continue
fi
@@ -150,6 +163,7 @@ for test_file in $test_files; do
echo -e "${YELLOW}! 跳过比较 (性能测试运行超时)${RESET}"
echo -e "${GREEN}${BOLD}[SUCCESS]${RESET} ${test_name} 测试通过 (编译与部分执行已验证)"
((success_count++))
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
continue
fi
@@ -174,6 +188,7 @@ for test_file in $test_files; do
echo -e "${GREEN}✓ 匹配成功${RESET}"
echo -e "${GREEN}${BOLD}[SUCCESS]${RESET} ${test_name} 测试通过!"
((success_count++))
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
else
echo -e "${RED}✗ 匹配失败${RESET}"
echo -e "${RED} [ERROR] 实际输出与期望不一致:${RESET}"
@@ -183,10 +198,12 @@ for test_file in $test_files; do
cat "$actual_file" | sed 's/^/ /'
((failed_count++))
failed_tests+=("${dir_name}/${test_name} (Output Mismatch)")
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
fi
else
echo -e "${YELLOW}! 跳过比较 (未找到 .out 文件)${RESET}"
((success_count++))
echo -e " -> ${CYAN}Case elapsed: $(elapsed_seconds "$case_start_ms")s${RESET}"
fi
done