实机测试实施指南§3.2去"待上板"框架:A1~A4已落地并真机验证,改写为客观事实记录(列名改实施内容+验证判据),§1总览P0-B状态改已闭环,抬头与README索引同步为真机验证状态
CI / L0 静态门禁 (pre-commit) (push) Failing after 17s
CI / L0.5 主机侧单测 (MSVC) (push) Successful in 18s

This commit is contained in:
2026-10-03 22:27:30 +08:00
parent 1780e5320b
commit 599776cd55
2 changed files with 8 additions and 7 deletions
+1 -1
View File
@@ -93,7 +93,7 @@ docs/
| [`测试文档模板规范.md`](测试说明/测试文档模板规范.md) | 测试文档模板与命名规则(TM / TC / DP) |
| [`链路延迟测试说明.md`](测试说明/链路延迟测试说明.md) | 网络链路时延分段定义、判定基线、执行流程 |
| [`模拟器差距清单.md`](测试说明/模拟器差距清单.md) | **PC 模拟器 vs 真机差距登记册**(L3 门禁可信度依据;改动涉及网络/日志/硬件层前必查 §3 决策规则) |
| [`实机测试实施指南.md`](测试说明/实机测试实施指南.md) | **上板(真机)测试执行判据与待上板事项**(环境预检 → `@test`+自检判定 → IWDG 注入/长跑 → 堆告警 → GD5F 错误通道 → 网络基线 → 工程卫生 → 实测陷阱);每项含判据与精确命令 |
| [`实机测试实施指南.md`](测试说明/实机测试实施指南.md) | **上板(真机)测试执行判据与真机验证状态**(环境预检 → `@test`+自检判定 → IWDG 注入/长跑 → 堆告警 → GD5F 错误通道 → 网络基线 → 工程卫生 → 实测陷阱);每项含判据与精确命令 |
**主机侧单元测试(L0.5)**
@@ -1,6 +1,6 @@
# 实机测试实施指南(On-Board Test Guide)
> 本文档描述项目的**上板(真机)测试执行判据**与**当前待上板事项**:
> 本文档描述项目的**上板(真机)测试执行判据**与**各事项的真机验证状态**:
> 每项给出「现状 → 判据(可观测、量化)→ 执行步骤(含精确命令)→ 风险/回滚」。
> **前置铁律**:本文所有步骤**均在接上 MCU / 串口 / ST-LINK 之后**执行;
> 无实机时**只读本文,不执行任何烧录**。
@@ -21,7 +21,7 @@
| 批次 | 事项 | 性质 | 章节 |
|---|---|---|---|
| **P0-A** | 环境预检(串口/ST-LINK/`@build`/`.map` 基线) | 前置 | §2 |
| **P0-B** | 产品 `@test` 闭环 + 自检结果判定(S7 + A1~A4) | 待上板 | §3 |
| **P0-B** | 产品 `@test` 闭环 + 自检结果判定(S7 + A1~A4) | ✅ 已闭环 | §3 |
| **P1-A** | IWDG 故障注入 V2/V4 + 长跑 V5(N-03) | 可靠性 | §4 |
| **P1-B** | 堆低水位告警实测(S11) | 可观测性 | §5 |
| **P2-A** | GD5F 错误通道(S9 = 上游 C2)+ 套件回归 | 结构债 | §6 |
@@ -83,11 +83,11 @@
# 判据:退出码 0;输出含 "[OK] selftest: no fault record"
```
### 3.2 待上板事项 A1~A4(代码状态 2026-10-02 核对)
### 3.2 A1~A4 实施与真机验证(已闭环)
> 来源:`审查记录/下一步任务规划.md` 阶段 A。各项**代码状态以当日对现网代码的核对为准**:
> 来源:`审查记录/下一步任务规划.md` 阶段 A。四项均已落地并经真机验证(A1 全项通过;A2~A4 正常路径零回归,故障/压测分支见下方判定表):
| 序 | 事项 | 代码状态(2026-10-02 核对) | 上板判据 | 命令/入口 |
| 序 | 事项 | 实施内容(已落地) | 验证判据 | 命令/入口 |
|---|---|---|---|---|
| **A1** | **P0-1 `cfg_file` 堆分配改造** | **已落地**(分配收进 `cfg_store_alloc/free` 平台后端;模拟器用宿主堆,**照不出** `Heap_Size=0x200`(512B)约束——真机是最后一道门) | 串口日志出现 `[CFG]` **`load: OK (…B, heap free …B)`**(实测行格式);Forbidden `FAIL`/`[ERR]` 零命中;**保存配置后复位,值持久** | `& '.venv\Scripts\python.exe' test/host/run_boot_test.py` |
| **A2** | **P1-8 网络重建失败恢复** | **已落地**(2026-10-02 补码):首启组网失败 = 自检 `net init fail` + 30s 周期重试(1s 分片喂心跳,**不自驻留**);重建(reconfig)失败 = 自检 `net reinit fail` + 30s 延迟重触发事件位(tick 回绕安全),成功即清零;PHY 链路超时仍走既有 `comms fault`(降级放行,语义不变) | 失败路径写 syslog 自检 + 30s 周期重试;**不自驻留死循环**;恢复后各 TCP 服务据代次号重建监听;`@test` PASS | `@build` → `@test`;UI 网口设置页改 IP(触发重建路径);`test/host/e02_probe.py` |
@@ -251,7 +251,7 @@ $cli = if ($env:DTU_STLINK_CLI) { $env:DTU_STLINK_CLI } else { (Get-Command ST-L
## 7. 网络稳定性与基线重锁(P2-B)
### 7.1 P1-8 网络重建失败恢复(与 §3.2 A2 同一项,此处给网络专项视角;代码状态见 A2 行)
### 7.1 P1-8 网络重建失败恢复(与 §3.2 A2 同一项,此处给网络专项视角;实施内容见 A2 行)
**判据**:拔插网线/改 IP 触发重建后——
- 失败路径**写 syslog 自检**(不再零日志);
@@ -417,6 +417,7 @@ cppcheck --enable=warning --error-exitcode=1 test/ 2>&1 | tee test_cppcheck_base
| 日期 | 变更 |
|---|---|
| 2026-10-03 | **§3.2 去"待上板"框架**:A1~A4 均已落地并(A1 全项 / A2~A4 正常路径)经真机验证,删除"待上板事项(代码状态 2026-10-02 核对)"表述,改写为**客观事实记录**(列名改为「实施内容(已落地)」+「验证判据」);§1 总览 P0-B 状态由「待上板」改「✅ 已闭环」;抬头与 `docs/README.md` 索引同步为「真机验证状态」。残留事实(A2/A3/A4 故障分支 + A4 推流压测需专项窗口、N-16 拔线负向测试)仍如实保留 |
| 2026-10-02 | **更名**:`实机测试规划.md` → `实机测试实施指南.md`(与文档性质对齐——常设执行判据,非规划;引用面改造后仅剩 `docs/README.md` 索引 1 处,同步更新) |
| 2026-10-03 | **A2/A3/A4 实施 + 真机验证**:A2 = `net_task.c` 初始组网失败/重建失败 → 自检留痕 + 30s 周期重试(分片喂心跳,不自驻留);A3 = `ch395f.c` 3 处字节级 SPI 调用 `HAL_MAX_DELAY` → 100ms 有限超时 + 返回值检查 + 故障锁存 `ch395f_spi_byte_fault()`(首条记日志);A4 = `ui_net_sink.c` `remo_send` 校验 `net_send` 返回值,短写告警、连续 3 次失败阻断推送、新连接/网络重建解除(单连接模型不 `net_close` 数据 fd)。`@build` 0/0 + L0/L0.5 全绿 + 模拟器构建通过;上板 `@test` PASS 7/7:A1 判定 PASS(含 IP 改→复位→持久→可达闭环,原档已恢复)、A2/A3/A4 正常路径零回归;自检清单 18→20 处(`net init fail` / `net reinit fail`);上板新数据:min_ever 下限 3,712 B(S11 阈值建议改 3,072 B)、开机良性 `MISS start` 行新增陷阱 §9.8;拔线负向/短写压测记 `待处理内容.md` N-16 |
| 2026-10-02 | 初版:无 MCU 窗口建立。汇总 P0-A 环境预检 / P0-B `@test`+S7 / P1-A IWDG V2/V4/V5 / P1-B S11 / P2-A S9 / P2-B P1-8+N-2+N-3 / P3 S5+S4+待核实项,共 **7 批**。每项含现状证据 / 目标 / 判据(量化)/ 执行步骤(精确命令)/ 风险回滚。18 处自检调用点清单 + 模拟器差距清单 §3 决策规则交叉引用 |