compiler-go/test_all.sh

44 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
cd build
success_count=0
failure_count=0
failed_files=()
successful_files=()
for test_file in ../test/*.go; do
base_name=$(basename "$test_file" .go)
echo -e "\n========== 编译 $base_name =========="
if ! ./LiteGoCompiler ../test/$test_file; then
echo "编译错误"
failure_count=$((failure_count + 1))
failed_files+=("$base_name")
continue
fi
if ! ld -m elf_i386 -o run.bin out.o print.o; then
echo "链接错误"
failure_count=$((failure_count + 1))
failed_files+=("$base_name")
continue
fi
echo -e "\n========== 运行 $base_name =========="
if ! ./run.bin; then
echo "运行错误"
failure_count=$((failure_count + 1))
failed_files+=("$base_name")
continue
fi
success_count=$((success_count + 1))
successful_files+=("$base_name")
done
# 输出统计结果
echo -e "\n========== 编译结果统计 =========="
echo "编译成功的文件数量: $success_count"
echo "编译成功的文件名: ${successful_files[*]}"
echo "编译失败的文件数量: $failure_count"
echo "编译失败的文件名: ${failed_files[*]}"