主机单测:新增卷锁与时间同步两套用例(33+80 项)并登记钩子

- vol_lock(App/fs/vol_lock.c):33 用例。核心不变量是 fail-open——
  互斥量创建失败时 vol_lock_wait() 必须返回 1 且绝不阻塞,因为调用者
  defaultTask 是看门狗喂狗点;板端该路径只在内存耗尽时才可能走到。
- time_sync(App/sync/time_sync.c):80 用例。本模块是 N-17 看门狗风险的
  全部逻辑贡献者,用例钉死分片喂狗节奏、监听退避、报文重组(半包/粘连/
  EOF/真错/预算耗尽/tick 回绕)、重听门控;用 longjmp 跳出 for(;;) 任务循环。
- 两套均为纯逻辑主机侧测试,MSVC 离线编译真实源文件(#include 纳入)。
- 新增钩子 vol-lock-unit-test、time-sync-unit-test(7f/7g)。
- 全量主机单测:watchdog 39 + sys_clock 100 + cfg_file 149 + phasor 57
  + adc_input 70 + vol_lock 33 + time_sync 80 = 528 项,全绿。
This commit is contained in:
2026-10-10 18:03:31 +08:00
parent 3715f8a34c
commit a2f5d1397a
13 changed files with 1430 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
/*
* 主机侧单测桩:sys_clock.h
* 模块功能:为 App/sync/time_sync.c 提供主机可编译的墙钟设置接口声明。
*
* ⚠ 仅供 test/host/time_sync/ 使用,不参与 MCU 构建。
* 真实头(App/util/sys_clock.h)含日历/闰年等无关声明;本桩只保留被测代码
* 真正调用的那一个(签名与真实头逐字一致:int sys_clock_set_unix(uint32_t))。
*
* 由测试单元给强符号桩,记录"是否被调用"与"最后一次的 epoch"。
*
* 创建日期:2026-10-10
*/
#ifndef SYS_CLOCK_H
#define SYS_CLOCK_H
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
int sys_clock_set_unix(uint32_t unix_secs);
#ifdef __cplusplus
}
#endif
#endif /* SYS_CLOCK_H */