From d2e319b2a17006122cd2d53d828c44a0bf21bd9b Mon Sep 17 00:00:00 2001 From: shaw Date: Sun, 20 Sep 2026 16:37:07 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E4=BF=AE=E5=A4=8D=20WebSocket=20?= =?UTF-8?q?=E5=90=8C=E7=BA=BF=E7=A8=8B=E6=8A=A2=E5=8D=A0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=9A=84=E5=85=B3=E9=97=AD=E6=97=B6=E5=BA=8F=E7=AB=9E=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...i_ws_forwarder_ingress_execution_scope_test.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/backend/internal/service/openai_ws_forwarder_ingress_execution_scope_test.go b/backend/internal/service/openai_ws_forwarder_ingress_execution_scope_test.go index c9a18fc748..db7ea8e5e1 100644 --- a/backend/internal/service/openai_ws_forwarder_ingress_execution_scope_test.go +++ b/backend/internal/service/openai_ws_forwarder_ingress_execution_scope_test.go @@ -310,10 +310,21 @@ func runOpenAIWSCodexThreadPair(t *testing.T, threadA, threadB string) (serverEr close(gatedConn.gate) readCtxA, cancelA := context.WithTimeout(context.Background(), 5*time.Second) - _, completedA, aReadErr := connA.Read(readCtxA) + defer cancelA() + for { + var completedA []byte + _, completedA, aReadErr = connA.Read(readCtxA) + if aReadErr != nil { + break + } + require.Equal(t, "resp_thread_a", gjson.GetBytes(completedA, "response.id").String()) + if threadA != threadB { + break + } + // 抢占关闭帧异步发送,已在飞的响应可能先到达;同线程必须继续读到关闭帧。 + } cancelA() if aReadErr == nil { - require.Equal(t, "resp_thread_a", gjson.GetBytes(completedA, "response.id").String()) require.NoError(t, connA.Close(coderws.StatusNormalClosure, "done")) } require.NoError(t, connB.Close(coderws.StatusNormalClosure, "done"))