#!/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[*]}"