github.com/grafana/pyroscope@v1.18.0/pkg/objstore/reader_test.go (about) 1 package objstore_test 2 3 import ( 4 "context" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 11 "github.com/grafana/pyroscope/pkg/objstore/client" 12 "github.com/grafana/pyroscope/pkg/objstore/providers/filesystem" 13 ) 14 15 func Test_FileSystem(t *testing.T) { 16 testDir := t.TempDir() 17 b, err := client.NewBucket(context.Background(), client.Config{ 18 StorageBackendConfig: client.StorageBackendConfig{ 19 Backend: client.Filesystem, 20 Filesystem: filesystem.Config{ 21 Directory: testDir, 22 }, 23 }, 24 Prefix: "testdata/", 25 }, "foo") 26 require.NoError(t, err) 27 28 // make the file locally 29 dir := filepath.Join(testDir, "testdata") 30 require.NoError(t, os.MkdirAll(dir, 0o755)) 31 require.NoError(t, os.WriteFile(dir+"/foo.parquet", []byte(`12345`), 0o644)) 32 33 ra, err := b.ReaderAt(context.Background(), "foo.parquet") 34 require.NoError(t, err) 35 defer func() { 36 require.NoError(t, ra.Close()) 37 }() 38 require.NotNil(t, ra) 39 require.IsType(t, &filesystem.FileReaderAt{}, ra) 40 41 buf := make([]byte, 2) 42 read, err := ra.ReadAt(buf, 3) 43 require.NoError(t, err) 44 require.Equal(t, 2, read) 45 require.Equal(t, []byte("45"), buf) 46 }