diff --git a/internal/csync/maps_test.go b/internal/csync/maps_test.go index b2b2c979af47eb408666a6456c911b65086c03c2..2ce29d94e1e59644b2bde6c2de704c609038cbfb 100644 --- a/internal/csync/maps_test.go +++ b/internal/csync/maps_test.go @@ -5,6 +5,7 @@ import ( "maps" "sync" "testing" + "testing/synctest" "time" "github.com/stretchr/testify/require" @@ -40,31 +41,35 @@ func TestNewMapFrom(t *testing.T) { func TestNewLazyMap(t *testing.T) { t.Parallel() - waiter := sync.Mutex{} - waiter.Lock() - loadCalled := false + synctest.Test(t, func(t *testing.T) { + t.Helper() - loadFunc := func() map[string]int { + waiter := sync.Mutex{} waiter.Lock() - defer waiter.Unlock() - loadCalled = true - return map[string]int{ - "key1": 1, - "key2": 2, + loadCalled := false + + loadFunc := func() map[string]int { + waiter.Lock() + defer waiter.Unlock() + loadCalled = true + return map[string]int{ + "key1": 1, + "key2": 2, + } } - } - m := NewLazyMap(loadFunc) - require.NotNil(t, m) + m := NewLazyMap(loadFunc) + require.NotNil(t, m) - waiter.Unlock() // Allow the load function to proceed - time.Sleep(100 * time.Millisecond) - require.True(t, loadCalled) - require.Equal(t, 2, m.Len()) + waiter.Unlock() // Allow the load function to proceed + time.Sleep(100 * time.Millisecond) + require.True(t, loadCalled) + require.Equal(t, 2, m.Len()) - value, ok := m.Get("key1") - require.True(t, ok) - require.Equal(t, 1, value) + value, ok := m.Get("key1") + require.True(t, ok) + require.Equal(t, 1, value) + }) } func TestMap_Set(t *testing.T) {