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())

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…