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 全过。
This commit is contained in:
@@ -497,7 +497,11 @@ static void tc_open_listener(void) {
|
||||
CHECK(s_beat_id_bad == 0, "TC-TS-015b 心跳位恒为 TASK_WD_TIMESYNC");
|
||||
}
|
||||
|
||||
/* ===================== TC-TS-020..029:handle_conn ===================== */
|
||||
/* ===================== TC-TS-020..029:handle_conn =====================
|
||||
* ⚠ N34 阶段1(2026-10-13)契约变更:handle_conn **不再** net_close
|
||||
* (单连接模式下 conn==listen,close 会连监听一起毁);会话收尾只返回外层,
|
||||
* 由 time_sync_task 在 `conn != ls`(模拟器多连接后端)时才关数据 fd。
|
||||
* 故本组断言一律为 s_close_calls == 0;任务级关闭见 TC-TS-040e。 */
|
||||
|
||||
static void tc_handle_conn(void) {
|
||||
uint8_t pkt[16];
|
||||
@@ -513,7 +517,7 @@ static void tc_handle_conn(void) {
|
||||
CHECK(s_set_unix_last == 0x12345678u, "TC-TS-020b epoch 按大端解析");
|
||||
CHECK((s_recv_calls == 1) && (s_recv_len_log[0] == 16), "TC-TS-020c 首次请求 16 字节");
|
||||
CHECK(s_recv_to_log[0] == 50U, "TC-TS-020d 单次等待片长 = 50ms");
|
||||
CHECK((s_close_calls == 1) && (s_close_socks[0] == 7), "TC-TS-020e 处理完关闭连接");
|
||||
CHECK(s_close_calls == 0, "TC-TS-020e 处理完**不**关闭连接(N34 阶段1:close 交外层 conn!=ls 分支)");
|
||||
CHECK(g_tstest_info_count == 1, "TC-TS-020f 留痕 wall clock updated");
|
||||
|
||||
/* 2) 分段送达:4 + 4 */
|
||||
@@ -552,7 +556,7 @@ static void tc_handle_conn(void) {
|
||||
s_recv_seq_n = 1;
|
||||
time_sync_handle_conn(4);
|
||||
CHECK(s_set_unix_calls == 0, "TC-TS-023 非 TIME 前缀不更新墙钟");
|
||||
CHECK(s_close_calls == 1, "TC-TS-023b 仍关闭连接");
|
||||
CHECK(s_close_calls == 0, "TC-TS-023b 非 TIME 前缀也不关闭连接");
|
||||
|
||||
/* 5) 对端关闭(EOF) */
|
||||
fakes_reset();
|
||||
@@ -560,7 +564,7 @@ static void tc_handle_conn(void) {
|
||||
s_recv_seq_n = 1;
|
||||
time_sync_handle_conn(6);
|
||||
CHECK((s_set_unix_calls == 0) && (s_recv_calls == 1), "TC-TS-024 对端关闭(EOF)立即退出不解析");
|
||||
CHECK(s_close_calls == 1, "TC-TS-024b 关闭连接");
|
||||
CHECK(s_close_calls == 0, "TC-TS-024b EOF 也不关闭连接(net 层 auto_relisten 收口监听)");
|
||||
|
||||
/* 6) 真错误 */
|
||||
fakes_reset();
|
||||
@@ -586,7 +590,7 @@ static void tc_handle_conn(void) {
|
||||
time_sync_handle_conn(6);
|
||||
CHECK(s_recv_calls == 1, "TC-TS-027 预算耗尽后不再读(只读 1 次)");
|
||||
CHECK(g_tstest_info_count == 1, "TC-TS-027b 留痕 no TIME packet in 30s, drop conn");
|
||||
CHECK(s_close_calls == 1, "TC-TS-027c 仍关闭连接");
|
||||
CHECK(s_close_calls == 0, "TC-TS-027c 预算耗尽也不关闭连接");
|
||||
|
||||
/* 9) 剩余预算不足一片 */
|
||||
fakes_reset();
|
||||
|
||||
Reference in New Issue
Block a user