Ver Fonte

test case for sync pool

Darien Raymond há 8 anos atrás
pai
commit
eda72624e2
1 ficheiros alterados com 17 adições e 3 exclusões
  1. 17 3
      common/buf/buffer_test.go

+ 17 - 3
common/buf/buffer_test.go

@@ -1,6 +1,7 @@
 package buf_test
 
 import (
+	"crypto/rand"
 	"testing"
 
 	. "v2ray.com/core/common/buf"
@@ -54,16 +55,29 @@ func TestBufferWrite(t *testing.T) {
 	assert.String(buffer.String()).Equals("abcdabcd")
 }
 
-func BenchmarkNewBuffer8192(b *testing.B) {
+func TestSyncPool(t *testing.T) {
+	assert := assert.On(t)
+
+	p := NewSyncPool(32)
+	b := p.Allocate()
+	assert.Int(b.Len()).Equals(0)
+
+	assert.Error(b.AppendSupplier(ReadFrom(rand.Reader))).IsNil()
+	assert.Int(b.Len()).Equals(32)
+
+	b.Release()
+}
+
+func BenchmarkNewBuffer(b *testing.B) {
 	for i := 0; i < b.N; i++ {
 		buffer := New()
 		buffer.Release()
 	}
 }
 
-func BenchmarkNewLocalBuffer8192(b *testing.B) {
+func BenchmarkNewLocalBuffer(b *testing.B) {
 	for i := 0; i < b.N; i++ {
-		buffer := NewLocal(8192)
+		buffer := NewLocal(Size)
 		buffer.Release()
 	}
 }