From 4cf2df4770719749921e5a43cfeab6c4ccb8d22c Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Tue, 27 Oct 2026 14:17:35 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=B3=A8=E9=87=8A):=20=E5=90=8C?= =?UTF-8?q?=E6=89=B9=E6=94=B6=E5=B0=BE=E2=80=94=E2=80=94=E7=83=A7=E5=BD=95?= =?UTF-8?q?=E7=BC=96=E6=8E=92=E5=99=A8=E3=80=81=E6=97=A5=E5=BF=97=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E5=99=A8=E4=B8=8E=E8=BF=BD=E6=BA=AF=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E9=87=8C=E7=9A=84=20S4/S7=20=E6=8E=AA=E8=BE=9E=E6=8D=A2?= =?UTF-8?q?=E6=88=90=E5=B9=B3=E5=AE=9E=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 与 2fd8a864 同一件事,上一笔的 git add 只覆盖了文档与部分脚本,这三只漏在暂存区外:帮助文本与 两处注释里的内部阶段代号(自检台账判定、用例追溯校验)已换成读得到、查得着的说法,判据未变。 自查:三文件 noBOM / LF / U+FFFD=0;id-check --strict 与 doc-links --all 均 rc=0;工作树至此为空。 --- .dsh/skills/serial-boot-test/scripts/run_boot_test.py | 10 +++++----- .dsh/skills/serial-boot-test/scripts/verify_log.py | 2 +- scripts/check_test_traceability.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.dsh/skills/serial-boot-test/scripts/run_boot_test.py b/.dsh/skills/serial-boot-test/scripts/run_boot_test.py index 539e32f2..c626c1bb 100644 --- a/.dsh/skills/serial-boot-test/scripts/run_boot_test.py +++ b/.dsh/skills/serial-boot-test/scripts/run_boot_test.py @@ -19,7 +19,7 @@ 5. verify_log.py 标记校验(含启动锚点计数 config "boot_marker" + --max-boot-count; --expect-reset-cause 原因白名单;--require-order 标记顺序; --done-marker + --max-boot-ms 开机耗时) - 6. (仅当 --require-selftest-pass)自检台账联合判定(S7):默认**只判本次启动新增** + 6. (仅当 --require-selftest-pass)自检台账联合判定:默认**只判本次启动新增** ——烧录前先经 FTP 取 /log/selftest.log 基线,启动后再取一次,只把"基线之后新增"的 记录交给判定(该文件是 512 条环形累计历史,"非空即 FAIL"判一次启动永远不可能过)。 设备侧无此文件 = 台账干净 = PASS;**抓取失败 / 没有数据源 / 基线被环覆盖 → FAIL**, @@ -313,7 +313,7 @@ def _fetch_selftest_log(device_ip, out_dir, stamp, ftp_user="admin", ftp_pass="a try: ftp.retrbinary("RETR /log/selftest.log", buf.extend) except ftplib.all_errors as e: - # 450/550 = 设备侧无此文件:干净台账,S7 判 PASS(正常路径,非故障) + # 450/550 = 设备侧无此文件:干净台账 → 判定 PASS(正常路径,非故障) print("SELFTEST_FETCH: {} -> (ledger absent: {}) 台账干净" .format(device_ip, str(e).strip())) _ftp_quit(ftp) @@ -357,7 +357,7 @@ def main(argv=None): help="suite names that MUST appear as '=== : N/M PASSED (failed=0) ===' " "with N>0, ';' separated. Empty = off") ap.add_argument("--require-selftest-pass", action="store_true", default=None, - help="jointly judge /log/selftest.log (S7): missing/empty = PASS, " + help="jointly judge /log/selftest.log: missing/empty = PASS, " "any 64B record = FAIL") ap.add_argument("--selftest-log", default=None, help="local copy of /log/selftest.log (skips device-side fetch when given)") @@ -526,7 +526,7 @@ def main(argv=None): print("Port: {} @ {} settle={}ms max={}ms".format( port, args.baud_rate, args.settle_ms, args.max_wait_ms)) - # 0.6 自检台账基线(S7「只看本次新增」):**必须排在串口采集武装之前**。 + # 0.6 自检台账基线(只看本次新增):**必须排在串口采集武装之前**。 # /log/selftest.log 是 512 条环形累计历史,用"文件非空即 FAIL"去判一次启动,在任何 # 做过故障注入或长跑的设备上永远不可能 PASS(本仓台架实测:抓到的 29 条记录时间戳 # 全是 2026-10-10 ~ 10-14 留下的,与本次启动无关)。这里记下基线的最后一条记录, @@ -698,7 +698,7 @@ def main(argv=None): print("RUN_TEST_ERROR: flash readback mismatch (chip content != built image)") return 2 - # 5.5 自检记录判定(S7):默认只判「本次启动新增」,累计口径要显式指定。 + # 5.5 自检记录判定:默认只判「本次启动新增」,累计口径要显式指定。 # 三种抓取结果必须分开对待(旧实现把后两种都当"无记录 → PASS",就是假绿): # absent(设备侧无此文件) → 台账干净 → 无新增 → PASS # error(连不上/登录被拒/故障)→ 未知 → FAIL(要求判定却没数据,不能当通过) diff --git a/.dsh/skills/serial-boot-test/scripts/verify_log.py b/.dsh/skills/serial-boot-test/scripts/verify_log.py index 05bf4469..77348e25 100644 --- a/.dsh/skills/serial-boot-test/scripts/verify_log.py +++ b/.dsh/skills/serial-boot-test/scripts/verify_log.py @@ -46,7 +46,7 @@ 命中即判 PASS,**套件是否跑到汇总行、断言数是否为 0 完全不可见**(套件中途 挂死/复位、或 Phase 宏全关时会被误判为通过)。`--require-suite-summary` 要求日志中出现 `=== <名称>: N/M PASSED (failed=0) ===` 且 **N > 0**。 - - 自检记录联合判定(S7,2026-10 实机窗口;判据 2026-10-22 改为"只看本次新增"): + - 自检记录联合判定(2026-10 实机窗口;判据 2026-10-22 改为"只看本次新增"): `--require-selftest-pass` 对 /log/selftest.log 的本地副本(定长 64B 记录,格式见 App/log/sys_log.h)判定。自检仅故障写盘(v1 不记通过项):**文件缺失 / 0 字节 = 无故障 → PASS**;存在记录 = FAIL(退出码 1),逐条打印时间戳 + 描述。 diff --git a/scripts/check_test_traceability.py b/scripts/check_test_traceability.py index 1e4e17a8..07382429 100644 --- a/scripts/check_test_traceability.py +++ b/scripts/check_test_traceability.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""check_test_traceability.py - S4 用例追溯校验(默认仅告警,不阻断提交)。 +"""check_test_traceability.py - 用例追溯校验(默认仅告警,不阻断提交)。 背景(docs/测试说明/实机测试实施指南.md §8.2;原复审项 S4,已闭环): 文档声称 91 个 TC、代码有 222 个 TEST_CHECK(断言点数 > 用例数正常),