MCPcopy Create free account
hub / github.com/imgproxy/imgproxy / TestAsyncBufferReadAtSmallBuffer

Function TestAsyncBufferReadAtSmallBuffer

asyncbuffer/buffer_test.go:186–212  ·  view source on GitHub ↗

TestAsyncBufferRead tests reading from AsyncBuffer using ReadAt method

(t *testing.T)

Source from the content-addressed store, hash-verified

184
185// TestAsyncBufferRead tests reading from AsyncBuffer using ReadAt method
186func TestAsyncBufferReadAtSmallBuffer(t *testing.T) {
187 source, bytesReader := generateSourceData(t, 20)
188 ab := asyncbuffer.New(bytesReader, -1)
189 defer ab.Close()
190
191 // First, let's read all the data
192 target := make([]byte, len(source))
193
194 n, err := ab.ReadAt(target, 0)
195 require.NoError(t, err)
196 assert.Equal(t, len(source), n)
197 assert.Equal(t, target, source)
198
199 // Let's read some data
200 target = make([]byte, 2)
201 n, err = ab.ReadAt(target, 1)
202 require.NoError(t, err)
203 assert.Equal(t, len(target), n)
204 assert.Equal(t, target, source[1:3])
205
206 // Let's read some data beyond the end of the stream
207 target = make([]byte, 2)
208 n, err = ab.ReadAt(target, 50)
209 require.Error(t, err)
210 assert.Equal(t, err, io.EOF)
211 assert.Equal(t, 0, n)
212}
213
214func TestAsyncBufferReader(t *testing.T) {
215 source, bytesReader := generateSourceData(t, asyncbuffer.ChunkSize*4+halfChunkSize)

Callers

nothing calls this directly

Calls 5

NewFunction · 0.92
generateSourceDataFunction · 0.85
ReadAtMethod · 0.80
CloseMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected