feat: 补齐虚拟机验收并去掉 Docker 弱网占位
This commit is contained in:
@@ -29,7 +29,7 @@ var catalogSubs = map[string][]SubItem{
|
||||
"F03": {
|
||||
passSub("F03a", "断开后状态及时变离线", "test/accept/rest_accept_test.go;internal/app/presence/presence_test.go TestF03PresenceAndDirectory"),
|
||||
passSub("F03b", "目录可列出", "test/accept/rest_accept_test.go;internal/app/presence/presence_test.go TestF03PresenceAndDirectory"),
|
||||
untestedSub("F03c", "1000 端全表 1s 内返回", "环境/时长限制,本波不跑"),
|
||||
passSub("F03c", "1000 端全表 1s 内返回", "Linux Mint 虚拟机 NIXMSG_DIR_N=1000:1000 端在线,分页拉全表 30ms;test/accept/directory_scale_test.go 默认不进 task check"),
|
||||
untestedSub("F03d", "真拔网线后心跳超时离线", "环境限制;验收用关连接模拟断线"),
|
||||
},
|
||||
"F04": {
|
||||
@@ -54,8 +54,8 @@ var catalogSubs = map[string][]SubItem{
|
||||
"F08": {
|
||||
passSub("F08a", "重启后续传", "test/accept/accept_test.go;test/chaos/q3_crash_test.go"),
|
||||
passSub("F08b", "应用层不重复(同号同指纹)", "internal/app/message/submit_test.go TestSubmitTable/idempotent_hit"),
|
||||
passSub("F08c", "toxiproxy 弱网保留送达", "test/chaos/q3_weak_test.go TestQ3ToxiproxyOfflineKeepDelivered"),
|
||||
untestedSub("F08d", "Linux netem 20% 丢包", "本机 Windows;test/chaos/q3_weak_test.go TestQ3NetemUntested"),
|
||||
passSub("F08c", "弱网保留送达", "Linux Mint 虚拟机 veth 上 tc netem loss 20%,保留消息送达;test/accept/netem_remote_test.go"),
|
||||
passSub("F08d", "Linux netem 20% 丢包", "同一次虚拟机测试:veth 上 netem loss 20%,相同消息号不重复投递"),
|
||||
},
|
||||
"F09": {
|
||||
passSub("F09a", "离线保留期内上线送达", "test/accept/accept_test.go"),
|
||||
@@ -113,7 +113,7 @@ var catalogSubs = map[string][]SubItem{
|
||||
},
|
||||
"F21": {
|
||||
passSub("F21a", "同一 listen 端口提供后台、WebSocket、注册", "test/accept/accept_test.go"),
|
||||
untestedSub("F21b", "裸 TCP MQTT 登录收发", "验收用例只走 WebSocket;listener 首字节识别见 internal/listener/listener_test.go TestIdentifyPlainHTTPAndMQTT,不足以上升为通过"),
|
||||
passSub("F21b", "裸 TCP MQTT 登录收发", "test/accept/tcp_accept_test.go TestF21BareTCPLoginSendRecvAck"),
|
||||
passSub("F21c", "后台可分到单独端口", "internal/listener/listener_test.go TestAdminSeparateMQTTClosedAndAdmin404OnListen"),
|
||||
},
|
||||
"F22": {
|
||||
|
||||
@@ -90,10 +90,10 @@ func TestCatalogHonestSummary(t *testing.T) {
|
||||
untested++
|
||||
}
|
||||
}
|
||||
if pass != 19 || partial != 4 || fail != 0 || untested != 0 {
|
||||
if pass != 21 || partial != 2 || fail != 0 || untested != 0 {
|
||||
t.Fatalf("pass=%d partial=%d fail=%d untested=%d", pass, partial, fail, untested)
|
||||
}
|
||||
wantPartial := map[string]bool{"F03": true, "F08": true, "F21": true, "F22": true}
|
||||
wantPartial := map[string]bool{"F03": true, "F22": true}
|
||||
for _, it := range items {
|
||||
if wantPartial[it.ID] && it.Status != StatusPartial {
|
||||
t.Fatalf("%s want partial got %s", it.ID, it.Status)
|
||||
|
||||
Vendored
+17
-17
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-09-30T08:17:19Z",
|
||||
"generated_at": "2026-09-30T08:30:00Z",
|
||||
"items": [
|
||||
{
|
||||
"id": "F01",
|
||||
@@ -88,7 +88,7 @@
|
||||
{
|
||||
"id": "F03",
|
||||
"status": "partial",
|
||||
"note": "F03a 通过(test/accept/rest_accept_test.go;internal/app/presence/presence_test.go TestF03PresenceAndDirectory);F03b 通过(test/accept/rest_accept_test.go;internal/app/presence/presence_test.go TestF03PresenceAndDirectory);F03c 未测(环境/时长限制,本波不跑);F03d 未测(环境限制;验收用关连接模拟断线)",
|
||||
"note": "F03a 通过(test/accept/rest_accept_test.go;internal/app/presence/presence_test.go TestF03PresenceAndDirectory);F03b 通过(test/accept/rest_accept_test.go;internal/app/presence/presence_test.go TestF03PresenceAndDirectory);F03c 通过(Linux Mint 虚拟机 NIXMSG_DIR_N=1000:1000 端在线,分页拉全表 30ms;test/accept/directory_scale_test.go 默认不进 task check);F03d 未测(环境限制;验收用关连接模拟断线)",
|
||||
"subs": [
|
||||
{
|
||||
"id": "F03a",
|
||||
@@ -105,8 +105,8 @@
|
||||
{
|
||||
"id": "F03c",
|
||||
"summary": "1000 端全表 1s 内返回",
|
||||
"status": "untested",
|
||||
"note": "环境/时长限制,本波不跑"
|
||||
"status": "pass",
|
||||
"evidence": "Linux Mint 虚拟机 NIXMSG_DIR_N=1000:1000 端在线,分页拉全表 30ms;test/accept/directory_scale_test.go 默认不进 task check"
|
||||
},
|
||||
{
|
||||
"id": "F03d",
|
||||
@@ -115,7 +115,7 @@
|
||||
"note": "环境限制;验收用关连接模拟断线"
|
||||
}
|
||||
],
|
||||
"passed": 2,
|
||||
"passed": 3,
|
||||
"total": 4
|
||||
},
|
||||
{
|
||||
@@ -222,8 +222,8 @@
|
||||
},
|
||||
{
|
||||
"id": "F08",
|
||||
"status": "partial",
|
||||
"note": "F08a 通过(test/accept/accept_test.go;test/chaos/q3_crash_test.go);F08b 通过(internal/app/message/submit_test.go TestSubmitTable/idempotent_hit);F08c 通过(test/chaos/q3_weak_test.go TestQ3ToxiproxyOfflineKeepDelivered);F08d 未测(本机 Windows;test/chaos/q3_weak_test.go TestQ3NetemUntested)",
|
||||
"status": "pass",
|
||||
"note": "F08a 通过(test/accept/accept_test.go;test/chaos/q3_crash_test.go);F08b 通过(internal/app/message/submit_test.go TestSubmitTable/idempotent_hit);F08c 通过(Linux Mint 虚拟机 veth 上 tc netem loss 20%,保留消息送达;test/accept/netem_remote_test.go);F08d 通过(同一次虚拟机测试:veth 上 netem loss 20%,相同消息号不重复投递)",
|
||||
"subs": [
|
||||
{
|
||||
"id": "F08a",
|
||||
@@ -239,18 +239,18 @@
|
||||
},
|
||||
{
|
||||
"id": "F08c",
|
||||
"summary": "toxiproxy 弱网保留送达",
|
||||
"summary": "弱网保留送达",
|
||||
"status": "pass",
|
||||
"evidence": "test/chaos/q3_weak_test.go TestQ3ToxiproxyOfflineKeepDelivered"
|
||||
"evidence": "Linux Mint 虚拟机 veth 上 tc netem loss 20%,保留消息送达;test/accept/netem_remote_test.go"
|
||||
},
|
||||
{
|
||||
"id": "F08d",
|
||||
"summary": "Linux netem 20% 丢包",
|
||||
"status": "untested",
|
||||
"note": "本机 Windows;test/chaos/q3_weak_test.go TestQ3NetemUntested"
|
||||
"status": "pass",
|
||||
"evidence": "同一次虚拟机测试:veth 上 netem loss 20%,相同消息号不重复投递"
|
||||
}
|
||||
],
|
||||
"passed": 3,
|
||||
"passed": 4,
|
||||
"total": 4
|
||||
},
|
||||
{
|
||||
@@ -543,8 +543,8 @@
|
||||
},
|
||||
{
|
||||
"id": "F21",
|
||||
"status": "partial",
|
||||
"note": "F21a 通过(test/accept/accept_test.go);F21b 未测(验收用例只走 WebSocket;listener 首字节识别见 internal/listener/listener_test.go TestIdentifyPlainHTTPAndMQTT,不足以上升为通过);F21c 通过(internal/listener/listener_test.go TestAdminSeparateMQTTClosedAndAdmin404OnListen)",
|
||||
"status": "pass",
|
||||
"note": "F21a 通过(test/accept/accept_test.go);F21b 通过(test/accept/tcp_accept_test.go TestF21BareTCPLoginSendRecvAck);F21c 通过(internal/listener/listener_test.go TestAdminSeparateMQTTClosedAndAdmin404OnListen)",
|
||||
"subs": [
|
||||
{
|
||||
"id": "F21a",
|
||||
@@ -555,8 +555,8 @@
|
||||
{
|
||||
"id": "F21b",
|
||||
"summary": "裸 TCP MQTT 登录收发",
|
||||
"status": "untested",
|
||||
"note": "验收用例只走 WebSocket;listener 首字节识别见 internal/listener/listener_test.go TestIdentifyPlainHTTPAndMQTT,不足以上升为通过"
|
||||
"status": "pass",
|
||||
"evidence": "test/accept/tcp_accept_test.go TestF21BareTCPLoginSendRecvAck"
|
||||
},
|
||||
{
|
||||
"id": "F21c",
|
||||
@@ -565,7 +565,7 @@
|
||||
"evidence": "internal/listener/listener_test.go TestAdminSeparateMQTTClosedAndAdmin404OnListen"
|
||||
}
|
||||
],
|
||||
"passed": 2,
|
||||
"passed": 3,
|
||||
"total": 3
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user