diff --git a/tests/general/discoverymode/docker_observer_discovery_test.go b/tests/general/discoverymode/docker_observer_discovery_test.go index 823ba392ae..1f8af4ed3c 100644 --- a/tests/general/discoverymode/docker_observer_discovery_test.go +++ b/tests/general/discoverymode/docker_observer_discovery_test.go @@ -41,11 +41,8 @@ func TestDockerObserver(t *testing.T) { defer tc.PrintLogsOnFailure() defer tc.ShutdownOTLPReceiverSink() - dockerSocketProxy := testutils.CreateDockerSocketProxy(t) - require.NoError(t, dockerSocketProxy.Start()) - t.Cleanup(func() { - dockerSocketProxy.Stop() - }) + dockerSocketProxy, err := testutils.CreateDockerSocketProxy(t) + require.NoError(t, err) cntrs, shutdownPrometheus := tc.Containers( testutils.NewContainer().WithImage("bitnami/prometheus").WithLabel("test.id", tc.ID).WillWaitForLogs("Server is ready to receive web requests."), diff --git a/tests/receivers/envoy/bundled_test.go b/tests/receivers/envoy/bundled_test.go index 35a4158bf0..de3272ece9 100644 --- a/tests/receivers/envoy/bundled_test.go +++ b/tests/receivers/envoy/bundled_test.go @@ -32,11 +32,8 @@ import ( func TestEnvoyDockerObserver(t *testing.T) { testutils.SkipIfNotContainerTest(t) - dockerSocket := testutils.CreateDockerSocketProxy(t) - require.NoError(t, dockerSocket.Start()) - t.Cleanup(func() { - dockerSocket.Stop() - }) + dockerSocketProxy, err := testutils.CreateDockerSocketProxy(t) + require.NoError(t, err) tc := testutils.NewTestcase(t) defer tc.PrintLogsOnFailure() diff --git a/tests/receivers/mysql/bundled_test.go b/tests/receivers/mysql/bundled_test.go index 4ac4a6ca38..e58f447ef9 100644 --- a/tests/receivers/mysql/bundled_test.go +++ b/tests/receivers/mysql/bundled_test.go @@ -32,11 +32,8 @@ import ( func TestMysqlDockerObserver(t *testing.T) { testutils.SkipIfNotContainerTest(t) - dockerSocket := testutils.CreateDockerSocketProxy(t) - require.NoError(t, dockerSocket.Start()) - t.Cleanup(func() { - dockerSocket.Stop() - }) + dockerSocketProxy, err := testutils.CreateDockerSocketProxy(t) + require.NoError(t, err) tc := testutils.NewTestcase(t) defer tc.PrintLogsOnFailure() diff --git a/tests/receivers/oracledb/bundled_test.go b/tests/receivers/oracledb/bundled_test.go index 626f4fa19d..1b9133571a 100644 --- a/tests/receivers/oracledb/bundled_test.go +++ b/tests/receivers/oracledb/bundled_test.go @@ -29,11 +29,8 @@ import ( func TestOracledbDockerObserver(t *testing.T) { testutils.SkipIfNotContainerTest(t) - dockerSocket := testutils.CreateDockerSocketProxy(t) - require.NoError(t, dockerSocket.Start()) - t.Cleanup(func() { - dockerSocket.Stop() - }) + dockerSocketProxy, err := testutils.CreateDockerSocketProxy(t) + require.NoError(t, err) tc := testutils.NewTestcase(t) defer tc.PrintLogsOnFailure() @@ -56,7 +53,7 @@ func TestOracledbDockerObserver(t *testing.T) { "--set", "splunk.discovery.receivers.oracledb.config.service=XE", "--set", `splunk.discovery.extensions.k8s_observer.enabled=false`, "--set", `splunk.discovery.extensions.host_observer.enabled=false`, - "--set", fmt.Sprintf("splunk.discovery.extensions.docker_observer.config.endpoint=tcp://%s", dockerSocket.ContainerEndpoint), + "--set", fmt.Sprintf("splunk.discovery.extensions.docker_observer.config.endpoint=tcp://%s", dockerSocketProxy.ContainerEndpoint), ) }) defer shutdown() diff --git a/tests/receivers/redis/bundled_test.go b/tests/receivers/redis/bundled_test.go index 15413bb676..d3b07e3b26 100644 --- a/tests/receivers/redis/bundled_test.go +++ b/tests/receivers/redis/bundled_test.go @@ -32,11 +32,8 @@ import ( func TestRedisDockerObserver(t *testing.T) { testutils.SkipIfNotContainerTest(t) - dockerSocket := testutils.CreateDockerSocketProxy(t) - require.NoError(t, dockerSocket.Start()) - t.Cleanup(func() { - dockerSocket.Stop() - }) + dockerSocketProxy, err := testutils.CreateDockerSocketProxy(t) + require.NoError(t, err) tc := testutils.NewTestcase(t) defer tc.PrintLogsOnFailure() @@ -59,7 +56,7 @@ func TestRedisDockerObserver(t *testing.T) { "--set", "splunk.discovery.receivers.redis.config.username=${REDIS_USERNAME}", "--set", `splunk.discovery.extensions.k8s_observer.enabled=false`, "--set", `splunk.discovery.extensions.host_observer.enabled=false`, - "--set", fmt.Sprintf("splunk.discovery.extensions.docker_observer.config.endpoint=tcp://%s", dockerSocket.ContainerEndpoint), + "--set", fmt.Sprintf("splunk.discovery.extensions.docker_observer.config.endpoint=tcp://%s", dockerSocketProxy.ContainerEndpoint), ) }) defer shutdown() diff --git a/tests/testutils/socket_proxy.go b/tests/testutils/socket_proxy.go index c42d3707d0..2f1eefa10e 100644 --- a/tests/testutils/socket_proxy.go +++ b/tests/testutils/socket_proxy.go @@ -19,7 +19,6 @@ import ( "io" "net" "runtime" - "sync" "sync/atomic" "testing" ) @@ -30,11 +29,10 @@ type SocketProxy struct { Path string Endpoint string ContainerEndpoint string - wg sync.WaitGroup active atomic.Bool } -func CreateDockerSocketProxy(t testing.TB) *SocketProxy { +func CreateDockerSocketProxy(t testing.TB) (*SocketProxy, error) { port := GetAvailablePort(t) dockerHost := "172.17.0.1" @@ -42,12 +40,18 @@ func CreateDockerSocketProxy(t testing.TB) *SocketProxy { dockerHost = "host.docker.internal" } - return &SocketProxy{ + s := &SocketProxy{ Path: "/var/run/docker.sock", Endpoint: fmt.Sprintf("0.0.0.0:%d", port), ContainerEndpoint: fmt.Sprintf("%s:%d", dockerHost, port), t: t, } + err := s.Start() + if err != nil { + return nil, err + } + t.Cleanup(s.Stop) + return s, nil } func (s *SocketProxy) Start() error { @@ -56,7 +60,6 @@ func (s *SocketProxy) Start() error { return err } s.listener = l - s.wg.Add(1) s.active.Store(true) go func() { for s.active.Load() { @@ -79,7 +82,6 @@ func (s *SocketProxy) Start() error { _, _ = io.Copy(socketConn, c) }(conn) } - s.wg.Done() }() return nil }