fix(tests): fix data races EE-6867 (#11387)

pull/11418/head
andres-portainer 2024-03-18 10:56:22 -03:00 committed by GitHub
parent 573f003226
commit bd3440bf3c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 4 deletions

View File

@ -1,6 +1,7 @@
package chisel package chisel
import ( import (
"context"
"net" "net"
"net/http" "net/http"
"testing" "testing"
@ -28,12 +29,17 @@ func TestPingAgentPanic(t *testing.T) {
ln, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.IPv4(127, 0, 0, 1), Port: 0}) ln, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.IPv4(127, 0, 0, 1), Port: 0})
require.NoError(t, err) require.NoError(t, err)
srv := &http.Server{Handler: mux}
errCh := make(chan error)
go func() { go func() {
require.NoError(t, http.Serve(ln, mux)) errCh <- srv.Serve(ln)
}() }()
s.getTunnelDetails(endpointID) s.getTunnelDetails(endpointID)
s.tunnelDetailsMap[endpointID].Port = ln.Addr().(*net.TCPAddr).Port s.tunnelDetailsMap[endpointID].Port = ln.Addr().(*net.TCPAddr).Port
require.Error(t, s.pingAgent(endpointID)) require.Error(t, s.pingAgent(endpointID))
require.NoError(t, srv.Shutdown(context.Background()))
require.ErrorIs(t, <-errCh, http.ErrServerClosed)
} }

View File

@ -138,13 +138,14 @@ func agentServer(t *testing.T) string {
Handler: h, Handler: h,
} }
errCh := make(chan error)
go func() { go func() {
err := s.Serve(l) errCh <- s.Serve(l)
require.ErrorIs(t, err, http.ErrServerClosed)
}() }()
t.Cleanup(func() { t.Cleanup(func() {
s.Shutdown(context.Background()) require.NoError(t, s.Shutdown(context.Background()))
require.ErrorIs(t, <-errCh, http.ErrServerClosed)
}) })
return "http://" + l.Addr().String() return "http://" + l.Addr().String()