forked from NUDT-compiler/nudt-compiler-cpp
Compare commits
No commits in common. 'master' and 'master' have entirely different histories.
@ -1,56 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo "======================================"
|
|
||||||
echo "Lab1 语法树构建 - 完整批量测试"
|
|
||||||
echo "时间: $(date)"
|
|
||||||
echo "======================================"
|
|
||||||
|
|
||||||
PASS=0
|
|
||||||
FAIL=0
|
|
||||||
FAILED_FILES=()
|
|
||||||
TOTAL=0
|
|
||||||
|
|
||||||
# 递归查找所有 .sy 文件
|
|
||||||
while IFS= read -r file; do
|
|
||||||
((TOTAL++))
|
|
||||||
filename=$(basename "$file")
|
|
||||||
rel_path=${file#test/test_case/}
|
|
||||||
|
|
||||||
echo -n "[$TOTAL] 测试 $rel_path ... "
|
|
||||||
|
|
||||||
# 运行编译器检查解析是否成功
|
|
||||||
if ./build/bin/compiler --emit-parse-tree "$file" > /dev/null 2>&1; then
|
|
||||||
echo "✓ 通过"
|
|
||||||
((PASS++))
|
|
||||||
else
|
|
||||||
echo "✗ 失败"
|
|
||||||
((FAIL++))
|
|
||||||
FAILED_FILES+=("$rel_path")
|
|
||||||
|
|
||||||
# 输出错误信息到临时文件以便调试
|
|
||||||
echo " 错误详情:" >&2
|
|
||||||
./build/bin/compiler --emit-parse-tree "$file" 2>&1 | head -5 | sed 's/^/ /' >&2
|
|
||||||
fi
|
|
||||||
done < <(find test/test_case -name "*.sy" -type f | sort)
|
|
||||||
|
|
||||||
echo "======================================"
|
|
||||||
echo "测试结果统计"
|
|
||||||
echo "======================================"
|
|
||||||
echo "总计: $TOTAL"
|
|
||||||
echo "通过: $PASS"
|
|
||||||
echo "失败: $FAIL"
|
|
||||||
echo "成功率: $(awk "BEGIN {printf \"%.2f\", ($PASS/$TOTAL)*100}")%"
|
|
||||||
echo "======================================"
|
|
||||||
|
|
||||||
if [ $FAIL -gt 0 ]; then
|
|
||||||
echo ""
|
|
||||||
echo "失败的测试用例 ($FAIL 个):"
|
|
||||||
for f in "${FAILED_FILES[@]}"; do
|
|
||||||
echo " ✗ $f"
|
|
||||||
done
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "🎉 所有测试用例通过!"
|
|
||||||
exit 0
|
|
||||||
Loading…
Reference in new issue