用途:系统化运行 stellar-core 测试,从快速聚焦测试逐步推进到更慢更广的测试,按成本递增顺序执行并在首个失败处停止,以减少浪费时间。该技能设计为子代理运行,避免污染调用代理的上下文,输出为全部通过确认或失败报告。
主要能力:支持五个测试层级。Level 1 冒烟测试,运行 2-3 个最可能捕获改动的测试,数秒完成;Level 2 聚焦单元测试,运行相关测试文件全部测试,通常几分钟;Level 3 完整单元测试套件,约 10-30 分钟;Level 3b 交易元数据基线检查,验证交易测试产生与仓库固定基线相同的元数据哈希;Level 4 消毒器测试,含 ASan、TSan、UBSan,用于内存、并发、线程相关改动;Level 5 额外检查构建,用于核心数据结构改动。
使用方式:启动子代理前需收集改动文件/模块与要运行的测试层级,提示中写明“Run tests for changes in <files/modules>”。推荐静默输出标志:--ll fatal、-r simple、--disable-dots、--abort。协议版本用 --version <N> 或 --all-versions 控制;随机数用 --rng-seed <N> 固定种子。示例:./stellar-core test --ll fatal -r simple --disable-dots --abort "test name"。完整套件可用 make check,并行用 NUM_PARTITIONS=$(nproc) make check,全协议用 ALL_VERSIONS=1 NUM_PARTITIONS=$(nproc) make check。基线检查必须使用 --rng-seed 12345,并配合 --check-test-tx-meta test-tx-meta-baseline-current 或 next。消毒器需重新配置构建,如 ./configure --enable-asan --enable-ccache --enable-sdfprefs 后 make clean && make -j $(nproc)。
适用场景:逻辑修复、新功能、重构通常跑到 Level 3 并加 --all-versions,交易相关改动加 Level 3b;内存敏感改动至少跑 ASan;并发改动重点跑 TSan;仅测试或文档改动 Level 1-2 通常足够。
限制:子代理无法请求澄清,输入必须提前备齐;不得跳过冒烟测试直接跑完整套件;失败后不得继续后续层级;不得无证据判定测试不稳定;不得在未构建时运行测试;琐碎改动不应运行消毒器。失败报告需包含具体测试名、文件位置、错误信息与分析。资料未提供收费、价格或平台信息。