测试:新增 cfg_file 主机侧单测并修复外科手术保存死码缺陷(S1-b+S2)
This commit is contained in:
+11
-4
@@ -41,10 +41,14 @@
|
||||
| `sys_clock/run_unit_test.py` | **系统时钟换算单测**:离线编译真实 `App/util/sys_clock.c`,以可控时钟 + 阴影 RTC 桩驱动,100 断言点覆盖闰年/月末/世纪/2038 上限/星期/30 天惰性再基准化/RTC 故障降级 |
|
||||
| `sys_clock/sys_clock_test.c` | 测试单元本体(`#include` 生产源码 + 强符号桩;**不改生产代码**) |
|
||||
| `sys_clock/stub/` | 桩头文件(`main.h`/`FreeRTOS.h`/`task.h`/`dbg_log.h`),覆盖 MCU 版以在 PC 上编译 |
|
||||
| `cfg_file/run_unit_test.py` | **配置引擎单测**:离线编译真实 `App/cfg/cfg_file.c`,以**内存虚拟文件系统**桩驱动,139 断言点覆盖 INI 解析/四种值类型编解码/段注册校验/load-save-poll 契约/超长守卫/故障注入 |
|
||||
| `cfg_file/cfg_file_test.c` | 测试单元本体(`#include` 生产源码 + `cfg_store_*` 内存 FS 后端桩;**不改生产代码**) |
|
||||
| `cfg_file/stub/` | 桩头文件(`dbg_log.h`),覆盖 MCU 版以在 PC 上编译 |
|
||||
|
||||
> 详见 `docs/测试说明/看门狗单元测试说明.md`、`docs/测试说明/系统时钟单元测试说明.md`;
|
||||
> 详见 `docs/测试说明/看门狗单元测试说明.md`、`docs/测试说明/系统时钟单元测试说明.md`、
|
||||
> `docs/测试说明/配置文件单元测试说明.md`;
|
||||
> harness 用法见 [`common/README.md`](common/README.md)。
|
||||
> 已挂 pre-commit 钩子 `watchdog-unit-test`、`sys-clock-unit-test`。
|
||||
> 已挂 pre-commit 钩子 `watchdog-unit-test`、`sys-clock-unit-test`、`cfg-file-unit-test`。
|
||||
|
||||
## 运行方式
|
||||
|
||||
@@ -62,6 +66,9 @@
|
||||
|
||||
# 系统时钟换算单测(纯逻辑,无需真机)
|
||||
& '.venv\Scripts\python.exe' test/host/sys_clock/run_unit_test.py
|
||||
|
||||
# 配置引擎单测(纯逻辑,无需真机)
|
||||
& '.venv\Scripts\python.exe' test/host/cfg_file/run_unit_test.py
|
||||
```
|
||||
|
||||
> 串口端口配置在 `.opencode/serial_config.json`(单一配置源,当前 COM6/115200)。
|
||||
@@ -70,8 +77,8 @@
|
||||
|
||||
- **PYTHONPATH/路径敏感**:脚本按仓库根相对路径读写,**从仓库根执行**
|
||||
- 本目录**被 pre-commit 门禁的 cppcheck / 代码规范排除**(`test/` 豁免);
|
||||
但 `watchdog/run_unit_test.py`、`sys_clock/run_unit_test.py` 自身**作为独立钩子**
|
||||
参与门禁(见上)
|
||||
但 `watchdog/run_unit_test.py`、`sys_clock/run_unit_test.py`、`cfg_file/run_unit_test.py`
|
||||
自身**作为独立钩子**参与门禁(见上)
|
||||
- 台架探针族(TCP 复连 / FTP 中止等)在 `MDK-ARM/*.py`,与本目录分工不同
|
||||
- `watchdog/`、`sys_clock/` 单测需要本机装有 MSVC(VS2019/2022 的 C++ 工具链);无则脚本报环境错误(退出码 2)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user