From a5fe2125e94bc2161ed7f431f9b419fc94830132 Mon Sep 17 00:00:00 2001 From: "Chris S. Kim" Date: Wed, 27 Jul 2022 10:21:27 -0400 Subject: [PATCH] Remove unnecessary goroutine in flaky test The watch is established in a background goroutine and the first assertion proves that the watcher is active so there is no reason for the update to happen in a racy goroutine. Note that this does not completely remove the race condition as the first call to testGetConfigValTimeout could time out before a config is returned. --- connect/proxy/config_test.go | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/connect/proxy/config_test.go b/connect/proxy/config_test.go index 067a9048e8..ddef16fb94 100644 --- a/connect/proxy/config_test.go +++ b/connect/proxy/config_test.go @@ -4,7 +4,6 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/hashicorp/consul/agent" @@ -143,23 +142,17 @@ func TestAgentConfigWatcherSidecarProxy(t *testing.T) { }, }, } - require.Equal(t, expectCfg, cfg) // Now keep watching and update the config. - go func() { - // Wait for watcher to be watching - time.Sleep(20 * time.Millisecond) - reg.Connect.SidecarService.Proxy.Upstreams = append(reg.Connect.SidecarService.Proxy.Upstreams, - api.Upstream{ - DestinationName: "cache", - LocalBindPort: 9292, - LocalBindAddress: "127.10.10.10", - }) - reg.Connect.SidecarService.Proxy.Config["local_connect_timeout_ms"] = 444 - err := agent.ServiceRegister(reg) - require.NoError(t, err) - }() + reg.Connect.SidecarService.Proxy.Upstreams = append(reg.Connect.SidecarService.Proxy.Upstreams, + api.Upstream{ + DestinationName: "cache", + LocalBindPort: 9292, + LocalBindAddress: "127.10.10.10", + }) + reg.Connect.SidecarService.Proxy.Config["local_connect_timeout_ms"] = 444 + require.NoError(t, agent.ServiceRegister(reg)) cfg = testGetConfigValTimeout(t, w, 2*time.Second) @@ -173,7 +166,7 @@ func TestAgentConfigWatcherSidecarProxy(t *testing.T) { }) expectCfg.PublicListener.LocalConnectTimeoutMs = 444 - assert.Equal(t, expectCfg, cfg) + require.Equal(t, expectCfg, cfg) } func testGetConfigValTimeout(t *testing.T, w ConfigWatcher,