38 lines
796 B
Go
38 lines
796 B
Go
package bpool
|
|
|
|
import "testing"
|
|
|
|
func TestBytePool(t *testing.T) {
|
|
var size int = 4
|
|
var width int = 10
|
|
|
|
bufPool := NewBytePool(size, width)
|
|
|
|
// Check the width
|
|
if bufPool.Width() != width {
|
|
t.Fatalf("bytepool width invalid: got %v want %v", bufPool.Width(), width)
|
|
}
|
|
|
|
// Check that retrieved buffer are of the expected width
|
|
b := bufPool.Get()
|
|
if len(b) != width {
|
|
t.Fatalf("bytepool length invalid: got %v want %v", len(b), width)
|
|
}
|
|
|
|
bufPool.Put(b)
|
|
|
|
// Fill the pool beyond the capped pool size.
|
|
for i := 0; i < size*2; i++ {
|
|
bufPool.Put(make([]byte, bufPool.w))
|
|
}
|
|
|
|
// Close the channel so we can iterate over it.
|
|
close(bufPool.c)
|
|
|
|
// Check the size of the pool.
|
|
if len(bufPool.c) != size {
|
|
t.Fatalf("bytepool size invalid: got %v want %v", len(bufPool.c), size)
|
|
}
|
|
|
|
}
|