主机单测:新增卷锁与时间同步两套用例(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:
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* 主机侧单测桩:dbg_log.h
|
||||
* 模块功能:为 App/sync/time_sync.c 提供主机可编译的日志宏(映射到计数)。
|
||||
*
|
||||
* ⚠ 仅供 test/host/time_sync/ 使用,不参与 MCU 构建。
|
||||
*
|
||||
* 注意:time_sync.c 在 `#include "dbg_log.h"` 之前自行 `#define` 了
|
||||
* DBG_LINE_BUF_MAX 与 DBG_TAG(真实头会用到它们),故本桩**不得**再定义这两个宏,
|
||||
* 否则触发 C4005 宏重定义告警(/W4)。
|
||||
*
|
||||
* DBG_ERROR / DBG_INFO 计入计数器,供单测断言:
|
||||
* - "net_socket/bind/listen FAIL"、"open listener FAIL, retry later" → ERROR
|
||||
* - "no TIME packet in 30s, drop conn"、"wall clock updated"、"network re-init" → INFO
|
||||
*
|
||||
* 创建日期:2026-10-10
|
||||
*/
|
||||
|
||||
#ifndef DBG_LOG_H
|
||||
#define DBG_LOG_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* 计数(在 time_sync_test.c 实现) */
|
||||
extern int g_tstest_err_count;
|
||||
extern int g_tstest_info_count;
|
||||
|
||||
#define DBG_INFO(fmt, ...) do { g_tstest_info_count++; } while (0)
|
||||
#define DBG_DEBUG(fmt, ...) do { } while (0)
|
||||
#define DBG_ERROR(fmt, ...) do { g_tstest_err_count++; } while (0)
|
||||
|
||||
#endif /* DBG_LOG_H */
|
||||
Reference in New Issue
Block a user