chore(全仓): @build/@test 旧文档别名清退为技能调用名
现状口径:/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 全过;字节卫生零漂移。
This commit is contained in:
@@ -8,9 +8,9 @@
|
||||
|
||||
对每个套件:
|
||||
1. 改 test_config.h 启用该套件(其它全注释)
|
||||
2. @build(0 错 0 警,否则跳过该套件)
|
||||
2. /keil-build(0 错 0 警,否则跳过该套件)
|
||||
3. 烧录(stlink-flash skill:stlink_flash.py flash,Reset & Run)
|
||||
4. @test 采集 + 判读(.dsh/skills/serial-boot-test 的 verify_log.py,含套件汇总行校验)
|
||||
4. /serial-boot-test 采集 + 判读(.dsh/skills/serial-boot-test 的 verify_log.py,含套件汇总行校验)
|
||||
结束后:
|
||||
5. **无条件还原 test_config.h**(try/finally,含异常/KeyboardInterrupt 路径)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
& '.venv\\Scripts\\python.exe' test/run_all_suites.py --keep-config # 不还原(调试用,慎)
|
||||
|
||||
--check-build:
|
||||
只做"改宏 + @build",不烧录不采集,故**不需要 MCU / 串口 / ST-LINK**。
|
||||
只做"改宏 + /keil-build",不烧录不采集,故**不需要 MCU / 串口 / ST-LINK**。
|
||||
用途:① 改动测试固件或 test_config.h 后自检 4 套件仍可编译;
|
||||
② 防止"某套件长期编不过而无人知"(2026-08~09 CH395F 套件实例)。
|
||||
注意 RAM 溢出会自然暴露为链接错误 L6406E——这正是想要的。
|
||||
@@ -72,7 +72,7 @@ FORBIDDEN_SUITE = "HardFault;MEMFAULT;BUSFAULT;USAGEFAULT;assert;bring-up FAIL"
|
||||
# 但 MEM/BUS/USAGE 三种**平时完全靠 [ERR] 兜**。所以旧 GD5F 只写 `HardFault;assert` 其实
|
||||
# 放过了后三种崩溃。覆盖集合一律显式列出四个 Fault 标签 + assert + 起网失败字样:
|
||||
# 豁免的是**设计内的守卫 [ERR]**,崩溃照旧判失败。
|
||||
# 产品 @test 判据(.serialtest/config.json 的 forbidden 含 [ERR])**不在这里动**——
|
||||
# 产品 /serial-boot-test 判据(.serialtest/config.json 的 forbidden 含 [ERR])**不在这里动**——
|
||||
# 豁免只活在"套件回归"这条路上,渗不回产品路径。
|
||||
# GD5F:TC-GD5F-704 故意用非 DMA 可达缓冲触发 `[ERR][NAND] RX DMA buffer not
|
||||
# DMA-reachable` 回落轮询(用例 PASS)→ 需豁免设计内 [ERR]。
|
||||
@@ -151,7 +151,7 @@ def main(argv=None):
|
||||
ap.add_argument("--flash-timeout", type=int, default=300)
|
||||
ap.add_argument("--dry-run", action="store_true", help="只打印计划,不改配置不构建不烧录")
|
||||
ap.add_argument("--check-build", action="store_true",
|
||||
help="只编译不烧录:逐套件改宏 + @build,验证 4 套件可编译性;"
|
||||
help="只编译不烧录:逐套件改宏 + /keil-build,验证 4 套件可编译性;"
|
||||
"不需要 MCU / 串口 / ST-LINK,可用于 CI 或改动测试固件后自检")
|
||||
ap.add_argument("--keep-config", action="store_true",
|
||||
help="结束后不还原 test_config.h(调试用;⚠️ 会留下测试固件配置)")
|
||||
@@ -199,7 +199,7 @@ def main(argv=None):
|
||||
print("################ {} ################".format(suite))
|
||||
_rewrite_config(macro)
|
||||
|
||||
# 1) 构建(@build = keil-build skill;脚本内超时先于 _run 超时触发,
|
||||
# 1) 构建(keil-build skill 执行体;脚本内超时先于 _run 超时触发,
|
||||
# 超时会返回 rc=1 + BUILD_FAIL 文案,而不是被 _run 杀掉)
|
||||
rc, out = _run([py, str(KEIL_BUILD), "--timeout", str(args.build_timeout)],
|
||||
timeout=args.build_timeout + 60)
|
||||
@@ -224,7 +224,7 @@ def main(argv=None):
|
||||
print("[FLASH] rc={} elapsed={:.1f}s".format(frc, time.monotonic() - t0))
|
||||
if frc != 0:
|
||||
print("\n".join(fout.strip().splitlines()[-6:]))
|
||||
# 烧录失败不直接判死:板子可能已复位,交由采集+判读决定(与 @test 一致)
|
||||
# 烧录失败不直接判死:板子可能已复位,交由采集+判读决定(与 /serial-boot-test 一致)
|
||||
print("[WARN] 烧录 rc={}(继续:板子可能已复位)".format(frc))
|
||||
|
||||
# 3) 采集 + 判读(含套件汇总行校验)
|
||||
@@ -265,7 +265,7 @@ def main(argv=None):
|
||||
# 5) 复位构建产物为产品态(2026-10-02):最后一轮构建留下的是**测试套件**的
|
||||
# .map/.axf,会污染 mem-numbers 体积门禁(下次提交即 FAIL)。仅还原源码不够
|
||||
# ——必须再编一次产品固件,使 .map 与 test_config.h 一起回到产品态。
|
||||
# --check-build 也要做:它每轮都 @build,同样会留下测试态 .map。
|
||||
# --check-build 也要做:它每轮都 /keil-build,同样会留下测试态 .map。
|
||||
if restored and not args.keep_config:
|
||||
print("")
|
||||
print("[..] 复位构建产物为产品态(重建一次产品固件,避免 .map 停留在测试套件态)...")
|
||||
@@ -276,7 +276,7 @@ def main(argv=None):
|
||||
print("[OK] 产品固件已重建(.map/.axf 复位)")
|
||||
else:
|
||||
# 不判死:配置已还原,仅提示手工重建
|
||||
print("[WARN] 产品固件重建失败(rc={}),请手工跑 @build 复位 .map".format(rc))
|
||||
print("[WARN] 产品固件重建失败(rc={}),请手工跑 /keil-build 复位 .map".format(rc))
|
||||
if tail:
|
||||
print(tail)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user