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  }