lab1 testall

hp 1 week ago
parent 15cbb37435
commit 16ecb30384

@ -0,0 +1,47 @@
#!/bin/bash
# 批量测试脚本
# 遍历 test/test_case 目录下所有的 .sy 文件,并验证解析是否成功
if [ ! -f "./build/bin/compiler" ]; then
echo "Compiler executable not found at ./build/bin/compiler. Please build the project first."
exit 1
fi
FAIL_COUNT=0
PASS_COUNT=0
FAILED_FILES=()
echo "开始批量测试解析..."
echo "========================================="
# 查找所有 .sy 文件并进行测试
while IFS= read -r file; do
# 运行解析器,将正常输出重定向到 /dev/null保留错误输出用于判断
./build/bin/compiler --emit-parse-tree "$file" > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "❌ 解析失败: $file"
FAIL_COUNT=$((FAIL_COUNT+1))
FAILED_FILES+=("$file")
else
echo "✅ 解析成功: $file"
PASS_COUNT=$((PASS_COUNT+1))
fi
done < <(find test/test_case -type f -name "*.sy" | sort)
echo "========================================="
echo "测试完成!"
echo "成功: $PASS_COUNT"
echo "失败: $FAIL_COUNT"
if [ $FAIL_COUNT -ne 0 ]; then
echo "失败的文件列表:"
for f in "${FAILED_FILES[@]}"; do
echo " - $f"
done
exit 1
else
echo "🎉 所有测试用例均解析成功!"
exit 0
fi
Loading…
Cancel
Save