updated scripts and pptx
This commit is contained in:
0
scripts/run_all_tests.sh → scripts/run_all_tests_lab1.sh
Executable file → Normal file
0
scripts/run_all_tests.sh → scripts/run_all_tests_lab1.sh
Executable file → Normal 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user