From 9fbbda484de3f9c1de773c3c402cb19e39a6a8ff Mon Sep 17 00:00:00 2001 From: Akash Suresh Date: Fri, 30 Apr 2021 13:05:25 -0400 Subject: [PATCH] receiver/zookeeper: Attempt to make test stable (#3274) Attempt to make test stable by waiting till the listener is setup. **Link to tracking Issue:** #3034 --- receiver/zookeeperreceiver/scraper_test.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/receiver/zookeeperreceiver/scraper_test.go b/receiver/zookeeperreceiver/scraper_test.go index da2dca9896dba..c84c5c53e691d 100644 --- a/receiver/zookeeperreceiver/scraper_test.go +++ b/receiver/zookeeperreceiver/scraper_test.go @@ -61,7 +61,6 @@ func TestZookeeperMetricsScraperScrape(t *testing.T) { metricsV3414 = append(metricsV3414, commonMetrics...) metricsV3414 = append(metricsV3414, metadata.Metrics.ZookeeperFsyncThresholdExceeds.New()) - localAddr := testutil.GetAvailableLocalAddress(t) tests := []struct { name string expectedMetrics []pdata.Metric @@ -192,10 +191,12 @@ func TestZookeeperMetricsScraperScrape(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + localAddr := testutil.GetAvailableLocalAddress(t) if !tt.mockZKConnectionErr { - go mockZKServer(t, localAddr, tt.mockedZKOutputSourceFilename) + ms := mockedServer{ready: make(chan bool, 1)} + go ms.mockZKServer(t, localAddr, tt.mockedZKOutputSourceFilename) + <-ms.ready } - time.Sleep(100 * time.Millisecond) cfg := &Config{ TCPAddr: confignet.TCPAddr{ @@ -281,11 +282,17 @@ func assertDescriptorEqual(t *testing.T, expected pdata.Metric, actual pdata.Met require.Equal(t, expected.DataType(), actual.DataType()) } -func mockZKServer(t *testing.T, endpoint string, filename string) { +type mockedServer struct { + ready chan bool +} + +func (ms *mockedServer) mockZKServer(t *testing.T, endpoint string, filename string) { listener, err := net.Listen("tcp", endpoint) require.NoError(t, err) defer listener.Close() + ms.ready <- true + conn, err := listener.Accept() require.NoError(t, err)