From 35990a38c32d716e3074c916be2bf91fc0706fff Mon Sep 17 00:00:00 2001 From: Alessandro Ros Date: Mon, 3 Aug 2026 18:11:24 +0200 Subject: [PATCH] webrtc: fix race condition in tests (#6025) --- .../protocols/webrtc/peer_connection_test.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/protocols/webrtc/peer_connection_test.go b/internal/protocols/webrtc/peer_connection_test.go index 50369463..fde8e0fe 100644 --- a/internal/protocols/webrtc/peer_connection_test.go +++ b/internal/protocols/webrtc/peer_connection_test.go @@ -869,11 +869,13 @@ func TestPeerConnectionPublishDataChannel(t *testing.T) { _, err = pc1.CreateDataChannel("", nil) require.NoError(t, err) - dataChanCreated := make(chan struct{}) + dataChanOpened := make(chan struct{}) dataReceived := make(chan struct{}) pc1.OnDataChannel(func(dc *webrtc.DataChannel) { - close(dataChanCreated) + dc.OnOpen(func() { + close(dataChanOpened) + }) dc.OnMessage(func(msg webrtc.DataChannelMessage) { require.Equal(t, []byte("test data"), msg.Data) @@ -902,6 +904,12 @@ func TestPeerConnectionPublishDataChannel(t *testing.T) { require.NoError(t, err) defer pc2.Close() + outboundDataChanOpened := make(chan struct{}) + + pc2.OutboundDataChannels[0].dataChan.OnOpen(func() { + close(outboundDataChanOpened) + }) + answer, err := pc2.CreateFullAnswer(&offer, false) require.NoError(t, err) @@ -911,9 +919,11 @@ func TestPeerConnectionPublishDataChannel(t *testing.T) { err = pc2.WaitUntilConnected(10 * time.Second) require.NoError(t, err) - <-dataChanCreated + <-outboundDataChanOpened + <-dataChanOpened - pc2.OutboundDataChannels[0].Write([]byte("test data")) + err = pc2.OutboundDataChannels[0].dataChan.Send([]byte("test data")) + require.NoError(t, err) <-dataReceived }