Files
quic-go/multiplexer_test.go
Marten Seemann 55687a684f migrate multiplexer tests away from Ginkgo (#4814)
Also fixes the tests to properly clean up the multiplexer.
2024-12-28 16:10:34 +08:00

34 lines
1.0 KiB
Go

package quic
import (
"net"
"testing"
"github.com/stretchr/testify/require"
)
type mockIndexableConn struct{ addr net.Addr }
var _ indexableConn = &mockIndexableConn{}
func (m *mockIndexableConn) LocalAddr() net.Addr { return m.addr }
func TestMultiplexerAddNewPacketConns(t *testing.T) {
conn1 := &mockIndexableConn{addr: &net.UDPAddr{IP: net.IPv4(1, 2, 3, 4), Port: 1234}}
getMultiplexer().AddConn(conn1)
conn2 := &mockIndexableConn{addr: &net.UDPAddr{IP: net.IPv4(1, 2, 3, 4), Port: 1235}}
getMultiplexer().AddConn(conn2)
require.NoError(t, getMultiplexer().RemoveConn(conn1))
require.NoError(t, getMultiplexer().RemoveConn(conn2))
}
func TestMultiplexerPanicsOnDuplicateConn(t *testing.T) {
conn := &mockIndexableConn{addr: &net.UDPAddr{IP: net.IPv4(1, 2, 3, 4), Port: 4321}}
getMultiplexer().AddConn(conn)
require.Panics(t, func() { getMultiplexer().AddConn(conn) })
require.NoError(t, getMultiplexer().RemoveConn(conn))
require.ErrorContains(t, getMultiplexer().RemoveConn(conn), "cannote remove connection")
}