4a4ad6bc5f
现状口径:/keil-build 与 /serial-boot-test 是 DSH 会话的技能调用名, 不是 shell 命令;「名 + 命令行参数」的命令形态改为可执行体 run_boot_test.py 的真实调用。 - AGENTS.md:别名说明重写为「技能调用名不是 shell 命令」,两条目改 「编译(/keil-build)」「串口回归(/serial-boot-test)」 - keil-build / serial-boot-test 两 skill 调用名与示例同步;task-worktree 方案文档去掉 @build/@test 惯例从句;@task 保留(不在点名范围) - 123 文件现状陈述全改;台架捕获、变更记录/时间线、rename 映射输入 等 41 行历史证据保留旧名 - gen_memory_svg.py 6 处措辞随改,3 张 SVG 产物同批重跑 - 顺手补并行方案同行漏网计数 51→52 钩子 验证:提交期快钩子对 123 文件实跑全 Passed;check_doc_links --all rc=0(3038 处、无法判定 0);check_mermaid --all rc=0;YAML 解析 52 钩子不变;skill-size rc=0;py_compile 全过;字节卫生零漂移。
3.7 KiB
3.7 KiB
name, description, whenToUse
| name | description | whenToUse |
|---|---|---|
| board-test-suite | 板级测试套件运行与恢复:test_config.h 套件互斥、破坏性开关的持久代价(NAND 坏块记账)、run_all_suites.py 一键回归(自动改宏+无条件还原)、跑后恢复产品构建、容量恢复动作 A/B/C 区分。嵌入式"编译期套件开关"模式的通用流程。 | 要跑板级测试套件(CH395F/STORAGE/GD5F/RTC)回归、要开/关破坏性测试、怀疑仓库里混入了测试固件构建、或跑完套件要做容量/状态恢复时。 |
board-test-suite — 板级测试套件运行与恢复(文档型 skill)
开关模型(编译期,test/board/test_config.h)
TEST_SUITE_CH395F / STORAGE / GD5F / RTC互斥(同开 =#error); 全部注释 = 产品构建 = 默认状态。ENABLE_DESTRUCTIVE_TESTS默认关:开着跑一轮的代价是改设备持久状态—— 实测 GD5F 整轮破坏性跑一次即多记一个 NAND 坏块(容量 95248→95200), 计数持久化在 dhara journal checkpoint 头里,普通格式化恢复不回来。- 提交门禁:pre-commit 钩子
test-suite-switch默认拦截测试构建 (确需提交用ALLOW_TEST_BUILD=1显式放行)——跑完务必改回全注释并/keil-build。
一键回归(推荐路径,勿手工循环)
& '.venv\Scripts\python.exe' test/run_all_suites.py # 全部套件:改宏→build→烧录→采集判读
& '.venv\Scripts\python.exe' test/run_all_suites.py --suites STORAGE,GD5F
& '.venv\Scripts\python.exe' test/run_all_suites.py --check-build # 只编译不烧录(无需硬件,防"某套件长期编不过")
& '.venv\Scripts\python.exe' test/run_all_suites.py --dry-run # 只看计划
- 脚本 try/finally 无条件还原
test_config.h(含 Ctrl-C 路径)——这是它存在的核心 理由:跑完忘还原 = 测试固件进库。--keep-config仅调试用。 - 退出码 0=全 PASS / 1=有 FAIL / 2=环境错误;4 套件真机一轮数分钟起,仅回归窗口用,绝不挂 pre-commit。
- 手工循环时的顺序(每轮):改宏(只开一个)→
/keil-build0错0警 → 烧录 →serial-assistant采集(open→clear→烧录→wait-idle)→ 判读套件汇总行。
跑后检查清单(必做)
test_config.h恢复全注释(用 run_all_suites.py 则已自动);/keil-build确认产品构建 0 错 0 警;- 若开过破坏性开关:核对开机日志容量数字(健康满值 96064 pages / 187 MB),
掉了 → 按
docs/测试说明/专项验证/存储维护与容量恢复.md走恢复动作; - 提交前
test-suite-switch门禁会再兜一道。
三个维护动作别混用(存储类)
| 目标 | 开关 | 代价 |
|---|---|---|
| A 卷/BBT 恢复 | TEST_SUITE_STORAGE + ENABLE_STORAGE_RECOVERY_TESTS |
卷全失,不恢复容量 |
| B 容量恢复 | A + STORAGE_RECOVERY_FULL_WIPE(擦净 2044 块 + 断电重启) |
卷全失,约 4s 擦除 |
| C 日常回归 | 只开 TEST_SUITE_*,不开破坏性 |
无(只读模式,横幅 mode: READ-ONLY) |
原理与完整步骤见 docs/测试说明/专项验证/存储维护与容量恢复.md;各套件用例清单/判读见
docs/测试说明/ 对应 *_Test_Guide.md;流程规范 docs/测试说明/流程与规范/测试开发标准流程.md §3。
其它项目怎么套
模式通用:套件选择收进单一编译期头文件 + 互斥 #error + 默认产品构建 +
提交期门禁 + 编排脚本"改宏→构建→烧录→判读→无条件还原"。破坏性用例必须
独立开关且默认关,跑前想清楚持久代价与恢复路径。