Always close/cleanup on runners

This commit is contained in:
Joe Turki
2025-11-11 20:47:46 +02:00
parent 06dd6383d6
commit 43a7803ff3
5 changed files with 63 additions and 9 deletions

View File

@@ -160,6 +160,9 @@ func TestActiveTCP(t *testing.T) {
passiveAgent, err := NewAgent(cfg)
req.NoError(err)
req.NotNil(passiveAgent)
defer func() {
req.NoError(passiveAgent.Close())
}()
activeAgent, err := NewAgent(&AgentConfig{
CandidateTypes: []CandidateType{CandidateTypeHost},
@@ -172,6 +175,9 @@ func TestActiveTCP(t *testing.T) {
req.NoError(err)
req.NotNil(activeAgent)
defer func() {
req.NoError(activeAgent.Close())
}()
passiveAgentConn, activeAgenConn := connect(t, passiveAgent, activeAgent)
req.NotNil(passiveAgentConn)

View File

@@ -275,17 +275,22 @@ func TestSTUNConcurrency(t *testing.T) {
_ = listener.Close()
}()
tcpMux := NewTCPMuxDefault(
TCPMuxParams{
Listener: listener,
Logger: logging.NewDefaultLoggerFactory().NewLogger("ice"),
ReadBufferSize: 8,
},
)
defer func() {
_ = tcpMux.Close()
}()
agent, err := NewAgent(&AgentConfig{
NetworkTypes: supportedNetworkTypes(),
Urls: urls,
CandidateTypes: []CandidateType{CandidateTypeHost, CandidateTypeServerReflexive},
TCPMux: NewTCPMuxDefault(
TCPMuxParams{
Listener: listener,
Logger: logging.NewDefaultLoggerFactory().NewLogger("ice"),
ReadBufferSize: 8,
},
),
TCPMux: tcpMux,
})
require.NoError(t, err)
defer func() {
@@ -770,10 +775,14 @@ func TestMultiTCPMuxUsage(t *testing.T) {
}()
expectedPorts = append(expectedPorts, port)
tcpMuxInstances = append(tcpMuxInstances, NewTCPMuxDefault(TCPMuxParams{
tcpMux := NewTCPMuxDefault(TCPMuxParams{
Listener: listener,
ReadBufferSize: 8,
}))
})
defer func() {
_ = tcpMux.Close()
}()
tcpMuxInstances = append(tcpMuxInstances, tcpMux)
}
agent, err := NewAgent(&AgentConfig{

View File

@@ -46,6 +46,9 @@ func TestMultiTCPMux_Recv(t *testing.T) {
ReadBufferSize: 20,
WriteBufferSize: bufSize,
})
defer func() {
_ = tcpMux.Close()
}()
muxInstances = append(muxInstances, tcpMux)
require.NotNil(t, tcpMux.LocalAddr(), "tcpMux.LocalAddr() is nil")
}
@@ -114,6 +117,9 @@ func TestMultiTCPMux_NoDeadlockWhenClosingUnusedPacketConn(t *testing.T) {
Logger: loggerFactory.NewLogger("ice"),
ReadBufferSize: 20,
})
defer func() {
_ = tcpMux.Close()
}()
tcpMuxInstances = append(tcpMuxInstances, tcpMux)
}
muxMulti := NewMultiTCPMuxDefault(tcpMuxInstances...)
@@ -150,6 +156,9 @@ func TestMultiTCPMux_GetConnByUfrag_FromAnyMux(t *testing.T) {
Logger: logger,
ReadBufferSize: 8,
})
defer func() {
_ = mux1.Close()
}()
l2, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.IP{127, 0, 0, 1}, Port: 0})
require.NoError(t, err)
@@ -162,6 +171,9 @@ func TestMultiTCPMux_GetConnByUfrag_FromAnyMux(t *testing.T) {
Logger: logger,
ReadBufferSize: 8,
})
defer func() {
_ = mux2.Close()
}()
multi := NewMultiTCPMuxDefault(mux1, mux2)
defer func() { _ = multi.Close() }()
@@ -221,6 +233,9 @@ func TestMultiTCPMux_Close_PropagatesError_FromWrappedMux(t *testing.T) {
Logger: logger,
ReadBufferSize: 8,
})
defer func() {
_ = mux1.Close()
}()
// second mux: Close() returns injected error
l2, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.IP{127, 0, 0, 1}, Port: 0})
@@ -230,6 +245,9 @@ func TestMultiTCPMux_Close_PropagatesError_FromWrappedMux(t *testing.T) {
Logger: logger,
ReadBufferSize: 8,
})
defer func() {
_ = mux2Real.Close()
}()
mux2 := &closeErrTCPMux{TCPMux: mux2Real, ret: errTCPMuxCloseBoom}
multi := NewMultiTCPMuxDefault(mux1, mux2)
@@ -249,6 +267,9 @@ func TestMultiTCPMux_Close_LastErrorWins_FromWrappedMuxes(t *testing.T) {
Logger: logger,
ReadBufferSize: 8,
})
defer func() {
_ = mux1Real.Close()
}()
mux1 := &closeErrTCPMux{TCPMux: mux1Real, ret: errTCPMuxCloseFirst}
// second mux: error2 (last error should be returned)
@@ -259,6 +280,9 @@ func TestMultiTCPMux_Close_LastErrorWins_FromWrappedMuxes(t *testing.T) {
Logger: logger,
ReadBufferSize: 8,
})
defer func() {
_ = mux2Real.Close()
}()
mux2 := &closeErrTCPMux{TCPMux: mux2Real, ret: errTCPMuxCloseSecond}
multi := NewMultiTCPMuxDefault(mux1, mux2)

View File

@@ -147,6 +147,9 @@ func TestTCPMux_FirstPacketTimeout(t *testing.T) {
ReadBufferSize: 20,
FirstStunBindTimeout: time.Second,
})
defer func() {
_ = tcpMux.Close()
}()
require.NotNil(t, tcpMux.LocalAddr(), "tcpMux.LocalAddr() is nil")

View File

@@ -207,11 +207,17 @@ func pipe(t *testing.T, defaultConfig *AgentConfig) (*Conn, *Conn) {
aAgent, err := NewAgent(cfg)
require.NoError(t, err)
require.NoError(t, aAgent.OnConnectionStateChange(aNotifier))
t.Cleanup(func() {
require.NoError(t, aAgent.Close())
})
bAgent, err := NewAgent(cfg)
require.NoError(t, err)
require.NoError(t, bAgent.OnConnectionStateChange(bNotifier))
t.Cleanup(func() {
require.NoError(t, bAgent.Close())
})
aConn, bConn := connect(t, aAgent, bAgent)
@@ -240,10 +246,16 @@ func pipeWithTimeout(t *testing.T, disconnectTimeout time.Duration, iceKeepalive
aAgent, err := NewAgent(cfg)
require.NoError(t, err)
require.NoError(t, aAgent.OnConnectionStateChange(aNotifier))
t.Cleanup(func() {
require.NoError(t, aAgent.Close())
})
bAgent, err := NewAgent(cfg)
require.NoError(t, err)
require.NoError(t, bAgent.OnConnectionStateChange(bNotifier))
t.Cleanup(func() {
require.NoError(t, bAgent.Close())
})
aConn, bConn := connect(t, aAgent, bAgent)