From 4497d68d6fd3130dee71b0208fa1e67829ad6717 Mon Sep 17 00:00:00 2001 From: Cecylia Bocovich Date: Mon, 23 Sep 2024 10:05:38 -0400 Subject: [PATCH] Move time.Sleep call in turbotunnel test An update the the kcp-go library removes the guarantee that all data written to a KCP connection will be flushed before the connection is closed. Moving the sleep call has no impact on the integrity of the tests, and gives the connection time to flush data before the connection is closed. See https://github.com/xtaci/kcp-go/issues/273 --- common/turbotunnel/queuepacketconn_test.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/common/turbotunnel/queuepacketconn_test.go b/common/turbotunnel/queuepacketconn_test.go index 30e69e3..2934971 100644 --- a/common/turbotunnel/queuepacketconn_test.go +++ b/common/turbotunnel/queuepacketconn_test.go @@ -208,14 +208,16 @@ func TestQueuePacketConnWriteToKCP(t *testing.T) { panic(err) } + // A sleep after the Write makes buffer reuse more likely, and is needed + // to allow time for flushing all bytes written to the connection before close. + // This is not guaranteed by kcp-go. See https://github.com/xtaci/kcp-go/issues/273 + time.Sleep(100 * time.Millisecond) + err = conn.Close() if err != nil { panic(err) } - // A sleep after the Write makes buffer reuse more likely. - time.Sleep(100 * time.Millisecond) - if len(transcript.Transcript) == 0 { panic("empty transcript") }