Commit Graph

2 Commits

Author SHA1 Message Date
wandering1 b3ef7289a0 test(time_sync): 单测断言随阶段1契约更新(handle_conn 不再 close)
阶段 1 第 5 项(b8c6a3d)删除了 time_sync_handle_conn 的 net_close(conn_sock)
——单连接模式下 conn==listen,close 会把监听一起毁掉;会话收尾改为返回外层,
由 time_sync_task 仅在 `conn != ls`(模拟器多连接后端)时关数据 fd。
4 条主机侧断言仍按旧契约要求"处理完关闭连接",ci_local 报 4 处失败
(TC-TS-020e/023b/024b/027c)。

- 4 条断言改为 `s_close_calls == 0`,文案说明新契约
- TC-TS-020..029 段头补契约变更注释(指向 TC-TS-040e 的任务级关闭路径)
- TC-TS-040e(任务级 conn!=ls 关闭)与 TC-TS-043(代次变化关旧监听)不变

验证:time_sync 单测 80/80 PASSED(原 76/80);ci_local L0.5 15 runner
951/951 assertions 全过。
2026-10-13 06:52:07 +08:00
wandering1 a2f5d1397a 主机单测:新增卷锁与时间同步两套用例(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 项,全绿。
2026-10-10 18:03:31 +08:00