diff --git a/App/algo/README.md b/App/algo/README.md index 438a1fc6..7ac0243d 100644 --- a/App/algo/README.md +++ b/App/algo/README.md @@ -131,7 +131,7 @@ ADC 引脚电压 V)+ `adc_health_rail_watch()` ×9(「采样通道自检」 - 本层**不进** `simulator/CMakeLists.txt`(UI 模拟器不跑采集链路):九个文件全部登记在 `scripts/check_registration.py` 的 `SIM_EXEMPT`(附理由),`registration-check` 钩子反向校验(登记簿条目「rs485_task 白名单缺口」)。 -### 4.2 主机侧单测(L0.5)——生产源文件以 `#include` 原样纳入 +### 4.2 主机侧纯逻辑单测——生产源文件以 `#include` 原样纳入 | 模块 | 命令 | pre-commit 钩子 | |---|---|---| diff --git a/App/algo/adc_cal.h b/App/algo/adc_cal.h index 2eaccde5..62f63981 100644 --- a/App/algo/adc_cal.h +++ b/App/algo/adc_cal.h @@ -21,7 +21,7 @@ * 可调(注册进引擎必须先于 cfg_file_load,FTP 鉴权确立的契约);apply/flags * 任意上下文可读(cfg RAM 副本 4 字节对齐字读写在 Cortex-M4 上原子, * 与 defaultTask 的 load/poll 复位存在 µs 级混窗——设计接受,见 .c 头)。 - * 适用平台:STM32F407ZGTx(Cortex-M4F);主机侧 L0.5 单测 test/host/adc_cal/ + * 适用平台:STM32F407ZGTx(Cortex-M4F);主机侧纯逻辑单测 test/host/adc_cal/ * 作者:DTU 项目组 * 创建日期:2026-10-25(道A 标定折算与落盘整定) * 修改记录: diff --git a/App/algo/adc_health.h b/App/algo/adc_health.h index caa8dd05..e25909aa 100644 --- a/App/algo/adc_health.h +++ b/App/algo/adc_health.h @@ -9,7 +9,7 @@ * ④ 错误计数增量:FRSTDATA 跳变 / HAL ADC·DMA 错误 / STM32 停摆计数。 * ⚠ 本层**纯逻辑**:不碰寄存器、不取数、不打日志——输入是调用方 * 采集的计数快照,输出是故障位;日志与自检上报由消费者 - * (`App/task/adc_task.c`)按位执行 → 主机侧可单测(L0.5)。 + * (`App/task/adc_task.c`)按位执行 → 主机侧可纯逻辑单测。 * 适用平台:STM32F407ZGTx + TPAFE5160 * 作者:王建锋 * 创建日期:2026-10-11 diff --git a/App/algo/freq.h b/App/algo/freq.h index d2b03d1d..a71ff5e8 100644 --- a/App/algo/freq.h +++ b/App/algo/freq.h @@ -22,7 +22,7 @@ * - 信号源优先级:UA 基波 → IA 基波(UA 无幅值时用 IA,台架只注电流亦可测频)。 * * ⚠ 本层**纯算法**:不碰寄存器、不碰 RTOS、不自己取数(输入 = phasor 使用区) - * → 主机侧可免桩单测(L0.5)。 + * → 主机侧可免桩纯逻辑单测。 * 适用平台:STM32F407ZGTx(Cortex-M4F,硬件 FPU) * 作者:DTU 项目组 * 创建日期:2026-10-12(B8) diff --git a/App/algo/meas.h b/App/algo/meas.h index eda23600..3e598b0f 100644 --- a/App/algo/meas.h +++ b/App/algo/meas.h @@ -22,7 +22,7 @@ * 计算区后一次 store 翻转,读者先取索引再整体拷贝,全程无锁; * seq 只增,消费者据此判"是否换帧"。 * 本层**纯算法**:不碰寄存器、不碰 RTOS、不自己取数(窗自 sample_ring、 - * 频率/品质由调用方注入)→ 主机侧免桩单测 test/host/meas/(L0.5)。 + * 频率/品质由调用方注入)→ 主机侧免桩纯逻辑单测 test/host/meas/。 * 发布纪律:唯一发布者 = adcTask(在 phasor_run()/freq_run() 之后 200 ms 分频 * 调 meas_tick())。评审判据 = 全仓 meas_tick 调用点数 == 1(「数据可信」 * §8 风险表"快照双写"行);其余任务/模块**只读**。 diff --git a/App/algo/phasor.h b/App/algo/phasor.h index 396d17f8..4bb8dbd5 100644 --- a/App/algo/phasor.h +++ b/App/algo/phasor.h @@ -8,7 +8,7 @@ *(保护功能清单见 docs/算法/继电保护功能复现规划.md) * 每 1 ms 滑动窗刷新 / 双区指针原子交换。 * ⚠ 本层**纯算法**:不碰寄存器、不碰任务调度、不自己取数(输入由 - * `sample_ring` 提供)→ 主机侧可单测(L0.5)。 + * `sample_ring` 提供)→ 主机侧可纯逻辑单测。 * 适用平台:STM32F407ZGTx(Cortex-M4F,硬件 FPU) * 作者:王建锋 * 创建日期:2026-10-10 diff --git a/App/algo/sample_ring.h b/App/algo/sample_ring.h index 791089b5..2b4301ed 100644 --- a/App/algo/sample_ring.h +++ b/App/algo/sample_ring.h @@ -6,7 +6,7 @@ * 容量取 **2 个周波(40 点)**,与参考系统 `CN_BUFSAM_CYCLE = 2` * (规划 §10.1)一致,为后续加长数据窗(1.5~2 周波,抗衰减直流, * 见 `傅氏算法详解.md` §9 Q4)预留空间。 - * 适用平台:STM32F407ZGTx(**纯算法**:不碰寄存器、不碰 RTOS → 可主机侧单测 L0.5) + * 适用平台:STM32F407ZGTx(**纯算法**:不碰寄存器、不碰 RTOS → 可主机侧纯逻辑单测) * 作者:王建锋 * 创建日期:2026-10-10 * 修改记录: diff --git a/App/cfg/cfg_file.c b/App/cfg/cfg_file.c index f999f166..9d75ee70 100644 --- a/App/cfg/cfg_file.c +++ b/App/cfg/cfg_file.c @@ -828,7 +828,7 @@ static int s_surgical(char *p_in, size_t in_len, char *p_out, size_t out_cap, si char v[80]; /* s_encode 成功返回文本长度(≥1),失败返回 -1: * 故判成功必须 `< 0` 取反,不能写 `== 0`(恒假, - * 使补写路径沦为死码,见 2026-10-02 L0.5 修复) */ + * 使补写路径沦为死码,见 2026-10-02 主机侧纯逻辑单测修复) */ if (s_encode(p_key, (const uint8_t *)s_sections[idx].p_data + p_key->offset, v, sizeof(v)) >= 0) { if (s_emit_kv(p_out, out_cap, &off, p_key->name, v) != 0) { diff --git a/App/fs/vol_idle_sync.h b/App/fs/vol_idle_sync.h index 94cfd4a9..90167a5e 100644 --- a/App/fs/vol_idle_sync.h +++ b/App/fs/vol_idle_sync.h @@ -16,7 +16,7 @@ * ⚠ 边界(勿当成掉电保护):本板无掉电检测硬件,"掉电前强制 flush" * 不可行;"单次写事务进行中掉电"的丢失边界也不因本模块改变。 * 适用平台:STM32F407ZGTx + FreeRTOS(CMSIS-RTOS V2);仅 MCU 端, - * 主机侧 L0.5 单测 test/host/vol_idle_sync/ + * 主机侧纯逻辑单测 test/host/vol_idle_sync/ * 作者:DTU 项目组 * 创建日期:2026-10-25(道F 批 2:写回缓存空闲 flush 收口) * 修改记录: diff --git a/App/log/soe_rec.h b/App/log/soe_rec.h index 8a8aa889..d7db51d7 100644 --- a/App/log/soe_rec.h +++ b/App/log/soe_rec.h @@ -2,7 +2,7 @@ * 模块名称:SOE Record — 事件顺序记录编解码(纯逻辑,双端可测) * 模块功能:定长 64B SOE(Sequence-of-Events)记录的构建与解析: * CP56Time2a 时标 + 记录类型 + 元件号 + 单调序号 + 值 + 校验和。 - * **零 I/O、零 OS 依赖**(仅 stdint/string)→ 主机侧 L0.5 离线单测 + * **零 I/O、零 OS 依赖**(仅 stdint/string)→ 主机侧纯逻辑离线单测 * (分层约束:协议/记录与硬件 I/O 分离)。 * 记录口径(docs/算法/继电保护功能复现规划.md §3.4「SOE 记录」「动作记录」,B9): * 落盘文件 = /log/soe.log(8.3 合规;FF_USE_LFN=0 约束),定长 64B 一条 diff --git a/App/protocol/README.md b/App/protocol/README.md index 4ee6b5c2..0d1a735e 100644 --- a/App/protocol/README.md +++ b/App/protocol/README.md @@ -11,7 +11,7 @@ | 子目录 | 协议 | 说明 | |---|---|---| -| `iec104/` | IEC 60870-5-104 被控站(TCP 2404 上行) | **纯逻辑**三件套(asdu/pts/link,零 I/O,数据源 vtable 注入)→ 全栈 L0.5 主机单测;板端胶水与点表决策 → `docs/子系统设计/IEC104上行设计说明.md` | +| `iec104/` | IEC 60870-5-104 被控站(TCP 2404 上行) | **纯逻辑**三件套(asdu/pts/link,零 I/O,数据源 vtable 注入)→ 全栈主机侧纯逻辑单测;板端胶水与点表决策 → `docs/子系统设计/IEC104上行设计说明.md` | ## 何时使用本目录 diff --git a/App/protocol/iec104/iec104_asdu.h b/App/protocol/iec104/iec104_asdu.h index dc5063b1..b51c3b4e 100644 --- a/App/protocol/iec104/iec104_asdu.h +++ b/App/protocol/iec104/iec104_asdu.h @@ -1,7 +1,7 @@ /* * 模块名称:IEC 60870-5-104 ASDU 编解码(应用层,纯逻辑) * 模块功能:104 规约应用服务数据单元(ASDU)的类型/传送原因常量、组帧与解析。 - * **零 I/O、零平台依赖**(仅 stdint.h)→ 主机侧 L0.5 可离线单测 + * **零 I/O、零平台依赖**(仅 stdint.h)→ 主机侧可离线纯逻辑单测 * (分层约束:协议解析与硬件 I/O 分离)。 * 口径来源:docs/算法/继电保护功能复现规划.md §1.5(B0 产品定义)—— * 公共地址 2 字节、传送原因 2 字节、信息体地址 IOA **3 字节**(101 为 2 字节); diff --git a/App/protocol/iec104/iec104_link.h b/App/protocol/iec104/iec104_link.h index bb13b9c2..95584667 100644 --- a/App/protocol/iec104/iec104_link.h +++ b/App/protocol/iec104/iec104_link.h @@ -9,7 +9,7 @@ * → clock_sync 回调)、试验(C_TS)与进程复位(C_RP,清快照)。 * **零 I/O**:收 = on_rx 喂 TCP 流片段,发 = send_apdu 回调, * 时基 = 调用方注入 now_ms(tick ms,回绕安全:差值法) - * → 全栈(asdu+pts+link)主机侧 L0.5 可离线跑(分层约束)。 + * → 全栈(asdu+pts+link)主机侧纯逻辑单测可离线跑(分层约束)。 * 参数(DL/T 634.5104 标准默认,§1.5 未另定):k=12 w=8 t1=15s t2=10s t3=20s。 * 端口:TCP **2404**(§1.5 B0 定义;本 DTU = 被控站/服务器,主站连入)。 * 线程约定:单实例单任务上下文(板端 = 104 服务在 netTask 消息循环内驱动, diff --git a/App/task/protect_task.h b/App/task/protect_task.h index 1bda48a0..1f989ef0 100644 --- a/App/task/protect_task.h +++ b/App/task/protect_task.h @@ -4,7 +4,7 @@ * (`prot_elm_run()`:phasor rms → 元件步进),并落实 自检失败闭锁 采样 *(保护功能清单见 docs/算法/继电保护功能复现规划.md) * 故障闭锁(`adc_health_flags()` 电平位 → 元件状态复位 + 本拍不判据)。 - * 判据本体在 `App/algo/prot_elm.c`(纯逻辑,L0.5 已覆盖),本文件 + * 判据本体在 `App/algo/prot_elm.c`(纯逻辑,主机侧纯逻辑单测已覆盖),本文件 * 只做消费/编排(AGENTS 目录地图:task 不装算法)。 * 线程约定:仅本任务调 prot_elm_run / prot_set_selfcheck(prot_elm.h 线程约定); * prot_set 写在 P4 前无第二写者(104 定值写经 pts→prot_set,见注)。 diff --git a/Drivers/BSP/GD5F2GQ5UE/nand_ftl.c b/Drivers/BSP/GD5F2GQ5UE/nand_ftl.c index 429618a6..c9f7345d 100644 --- a/Drivers/BSP/GD5F2GQ5UE/nand_ftl.c +++ b/Drivers/BSP/GD5F2GQ5UE/nand_ftl.c @@ -20,7 +20,7 @@ * DHARA_PAGE_NONE)旧会被地址位截断成真实页 → 静默读写 * 错页,现报 DHARA_E_CORRUPT_MAP(不能用 BAD_BLOCK:会 * 误标无辜好块;不能用 RECOVER:会触发回收); - * ③ 补主机侧移植层单测 test/host/nand_port/(L0.5); + * ③ 补主机侧移植层纯逻辑单测 test/host/nand_port/; * ④ 几何字面量收成 FTL_LOG2_PAGE_SIZE / FTL_LOG2_PPB * 单一真源 + 两条负数组编译期守卫:越界上界依赖 * log2_ppb,换料时只改 GD5F_* 而忘改字面量会**静默** diff --git a/test/README.md b/test/README.md index dc9f63de..5a73aa9c 100644 --- a/test/README.md +++ b/test/README.md @@ -56,7 +56,7 @@ ## 相关文档 -- `docs/测试说明/测试开发标准流程.md` — L0~L3 分层与门禁决策表 +- `docs/测试说明/测试开发标准流程.md` — 测试验证分层与门禁决策表 - `docs/测试说明/自动化测试流程.md` — `@test` 细节与失败模式 - 各模块测试指南:`docs/测试说明/*_Test_Guide.md` - `docs/测试说明/链路延迟测试说明.md` diff --git a/test/host/README.md b/test/host/README.md index fc62a10c..77915615 100644 --- a/test/host/README.md +++ b/test/host/README.md @@ -44,7 +44,7 @@ | 文件 | 作用 | |---|---| -| `common/unit_test_harness.py` | **通用单测 harness**(L0.5):探测 MSVC → 拼 `INCLUDE`/`LIB` → 编译 → 运行 → 判定退出码。各模块运行器只做**声明式**配置(`TestBuild`),不含工具链细节 | +| `common/unit_test_harness.py` | **通用单测 harness**(主机侧纯逻辑单测):探测 MSVC → 拼 `INCLUDE`/`LIB` → 编译 → 运行 → 判定退出码。各模块运行器只做**声明式**配置(`TestBuild`),不含工具链细节 | | `watchdog/run_unit_test.py` | **看门狗判定状态机单测**:声明 `TestBuild` 后调 harness,用 MSVC 离线编译真实 `App/util/task_watchdog.c`(可观测桩驱动),39 用例穷举边界。零硬件、秒级(退出码 0=PASS/1=FAIL/2=环境错误) | | `watchdog/watchdog_test.c` | 测试单元本体(`#include` 生产源码 + 平台钩子桩) | | `watchdog/stub/` | 桩头文件(`main.h`/`iwdg.h`/`dbg_log.h`),覆盖 MCU 版以在 PC 上编译 | diff --git a/test/host/adc_cal/run_unit_test.py b/test/host/adc_cal/run_unit_test.py index 6ad893ce..0096bf6a 100644 --- a/test/host/adc_cal/run_unit_test.py +++ b/test/host/adc_cal/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""通道标定层(标定折算,adc_cal)主机侧单元测试运行器(L0.5,纯标准库)。 +"""通道标定层(标定折算,adc_cal)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/adc_cal/adc_cal_test.c(它以 #include 纳入 diff --git a/test/host/adc_health/run_unit_test.py b/test/host/adc_health/run_unit_test.py index cdeaef23..266cb9fe 100644 --- a/test/host/adc_health/run_unit_test.py +++ b/test/host/adc_health/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""ADC 采样有效性校验的主机侧单元测试运行器(L0.5,纯标准库)。 +"""ADC 采样有效性校验的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/adc_health/adc_health_test.c(它以 #include 纳入 @@ -26,7 +26,7 @@ 退出码:0=PASS / 1=测试失败 / 2=环境错误(找不到编译器 / 编译失败 / 无汇总行)。 设计依据:docs/算法/继电保护功能复现规划.md §3.1(采样有效性校验); - docs/测试说明/测试开发标准流程.md §4.2(L0.5 主机侧单测)。 + docs/测试说明/测试开发标准流程.md §4.2(主机侧纯逻辑单测)。 创建日期:2026-10-11 """ import os diff --git a/test/host/adc_input/run_unit_test.py b/test/host/adc_input/run_unit_test.py index ea0371d6..11859786 100644 --- a/test/host/adc_input/run_unit_test.py +++ b/test/host/adc_input/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""ADC 输入层(语义取数与有效性,adc_input)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""ADC 输入层(语义取数与有效性,adc_input)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/adc_input/adc_input_test.c(它以 #include 纳入 diff --git a/test/host/boot_stats/run_unit_test.py b/test/host/boot_stats/run_unit_test.py index 30f17dc1..603bc021 100644 --- a/test/host/boot_stats/run_unit_test.py +++ b/test/host/boot_stats/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""开机账本(boot_stats)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""开机账本(boot_stats)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/boot_stats/boot_stats_test.c(以 #include 纳入**生产源** diff --git a/test/host/cfg_file/run_unit_test.py b/test/host/cfg_file/run_unit_test.py index 6d39fa52..edcdd707 100644 --- a/test/host/cfg_file/run_unit_test.py +++ b/test/host/cfg_file/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""配置引擎(cfg_file)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""配置引擎(cfg_file)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/cfg_file/cfg_file_test.c(它以 #include 纳入 diff --git a/test/host/cfg_file_store_mcu/cfg_file_store_mcu_test.c b/test/host/cfg_file_store_mcu/cfg_file_store_mcu_test.c index dceac963..66b6c9d8 100644 --- a/test/host/cfg_file_store_mcu/cfg_file_store_mcu_test.c +++ b/test/host/cfg_file_store_mcu/cfg_file_store_mcu_test.c @@ -1,5 +1,5 @@ /* - * 模块名称:配置存储后端(cfg_file_store_mcu)主机侧单元测试(L0.5) + * 模块名称:配置存储后端(cfg_file_store_mcu)主机侧纯逻辑单元测试 * 模块功能:在 PC 上离线验证 App/cfg/cfg_file_store_mcu.c 的五个卷操作 + 三个堆操作: * cfg_store_read / cfg_store_write_atomic / cfg_store_stat / * cfg_store_remove / 两个路径 getter / alloc-free-heap_free diff --git a/test/host/cfg_file_store_mcu/run_unit_test.py b/test/host/cfg_file_store_mcu/run_unit_test.py index 703c34a9..7cbb9fcb 100644 --- a/test/host/cfg_file_store_mcu/run_unit_test.py +++ b/test/host/cfg_file_store_mcu/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -r"""配置存储后端(cfg_file_store_mcu)的主机侧单元测试运行器(L0.5,纯标准库)。 +r"""配置存储后端(cfg_file_store_mcu)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/cfg_file_store_mcu/cfg_file_store_mcu_test.c(以 diff --git a/test/host/common/README.md b/test/host/common/README.md index fee8a66f..80dd97b2 100644 --- a/test/host/common/README.md +++ b/test/host/common/README.md @@ -1,6 +1,6 @@ # test/host/common/ — 主机侧测试公共库 -> L0.5 主机侧单元测试的**通用 harness**:被各模块的单测运行器共享, +> 主机侧纯逻辑单测的**通用 harness**:被各模块的单测运行器共享, > 集中承载工具链探测与编译/运行/判定的公共细节。 ## 文件一览 @@ -13,7 +13,7 @@ 看门狗单测最早的运行器(`test/host/watchdog/run_unit_test.py`)把工具链探测、 `INCLUDE`/`LIB` 拼接、GBK 解码、`/wd4819` 抑制、退出码契约**全写死在模块目录内**。 -第二个 L0.5 单测出现时须整段复制——工具链细节一旦修正(新增 VS 版本、SDK 布局 +第二个主机侧纯逻辑单测出现时须整段复制——工具链细节一旦修正(新增 VS 版本、SDK 布局 变化、编码处理调整)就会发散。抽取后各模块运行器只剩"声明式"配置。 > **边界**:harness **不认识任何模块**——源码路径、桩目录、额外 include、断言 @@ -72,7 +72,7 @@ raise SystemExit(run_host_unit_test(TestBuild(name="...", src="...", ...))) ## 环境要求 -同 L0.5 通用要求(见 [`../../../docs/测试说明/测试开发标准流程.md`](../../../docs/测试说明/测试开发标准流程.md) §4.2): +同主机侧纯逻辑单测通用要求(见 [`../../../docs/测试说明/测试开发标准流程.md`](../../../docs/测试说明/测试开发标准流程.md) §4.2): MSVC `cl.exe`(装了 VS 即有)+ Windows SDK + 纯标准库 Python;**不调 `vcvars64.bat`** (内部 `reg.exe` 受限),直接拼环境变量调 `cl.exe`。 @@ -95,10 +95,10 @@ MSVC `cl.exe`(装了 VS 即有)+ Windows SDK + 纯标准库 Python;**不 二进制**——两棵树的 `summary_marker` 一模一样,harness 分辨不出来,等于拿别人的 运行结果给自己下结论。2026-10-25 三条道并行时全量 `ci_local` 里 `test-cppcheck` / `test-coverage` 偶发 "files were modified by this hook"、单跑即绿,就是这一类。 -- **按工作树分家 + 每次跑独占**同时解决"跨树互踩"和"同树并发"(覆盖率钩子与手工 L0.5 +- **按工作树分家 + 每次跑独占**同时解决"跨树互踩"和"同树并发"(覆盖率钩子与手工主机侧纯逻辑单测 同时跑同一棵树时也会撞)。不牺牲任何东西:每个测试单元就一个 `.c`,`cl` 每次整体 重编,"共享 obj 省编译"本来就是错觉。**没有加锁**——这里没有需要互斥的独占资源, - 只是名字撞了;加锁等于把 L0.5 变成和 build/bench 一样的全局串行。 + 只是名字撞了;加锁等于把主机侧纯逻辑单测变成和 build/bench 一样的全局串行。 两个开关(都写在 harness 顶部注释里,判据以 `unit_test_harness.host_build_root()` 为准): diff --git a/test/host/common/unit_test_harness.py b/test/host/common/unit_test_harness.py index cc9802e1..80ff91bc 100644 --- a/test/host/common/unit_test_harness.py +++ b/test/host/common/unit_test_harness.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""unit_test_harness.py - 主机侧单元测试(L0.5)的通用运行器 harness。 +"""unit_test_harness.py - 主机侧纯逻辑单测的通用运行器 harness。 职责(**不认识任何具体模块**): 探测本机 MSVC 工具链 -> 拼 INCLUDE/LIB -> 编译测试单元 -> 运行 -> 判定退出码。 @@ -10,7 +10,7 @@ 为什么要 harness(2026-10-01 测试架构评审): 看门狗单测的运行器(`test/host/watchdog/run_unit_test.py`,170 行)把工具链 探测、`INCLUDE`/`LIB` 拼接、GBK 解码、`/wd4819` 抑制、退出码契约**全部写死在 - 模块目录内**。第二个 L0.5 单测出现时须整段复制——工具链细节一旦修正(新增 VS + 模块目录内**。第二个主机侧纯逻辑单测出现时须整段复制——工具链细节一旦修正(新增 VS 版本、SDK 布局变化、编码处理调整)就会发散。抽到这里后,各模块运行器只剩 "声明式"配置。 @@ -134,7 +134,7 @@ class TestBuild: # ----------------------------- 产物目录归属(跨工作树并行) ----------------------------- -# 现象(2026-10-25 三条道并行开发实测):全量 ci_local 的 L0 里 test-cppcheck / +# 现象(2026-10-25 三条道并行开发实测):全量 ci_local 的静态门禁里 test-cppcheck / # test-coverage 偶发 "files were modified by this hook",单独重跑即绿、工作树零改动。 # 根因是旧写法把 obj/exe 直接落在**全机共用**的 %TEMP%,名字由套件名派生 # (%TEMP%\net_socket_tests.exe 与 %TEMP%\net_socket_obj)。多棵工作树并行跑**同名 @@ -147,7 +147,7 @@ class TestBuild: # # 口径:**按工作树分家**。产物根 = %TEMP%\dtu_host\<仓库根路径哈希>\,跨树天然不撞, # 同一棵树内仍复用同一份目录(33 套的编译缓存没必要白白重编)。**不用锁**——锁会把 -# L0.5 变成和 build/bench 一样的全局串行,而这里并没有需要互斥的独占资源,只是名字 +# 主机侧纯逻辑单测变成和 build/bench 一样的全局串行,而这里并没有需要互斥的独占资源,只是名字 # 撞了。显式覆盖:DTU_HOST_BUILD=<目录>(CI/容器要固定路径时用)。 diff --git a/test/host/console_log/run_unit_test.py b/test/host/console_log/run_unit_test.py index e4c07ed1..44c97d1f 100644 --- a/test/host/console_log/run_unit_test.py +++ b/test/host/console_log/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""控制台单写者日志(console_log)主机侧单元测试运行器(L0.5,纯标准库)。 +"""控制台单写者日志(console_log)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/console_log/console_log_test.c(以 #include 纳入生产源 diff --git a/test/host/freq/run_unit_test.py b/test/host/freq/run_unit_test.py index 71b3d2fa..52836f12 100644 --- a/test/host/freq/run_unit_test.py +++ b/test/host/freq/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""频率测量层(全周傅氏相量的派生量,B8)主机侧单元测试运行器(L0.5,纯标准库)。 +"""频率测量层(全周傅氏相量的派生量,B8)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么:用本机 MSVC 离线编译 test/host/freq/freq_test.c(#include 纳入生产 源文件 App/algo/freq.c + phasor.c + sample_ring.c),验证相位解缠绕 diff --git a/test/host/ftp_auth/run_unit_test.py b/test/host/ftp_auth/run_unit_test.py index 7b3c703f..388c1d35 100644 --- a/test/host/ftp_auth/run_unit_test.py +++ b/test/host/ftp_auth/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""FTP 鉴权状态机(lftpd_auth)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""FTP 鉴权状态机(lftpd_auth)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/ftp_auth/ftp_auth_test.c(它以 #include 纳入 diff --git a/test/host/ftp_cfg/run_unit_test.py b/test/host/ftp_cfg/run_unit_test.py index 8788b429..21dbc6a1 100644 --- a/test/host/ftp_cfg/run_unit_test.py +++ b/test/host/ftp_cfg/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""FTP 鉴权配置(ftp_cfg,[ftp] 段)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""FTP 鉴权配置(ftp_cfg,[ftp] 段)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/ftp_cfg/ftp_cfg_test.c(以 #include 纳入**生产源文件** diff --git a/test/host/iec104/run_unit_test.py b/test/host/iec104/run_unit_test.py index 705dacc8..3bfddf80 100644 --- a/test/host/iec104/run_unit_test.py +++ b/test/host/iec104/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""IEC 60870-5-104 被控站协议栈(B4)主机侧单元测试运行器(L0.5,纯标准库)。 +"""IEC 60870-5-104 被控站协议栈(B4)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么:用本机 MSVC 离线编译 test/host/iec104/iec104_test.c(#include 纳入 生产源文件 iec104_asdu.c + iec104_pts.c + iec104_link.c,及数据源链接 diff --git a/test/host/iec104_serv/run_unit_test.py b/test/host/iec104_serv/run_unit_test.py index 9a55713f..d92cf2c4 100644 --- a/test/host/iec104_serv/run_unit_test.py +++ b/test/host/iec104_serv/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""IEC 104 上行服务生命周期(iec104_serv)主机侧单元测试运行器(L0.5,纯标准库)。 +"""IEC 104 上行服务生命周期(iec104_serv)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/iec104_serv/iec104_serv_test.c(以 #include 纳入生产源 diff --git a/test/host/lftpd/run_unit_test.py b/test/host/lftpd/run_unit_test.py index 96f57134..1c1c90dc 100644 --- a/test/host/lftpd/run_unit_test.py +++ b/test/host/lftpd/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""FTP 控制通道协议层(lftpd)主机侧单元测试运行器(L0.5,纯标准库)。 +"""FTP 控制通道协议层(lftpd)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/lftpd/lftpd_test.c(以 #include 纳入生产源 diff --git a/test/host/lftpd_inet/run_unit_test.py b/test/host/lftpd_inet/run_unit_test.py index 130541e2..49a3f234 100644 --- a/test/host/lftpd_inet/run_unit_test.py +++ b/test/host/lftpd_inet/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""FTP socket 适配层(lftpd_inet)主机侧单元测试运行器(L0.5,纯标准库)。 +"""FTP socket 适配层(lftpd_inet)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/lftpd_inet/lftpd_inet_test.c(以 #include 纳入生产源 diff --git a/test/host/lftpd_io/run_unit_test.py b/test/host/lftpd_io/run_unit_test.py index e8f6096e..a2606e2b 100644 --- a/test/host/lftpd_io/run_unit_test.py +++ b/test/host/lftpd_io/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""FTP 文件 IO 层(lftpd_io + lftpd_string)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""FTP 文件 IO 层(lftpd_io + lftpd_string)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/lftpd_io/lftpd_io_test.c(同时纳入生产源 diff --git a/test/host/meas/run_unit_test.py b/test/host/meas/run_unit_test.py index 066937b2..65e6ce6b 100644 --- a/test/host/meas/run_unit_test.py +++ b/test/host/meas/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""遥测快照层(全周傅氏相量发布侧,meas)主机侧单元测试运行器(L0.5,纯标准库)。 +"""遥测快照层(全周傅氏相量发布侧,meas)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/meas/meas_test.c(它以 #include 纳入 diff --git a/test/host/nand_port/run_unit_test.py b/test/host/nand_port/run_unit_test.py index 25166aef..08b62011 100644 --- a/test/host/nand_port/run_unit_test.py +++ b/test/host/nand_port/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""dhara NAND 移植层(nand_ftl)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""dhara NAND 移植层(nand_ftl)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/nand_port/nand_port_test.c(它以 #include 纳入 diff --git a/test/host/net_cfg/run_unit_test.py b/test/host/net_cfg/run_unit_test.py index b608cc4f..845859b8 100644 --- a/test/host/net_cfg/run_unit_test.py +++ b/test/host/net_cfg/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""网络配置(net_cfg)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""网络配置(net_cfg)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/net_cfg/net_cfg_test.c(它以 #include 纳入 diff --git a/test/host/net_events/run_unit_test.py b/test/host/net_events/run_unit_test.py index ddb685fb..b71bfc3d 100644 --- a/test/host/net_events/run_unit_test.py +++ b/test/host/net_events/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""NET 层事件分发与周期对账(net_events)主机侧单元测试运行器(L0.5,纯标准库)。 +"""NET 层事件分发与周期对账(net_events)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/net_events/net_events_test.c(以 #include 纳入生产源 diff --git a/test/host/net_listener/run_unit_test.py b/test/host/net_listener/run_unit_test.py index d6ca12e5..a1d04c2a 100644 --- a/test/host/net_listener/run_unit_test.py +++ b/test/host/net_listener/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""NET 层监听自动重建(net_listener)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""NET 层监听自动重建(net_listener)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/net_listener/net_listener_test.c(以 #include 纳入生产 diff --git a/test/host/net_pending/run_unit_test.py b/test/host/net_pending/run_unit_test.py index 51642c2b..09045967 100644 --- a/test/host/net_pending/run_unit_test.py +++ b/test/host/net_pending/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""NET 层挂起 recv / 挂起 send(net_pending)主机侧单元测试运行器(L0.5,纯标准库)。 +"""NET 层挂起 recv / 挂起 send(net_pending)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/net_pending/net_pending_test.c(以 #include 纳入生产源 diff --git a/test/host/net_select/run_unit_test.py b/test/host/net_select/run_unit_test.py index 67fd0d6b..bdd28506 100644 --- a/test/host/net_select/run_unit_test.py +++ b/test/host/net_select/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""NET 层 select/poll(net_select)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""NET 层 select/poll(net_select)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/net_select/net_select_test.c(以 #include 纳入生产源 diff --git a/test/host/net_socket/run_unit_test.py b/test/host/net_socket/run_unit_test.py index 454f0c4a..cf901376 100644 --- a/test/host/net_socket/run_unit_test.py +++ b/test/host/net_socket/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""NET 套接字核心(net_socket)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""NET 套接字核心(net_socket)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/net_socket/net_socket_test.c(以 #include 纳入生产源 diff --git a/test/host/phasor/run_unit_test.py b/test/host/phasor/run_unit_test.py index 51d0eec8..f4918474 100644 --- a/test/host/phasor/run_unit_test.py +++ b/test/host/phasor/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""相量层(全周傅氏相量)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""相量层(全周傅氏相量)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/phasor/phasor_test.c(它以 #include 纳入**生产源文件** @@ -28,7 +28,7 @@ 设计依据:docs/算法/继电保护功能复现规划.md §3.2(全周傅氏系数表 等); docs/算法/傅氏算法详解.md §2.3(系数口径); - docs/测试说明/测试开发标准流程.md §4.2(L0.5 主机侧单测)。 + docs/测试说明/测试开发标准流程.md §4.2(主机侧纯逻辑单测)。 创建日期:2026-10-10 """ import os diff --git a/test/host/prot_dim/run_unit_test.py b/test/host/prot_dim/run_unit_test.py index c6244252..590a4cf4 100644 --- a/test/host/prot_dim/run_unit_test.py +++ b/test/host/prot_dim/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""量纲回归用例(道A)主机侧单元测试运行器(L0.5,纯标准库)。 +"""量纲回归用例(道A)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: MSVC 编译 test/host/prot_dim/prot_dim_test.c(#include 纳入真实链: diff --git a/test/host/prot_elm/run_unit_test.py b/test/host/prot_elm/run_unit_test.py index c3a8ce3b..f1289fa2 100644 --- a/test/host/prot_elm/run_unit_test.py +++ b/test/host/prot_elm/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""保护元件框架(保护判据,P1 子集)主机侧单元测试运行器(L0.5,纯标准库)。 +"""保护元件框架(保护判据,P1 子集)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么:用本机 MSVC 离线编译 test/host/prot_elm/prot_elm_test.c(#include 纳入 生产源文件 prot_elm.c + prot_set.c + phasor.c + sample_ring.c),验证 diff --git a/test/host/prot_set/run_unit_test.py b/test/host/prot_set/run_unit_test.py index 4d6e5eba..670812cb 100644 --- a/test/host/prot_set/run_unit_test.py +++ b/test/host/prot_set/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""保护定值模型(P1)主机侧单元测试运行器(L0.5,纯标准库)。 +"""保护定值模型(P1)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么:用本机 MSVC 离线编译 test/host/prot_set/prot_set_test.c(#include 纳入 生产源文件 App/algo/prot_set.c),验证 Q10 定点模型 / 范围校验 / diff --git a/test/host/prot_set_store/run_unit_test.py b/test/host/prot_set_store/run_unit_test.py index a2d7a715..37a78ec6 100644 --- a/test/host/prot_set_store/run_unit_test.py +++ b/test/host/prot_set_store/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""保护定值持久化胶水层(prot_set_store)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""保护定值持久化胶水层(prot_set_store)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/prot_set_store/prot_set_store_test.c(同时纳入**生产源** diff --git a/test/host/run_par/run_unit_test.py b/test/host/run_par/run_unit_test.py index a2960d7e..f4512e01 100644 --- a/test/host/run_par/run_unit_test.py +++ b/test/host/run_par/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""运行参数段(run_par,「数据可信」这一项)主机侧单元测试运行器(L0.5,纯标准库)。 +"""运行参数段(run_par,「数据可信」这一项)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么:用本机 MSVC 离线编译 test/host/run_par/run_par_test.c(#include 纳入 run_par.c + cfg_file.c + adc_cal.c 真实链 + 内存虚拟盘桩),钉死 [run_par] diff --git a/test/host/sha256/run_unit_test.py b/test/host/sha256/run_unit_test.py index 53c71982..b875030f 100644 --- a/test/host/sha256/run_unit_test.py +++ b/test/host/sha256/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""SHA-256(sha256)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""SHA-256(sha256)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/sha256/sha256_test.c(它以 #include 纳入 diff --git a/test/host/soe/run_unit_test.py b/test/host/soe/run_unit_test.py index bdd62624..ece7947e 100644 --- a/test/host/soe/run_unit_test.py +++ b/test/host/soe/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""SOE 记录编解码(B9)主机侧单元测试运行器(L0.5,纯标准库)。 +"""SOE 记录编解码(B9)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么:用本机 MSVC 离线编译 test/host/soe/soe_test.c(#include 纳入 生产源文件 soe_rec.c + iec104_asdu.c),验证 64B 定长记录构建/解析 diff --git a/test/host/soe/soe_test.c b/test/host/soe/soe_test.c index ffc4a32f..01f09d1e 100644 --- a/test/host/soe/soe_test.c +++ b/test/host/soe/soe_test.c @@ -1,5 +1,5 @@ /* - * 模块名称:SOE 记录编解码主机侧单元测试(B9,L0.5) + * 模块名称:SOE 记录编解码主机侧纯逻辑单元测试(B9) * 模块功能:离线验证 App/log/soe_rec.c——64B 定长记录构建/解析往返、 * 校验和硬门槛(撕裂/半写拒绝)、版本门槛、CP56Time2a 时标 * 编码正确性(与 iec104_asdu.c 的 CP56 解码交叉验证:同一算法族 diff --git a/test/host/soe_store/run_unit_test.py b/test/host/soe_store/run_unit_test.py index 356f88e8..f508c377 100644 --- a/test/host/soe_store/run_unit_test.py +++ b/test/host/soe_store/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -r"""SOE 落盘胶水层(soe_store)的主机侧单元测试运行器(L0.5,纯标准库)。 +r"""SOE 落盘胶水层(soe_store)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/soe_store/soe_store_test.c(以 #include 纳入**生产源** diff --git a/test/host/soe_store/soe_store_test.c b/test/host/soe_store/soe_store_test.c index 83e9db0f..c37f5b0d 100644 --- a/test/host/soe_store/soe_store_test.c +++ b/test/host/soe_store/soe_store_test.c @@ -1,5 +1,5 @@ /* - * 模块名称:SOE 落盘胶水层(soe_store)主机侧单元测试(L0.5) + * 模块名称:SOE 落盘胶水层(soe_store)主机侧纯逻辑单元测试 * 模块功能:在 PC 上离线验证 App/log/soe_store.c 的四条对外契约与它自己的 * "照 sys_log_mcu 的台架实证纪律"注释: * - post 侧**零文件系统、零日志**(protectTask 栈预算 + DoD 硬约束); diff --git a/test/host/sys_clock/run_unit_test.py b/test/host/sys_clock/run_unit_test.py index 8cab78ef..889576e8 100644 --- a/test/host/sys_clock/run_unit_test.py +++ b/test/host/sys_clock/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""系统时钟(sys_clock)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""系统时钟(sys_clock)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/sys_clock/sys_clock_test.c(它以 #include 纳入 diff --git a/test/host/sys_log_mcu/run_unit_test.py b/test/host/sys_log_mcu/run_unit_test.py index 4bf3481f..d0742f21 100644 --- a/test/host/sys_log_mcu/run_unit_test.py +++ b/test/host/sys_log_mcu/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -r"""运行/自检记录落盘后端(sys_log_mcu)的主机侧单元测试运行器(L0.5,纯标准库)。 +r"""运行/自检记录落盘后端(sys_log_mcu)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/sys_log_mcu/sys_log_mcu_test.c(以 #include 纳入**生产源** diff --git a/test/host/sys_log_mcu/sys_log_mcu_test.c b/test/host/sys_log_mcu/sys_log_mcu_test.c index b973bce5..4df7e591 100644 --- a/test/host/sys_log_mcu/sys_log_mcu_test.c +++ b/test/host/sys_log_mcu/sys_log_mcu_test.c @@ -1,5 +1,5 @@ /* - * 模块名称:运行/自检记录落盘后端(sys_log_mcu)主机侧单元测试(L0.5) + * 模块名称:运行/自检记录落盘后端(sys_log_mcu)主机侧纯逻辑单元测试 * 模块功能:在 PC 上离线验证 App/log/sys_log_mcu.c 的四族契约—— * A 64B 定长记录格式(时间戳 / epoch ASCII / 描述三段 + 截断 + 占位) * B 写侧(单条 s_append_rec、批量 s_append_many、日志读写放大收口的"一批一次 diff --git a/test/host/task_prof/run_unit_test.py b/test/host/task_prof/run_unit_test.py index d0856e84..e3172019 100644 --- a/test/host/task_prof/run_unit_test.py +++ b/test/host/task_prof/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""任务耗时探针(task_prof)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""任务耗时探针(task_prof)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/task_prof/task_prof_test.c(以 #include 纳入**生产源** diff --git a/test/host/time_sync/run_unit_test.py b/test/host/time_sync/run_unit_test.py index f47b365d..36da3377 100644 --- a/test/host/time_sync/run_unit_test.py +++ b/test/host/time_sync/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""时间同步(time_sync)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""时间同步(time_sync)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/time_sync/time_sync_test.c(它以 #include 纳入 diff --git a/test/host/ui_data/run_unit_test.py b/test/host/ui_data/run_unit_test.py index 977a9d56..edcd4b48 100644 --- a/test/host/ui_data/run_unit_test.py +++ b/test/host/ui_data/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""UI 数据快照层(ui_data)主机侧单元测试运行器(L0.5,纯标准库)。 +"""UI 数据快照层(ui_data)主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/ui_data/ui_data_test.c(它以 #include 纳入 diff --git a/test/host/ui_sink/run_unit_test.py b/test/host/ui_sink/run_unit_test.py index a675e8e6..a824c52b 100644 --- a/test/host/ui_sink/run_unit_test.py +++ b/test/host/ui_sink/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""ui_net_sink 心跳边界主机侧单元测试运行器(L0.5,纯标准库)。 +"""ui_net_sink 心跳边界主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/ui_sink/ui_sink_test.c(以 #include 纳入生产源 diff --git a/test/host/vol_idle_sync/run_unit_test.py b/test/host/vol_idle_sync/run_unit_test.py index cc97a038..87828622 100644 --- a/test/host/vol_idle_sync/run_unit_test.py +++ b/test/host/vol_idle_sync/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""写回缓存空闲 flush(vol_idle_sync)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""写回缓存空闲 flush(vol_idle_sync)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/vol_idle_sync/vol_idle_sync_test.c(它以 #include diff --git a/test/host/vol_lock/run_unit_test.py b/test/host/vol_lock/run_unit_test.py index 17db483c..89f5ca5e 100644 --- a/test/host/vol_lock/run_unit_test.py +++ b/test/host/vol_lock/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""卷锁(vol_lock)的主机侧单元测试运行器(L0.5,纯标准库)。 +"""卷锁(vol_lock)的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/vol_lock/vol_lock_test.c(它以 #include 纳入 diff --git a/test/host/watchdog/run_unit_test.py b/test/host/watchdog/run_unit_test.py index cbd8c334..8b3cee84 100644 --- a/test/host/watchdog/run_unit_test.py +++ b/test/host/watchdog/run_unit_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""看门狗判定状态机的主机侧单元测试运行器(L0.5,纯标准库)。 +"""看门狗判定状态机的主机侧纯逻辑单元测试运行器(纯标准库)。 做什么: 用本机 MSVC 编译 test/host/watchdog/watchdog_test.c(它以 #include 纳入