#!/usr/bin/env bash
set -e
cd "$(dirname "$0")/.."
STATIC_CFG="cjpm.toml"
DYNAMIC_CFG="cjpm.toml.dynamic.bak"
BACKUP="/tmp/cjpm.static.last.toml"
if [ ! -f "$DYNAMIC_CFG" ]; then
echo "[test.sh] 缺少动态配置备份 $DYNAMIC_CFG,先导出:"
echo " 从 cjpm.toml 手动改:stdx 路径 dynamic/ + compile-option 清空,另存为 $DYNAMIC_CFG"
exit 1
fi
if grep -q '^ compile-option = ""' "$STATIC_CFG"; then
echo "[test.sh] 警告:cjpm.toml 当前是动态配置(上次运行可能被强杀未还原)——"
echo " 请先恢复静态基线再跑:git show <release-commit>:cjpm.toml > cjpm.toml"
fi
cp "$STATIC_CFG" "$BACKUP"
cp "$DYNAMIC_CFG" "$STATIC_CFG"
restore() { cp "$BACKUP" "$STATIC_CFG"; }
trap restore EXIT INT TERM HUP
echo "[test.sh] 已切动态配置跑测试(静态下测试框架 double free 崩溃)..."
export CJH_CONFIG_DIR="${CJH_CONFIG_DIR:-$(mktemp -d /tmp/cjh_test_cfg.XXXXXX)}"
if [ $# -gt 0 ]; then
cjpm test "$@"
else
cjpm test
fi