mirror of
https://github.com/restic/restic.git
synced 2025-12-08 06:09:56 +00:00
archiver: add buffer test
This commit is contained in:
parent
3f92987974
commit
d8dcd6d115
1 changed files with 41 additions and 0 deletions
41
internal/archiver/buffer_test.go
Normal file
41
internal/archiver/buffer_test.go
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
package archiver
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestBufferPoolReuse(t *testing.T) {
|
||||
// Test that buffers are actually reused from the pool
|
||||
pool := newBufferPool(1024)
|
||||
|
||||
// Get a buffer and modify it
|
||||
buf1 := pool.Get()
|
||||
buf1.Data[0] = 0xFF
|
||||
originalAddr := &buf1.Data[0]
|
||||
buf1.Release()
|
||||
|
||||
// Get another buffer and check if it's the same underlying slice
|
||||
buf2 := pool.Get()
|
||||
if &buf2.Data[0] != originalAddr {
|
||||
t.Error("buffer was not reused from pool")
|
||||
}
|
||||
buf2.Release()
|
||||
}
|
||||
|
||||
func TestBufferPoolLargeBuffers(t *testing.T) {
|
||||
// Test that buffers larger than defaultSize are not returned to pool
|
||||
pool := newBufferPool(1024)
|
||||
buf := pool.Get()
|
||||
|
||||
// Grow the buffer beyond default size
|
||||
buf.Data = append(buf.Data, make([]byte, 2048)...)
|
||||
originalCap := cap(buf.Data)
|
||||
|
||||
buf.Release()
|
||||
|
||||
// Get a new buffer - should not be the same slice
|
||||
newBuf := pool.Get()
|
||||
if cap(newBuf.Data) == originalCap {
|
||||
t.Error("large buffer was incorrectly returned to pool")
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue