测试_第28章_工程化.sh

← 测试总览 · 目录

编译运行:bash 文件名.sh(需先 cd 测试/

#!/bin/bash
# 第28章测试:完整工程化闭环(构建 → 测试 → 运行)
set -e
cd "$(dirname "$0")/mini_project"

echo "===== 1. 配置(Ninja + Release)====="
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release

echo "===== 2. 构建 ====="
cmake --build build

echo "===== 3. 运行主程序 ====="
./build/app

echo "===== 4. 单元测试(ctest)====="
ctest --test-dir build --output-on-failure

echo "===== 5. 内存检查(ASan 构建)====="
cmake -B build_asan -G Ninja \
      -DCMAKE_CXX_FLAGS="-fsanitize=address,undefined -g" \
      -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined"
cmake --build build_asan > /dev/null
./build_asan/tests/test_math

rm -rf build build_asan
echo "===== 全部通过 ====="