9608b7a8ea
真机台架被断电和断线卡住,这一段只推进纯软件侧:把 UDP 数据面的随机序列
扫起来,并修掉随机长跑逼出的两条"测法自误"。
- ns_s7_udp.c 新增 UDP-24:固定种子 20261104 的 240 轮随机交互,每轮随机
载荷长度 1~112(112 = 假件收包流 128 B 上限减 8 字节信息头)、源端口、
源 IP、SERVER/CLIENT 形态、显式对端 sendto 与按记账对端 sendto,每 17 轮
close + 重 bind 一次。断言收在六族不变量上(长度等于芯片宣布值、既不吞
信息头也不丢真字节、源地址按形态分别取自表头/对端记账、udp_mode 与命令
一致、close/重 bind 后出参槽与挂起槽不残留、每次 sendto 交给芯片恰好 len
字节),并要求 ≥90% 轮次端到端干净(实测 240/240)。
- 长跑逼出的两处都是测法问题,不是被测码 bug,但只有长跑才逼得出:
1) 连续 sendto 不注入 SENBUF_FREE 时,第二次发送会合法转挂起,而本套的
挂起 send 替身从不完成,于是 FATAL 掐死整套件(连汇总行都没有)。改法
照 440i/440j:set_sint_sticky(SENBUF_FREE) + push_glob + g_ns_int_pin_set=0,
注释点名 TRAP-NET-04,背靠背发送的真机面留给 TC-NET-1609。
2) 假件 ch395f_get_recv_len 是"按调用序号取、耗尽后重复最后一个"的脚本且
容量有限,240 轮只追加不清空,序号撞满容量后每轮读到同一个陈旧长度
(症状:len 在随机而 n 恒为 28,前 24 轮全绿,最容易误判成产品 bug)。
补加法助手 ch395f_fake_reset_recv_len(sock),只归零该 sock 的脚本长度与
序号,既有单轮用例不调用它、行为一字未变。
- 覆盖率口径第 4 轮同步:用例面记到 24 组、全套 654/654(改造前 470),
新增一条"随机长跑逼出两条测法自误"的教训(长跑对假件的第一要求是
状态可重排,不是能追加)。
验证:net_socket 套件 654/654 绿;全量覆盖率 47/47 退出码 0,net_udp.c
237/239 行 99.2%、14/14 函数,net_socket.c 966/969 行 99.7%、59/59 函数,
总行 8372/9290(90.1%),无 REGRESS;cppcheck(--hook-stage manual)退出码 0;
check_doc_links --all 通过(213 个文档,无法判定 0);pre-commit 对本批文件
全绿。基线 JSON 无变化(本轮只加测试,未动生产码),故不随本提交改动。