github.com/grafana/pyroscope@v1.18.0/pkg/test/mocks/mockobjstore/helper_test.go (about) 1 package mockobjstore 2 3 import ( 4 "context" 5 "io" 6 "sync" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestClientMock_MockGet(t *testing.T) { 13 expected := "body" 14 15 m := NewMockBucketWithHelper(t) 16 m.MockGet("test", expected, nil) 17 18 // Run many goroutines all requesting the same mocked object and 19 // ensure there's no race. 20 wg := sync.WaitGroup{} 21 for i := 0; i < 1000; i++ { 22 wg.Add(1) 23 go func() { 24 defer wg.Done() 25 26 reader, err := m.Get(context.Background(), "test") 27 require.NoError(t, err) 28 29 actual, err := io.ReadAll(reader) 30 require.NoError(t, err) 31 require.Equal(t, []byte(expected), actual) 32 33 require.NoError(t, reader.Close()) 34 }() 35 } 36 37 wg.Wait() 38 }