refactor(注释): 同批收尾——烧录编排器、日志校验器与追溯校验里的 S4/S7 措辞换成平实语言
与 2fd8a864 同一件事,上一笔的 git add 只覆盖了文档与部分脚本,这三只漏在暂存区外:帮助文本与
两处注释里的内部阶段代号(自检台账判定、用例追溯校验)已换成读得到、查得着的说法,判据未变。
自查:三文件 noBOM / LF / U+FFFD=0;id-check --strict 与 doc-links --all 均 rc=0;工作树至此为空。
This commit is contained in:
@@ -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 '=== <name>: 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(要求判定却没数据,不能当通过)
|
||||
|
||||
@@ -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),逐条打印时间戳 + 描述。
|
||||
|
||||
@@ -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(断言点数 > 用例数正常),
|
||||
|
||||
Reference in New Issue
Block a user