xpool: add metrics
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
@@ -2,12 +2,30 @@ package pool
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestByte(t *testing.T) {
|
||||
p := NewBytePool(1024)
|
||||
b := p.Get()
|
||||
copy(*b, []byte(`test`))
|
||||
if bytes.Equal(*b, []byte("test")) {
|
||||
t.Fatal("pool not works")
|
||||
}
|
||||
p.Put(b)
|
||||
b = p.Get()
|
||||
for i := 0; i < 1500; i++ {
|
||||
*b = append(*b, []byte(`test`)...)
|
||||
}
|
||||
p.Put(b)
|
||||
st := p.Stats()
|
||||
if st.Get != 2 && st.Put != 2 && st.Mis != 1 && st.Ret != 1 {
|
||||
t.Fatalf("pool stats error %#+v", st)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBytes(t *testing.T) {
|
||||
p := NewPool(func() *bytes.Buffer { return bytes.NewBuffer(nil) })
|
||||
p := NewBytesPool(1024)
|
||||
b := p.Get()
|
||||
b.Write([]byte(`test`))
|
||||
if b.String() != "test" {
|
||||
@@ -17,7 +35,7 @@ func TestBytes(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestStrings(t *testing.T) {
|
||||
p := NewPool(func() *strings.Builder { return &strings.Builder{} })
|
||||
p := NewStringsPool(20)
|
||||
b := p.Get()
|
||||
b.Write([]byte(`test`))
|
||||
if b.String() != "test" {
|
||||
|
Reference in New Issue
Block a user