INNER CODE UNIT · Go
TestBlobFanoutNewReadSeeker_DefersSeekableCloneUntilSeek
cshum/imagor · blob_test.go:388
func TestBlobFanoutNewReadSeeker_DefersSeekableCloneUntilSeek(t *testing.T) {
payload := bytes.Repeat([]byte("fanout-hybrid-"), 64)
var sourceCalls atomic.Int32
b := NewBlob(func() (io.ReadCloser, int64, error) {
sourceCalls.Add(1)
return &readSeekNopCloser{ReadSeeker: bytes.NewReader(payload)}, int64(len(payload)), nil
})
b.setFanout(true)
rs, size, err := b.NewReadSeeker()
require.NoError(t, err)
defer rs.Close()
assert.Equal(t, int64(len(payload)), size)
hybrid, ok := rs.(*hybridReadSeeker)
require.True(t, ok)
assert.Nil(t, hybrid.seeker)
assert.Equal(t, int32(1), sourceCalls.Load())