Files
STM32F4-Base/test/host/wave_trig/run_unit_test.py
T
wandering1 4ceb5b41e6 docs(任务规划): 故障录波卡片登记簿销项——判据并入设计说明后删除
用户指令(2026-10-30):确认录波任务完成度,把除实际操作之外的所有
步骤做完,然后删除规划文件,避免已完成的工作被误读为未做。

审计结论:代码面确已全部收口——wave_read.py --selftest 92/92、
三套主机单测 113/170/110 复跑全 rc=0、bench 自抓与 PC 读段脚本在仓、
数据可信/复刻明细/短板评测/UI 两处回写均已做过。**唯一未跑的是
板级台架那一轮(实际操作)**,判据不得丢,故先迁后删:

- 设计说明 §9 承接落盘道失败留痕名全清单(13+1 条,打印点现值
  default_task.c:816/:831 实测核对)
- 设计说明 §10 承接原卡 2/卡 3 的板级段(触发来路一行、回放页
  一行)与本波执行顺序图(mermaid,原规划 §3 逐字迁)
- §4/§11 头部定位、§11 尾注、§14 关系行改属主口径
- 全库 32 处引用改挂设计说明 §10/§9(18 文件):任务规划 README
  独立行(顺带订正单测数 100→113 为实测)、登记簿、数据可信 ×2、
  复刻明细、产品需求 ×2、ADC 注入 ×3、短板评测 ×2、页面补齐规划、
  App/algo README、配图生成器注释、录波三套单测注释 ×6
- git rm docs 该规划文件;人类索引任务规划 6→5 个文件(沿革注照
  屏板链路先例走裸句,不留反引号死引用)

验证:残留两形态(任务规划/故障录波、裸文件名)全树扫描 0;
mermaid 预检新发 0;doc-links 11 个被改文件逐文件 PASS;生成器
注释改动重跑产物逐字节不变(svg 60a0dd39e4);三套单测与
wave_read selftest 复跑全绿;18 文件 BOM/CR/U+FFFD 全零。

本笔不含固件编译单元(test/host 仅注释行与文档),构建留待合并
轮统一跑;板级轮启动判据与顺序见设计说明 §10。
2026-10-30 18:20:37 +08:00

44 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
run_unit_test.py — 录波触发与封存链路主机侧单元测试运行器
做什么:把 test/host/wave_trig/wave_trig_test.c 与生产源 App/algo/wave_ring.c、
App/algo/wave_store.c 一起用 MSVC cl.exe 编成主机可执行并跑一遍。
为什么要主机测:wave_ring / wave_store 是纯逻辑层(无 HAL / CMSIS / RTOS / FatFs),
但真正容易静默出错的是**并发语义**:ACK 前重录、冷却期当冻结窗、没交棒就 ACK
吃掉轮转号、打包游标把「列走完」误报成参数错。这些不需要板子,需要的是
把 1 kHz 逐拍状态机跑满一整段(触发后 160 拍 + 冷却 500 拍 + 超时 2000 拍)
再逐字节核对产出的段文件——台架上做同样的事要几十分钟且不可重复。
桩的边界:无。两份被测源零平台依赖,封存瞬间事实由测试自己按 §6.3 填
(所以不需要 test/host/common 下的 FatFs / dbg_log 假件)。
用法:python test/host/wave_trig/run_unit_test.py
退出码:0 = 全部通过;1 = 有用例失败;2 = 环境错误(找不到 cl.exe 等)
设计依据:docs/子系统设计/故障录波设计说明.md §4.2 §5.1 §5.2 §6.2 §6.3;
docs/子系统设计/故障录波设计说明.md §10 板级判据「注入 1 V/50 Hz → FTP 拉回 → PC 量周波数
与幅值一致」里不需要板子的那一半(字节与语义),本套先把它钉住。
创建日期:2026-10-29
"""
import os
import sys
HERE = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.dirname(os.path.dirname(os.path.dirname(HERE)))
sys.path.insert(0, os.path.join(ROOT, "test", "host", "common"))
from unit_test_harness import TestBuild, run_host_unit_test
BUILD = TestBuild(
name="Wave Trig Tests",
src=os.path.join(HERE, "wave_trig_test.c"),
include_dirs=[os.path.join(ROOT, "App", "algo"), HERE],
summary_marker="=== Wave Trig Tests:",
)
if __name__ == "__main__":
sys.exit(run_host_unit_test(BUILD))