From 1bba08e17248e392b085c38f882fcfad4e7f66db Mon Sep 17 00:00:00 2001 From: Aaron Zeisler Date: Mon, 13 Jul 2026 15:23:00 -0700 Subject: [PATCH] test: bump remaining 1ms channel-wait timeouts to 1s These tests pass a hardcoded time.Millisecond timeout to AssertChannelClosed, which waits on a channel closed by a producer goroutine. Under -race on slower or loaded CI runners, 1ms leaves no margin and the wait can time out before the close is observed even though nothing is wrong. Bump these to time.Second, matching the fix already applied elsewhere for the same pattern, while still failing fast on a genuine hang. --- internal/broadcasters_test.go | 2 +- internal/flag_tracker_impl_test.go | 2 +- ldclient_listeners_fdv2_test.go | 4 ++-- ldclient_listeners_test.go | 4 ++-- ldfiledatav2/file_data_source_test.go | 2 +- testhelpers/ldtestdatav2/test_data_source_test.go | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/internal/broadcasters_test.go b/internal/broadcasters_test.go index 9e7c7962..8a774080 100644 --- a/internal/broadcasters_test.go +++ b/internal/broadcasters_test.go @@ -54,7 +54,7 @@ func testBroadcasterGenerically[V any](t *testing.T, broadcasterFactory func() * ch2 := b.AddListener() b.RemoveListener(ch1) - th.AssertChannelClosed(t, ch1, time.Millisecond) + th.AssertChannelClosed(t, ch1, time.Second) value := valueFactory() b.Broadcast(value) diff --git a/internal/flag_tracker_impl_test.go b/internal/flag_tracker_impl_test.go index 07e5f49c..299da250 100644 --- a/internal/flag_tracker_impl_test.go +++ b/internal/flag_tracker_impl_test.go @@ -64,7 +64,7 @@ func TestFlagValueChangeListener(t *testing.T) { ch3 := tracker.AddFlagValueChangeListener(flagKey, otherUser, ldvalue.Null()) tracker.RemoveFlagValueChangeListener(ch2) // just verifying that the remove method works - th.AssertChannelClosed(t, ch2, time.Millisecond) + th.AssertChannelClosed(t, ch2, time.Second) th.AssertNoMoreValues(t, ch1, timeout) th.AssertNoMoreValues(t, ch3, timeout) diff --git a/ldclient_listeners_fdv2_test.go b/ldclient_listeners_fdv2_test.go index dd9af6e8..80888da1 100644 --- a/ldclient_listeners_fdv2_test.go +++ b/ldclient_listeners_fdv2_test.go @@ -99,7 +99,7 @@ func TestFlagTrackerV2(t *testing.T) { sharedtest.ExpectFlagChangeEvents(t, ch2, alwaysTrueFlag.Key) p.client.GetFlagTracker().RemoveFlagChangeListener(ch1) - th.AssertChannelClosed(t, ch1, time.Millisecond) + th.AssertChannelClosed(t, ch1, time.Second) jsonFlag, _ = json.Marshal(alwaysTrueFlag) p.protocol.WithPutObject(subsystems.PutObject{ @@ -125,7 +125,7 @@ func TestFlagTrackerV2(t *testing.T) { ch3 := p.client.GetFlagTracker().AddFlagValueChangeListener(alwaysTrueFlag.Key, otherUser, ldvalue.Null()) p.client.GetFlagTracker().RemoveFlagValueChangeListener(ch2) // just verifying that the remove method works - th.AssertChannelClosed(t, ch2, time.Millisecond) + th.AssertChannelClosed(t, ch2, time.Second) th.AssertNoMoreValues(t, ch1, timeout) th.AssertNoMoreValues(t, ch3, timeout) diff --git a/ldclient_listeners_test.go b/ldclient_listeners_test.go index 7d46c1b6..e1249295 100644 --- a/ldclient_listeners_test.go +++ b/ldclient_listeners_test.go @@ -80,7 +80,7 @@ func TestFlagTracker(t *testing.T) { sharedtest.ExpectFlagChangeEvents(t, ch2, flagKey) p.client.GetFlagTracker().RemoveFlagChangeListener(ch1) - th.AssertChannelClosed(t, ch1, time.Millisecond) + th.AssertChannelClosed(t, ch1, time.Second) p.testData.Update(p.testData.Flag(flagKey)) @@ -101,7 +101,7 @@ func TestFlagTracker(t *testing.T) { ch3 := p.client.GetFlagTracker().AddFlagValueChangeListener(flagKey, otherUser, ldvalue.Null()) p.client.GetFlagTracker().RemoveFlagValueChangeListener(ch2) // just verifying that the remove method works - th.AssertChannelClosed(t, ch2, time.Millisecond) + th.AssertChannelClosed(t, ch2, time.Second) th.AssertNoMoreValues(t, ch1, timeout) th.AssertNoMoreValues(t, ch3, timeout) diff --git a/ldfiledatav2/file_data_source_test.go b/ldfiledatav2/file_data_source_test.go index 210944ed..62cff3e4 100644 --- a/ldfiledatav2/file_data_source_test.go +++ b/ldfiledatav2/file_data_source_test.go @@ -274,7 +274,7 @@ func TestClosingSynchronizerClosesResultsChannel(t *testing.T) { <-resultChan sync.Close() - th.AssertChannelClosed(t, resultChan, time.Millisecond, "result channel should be closed") + th.AssertChannelClosed(t, resultChan, time.Second, "result channel should be closed") }) } diff --git a/testhelpers/ldtestdatav2/test_data_source_test.go b/testhelpers/ldtestdatav2/test_data_source_test.go index e518ce61..61f666f6 100644 --- a/testhelpers/ldtestdatav2/test_data_source_test.go +++ b/testhelpers/ldtestdatav2/test_data_source_test.go @@ -176,7 +176,7 @@ func TestSupportsMultipleSynchronizers(t *testing.T) { sync2.Close() - th.AssertChannelClosed(t, resultChan2, time.Millisecond, "result channel should be closed") + th.AssertChannelClosed(t, resultChan2, time.Second, "result channel should be closed") td.Update(td.Flag("flag1").On(false)) @@ -285,5 +285,5 @@ func TestClosingSynchronizerClosesResultChannel(t *testing.T) { sync.Close() - th.AssertChannelClosed(t, resultChan, time.Millisecond, "result channel should be closed") + th.AssertChannelClosed(t, resultChan, time.Second, "result channel should be closed") }