replace zxq.co/ripple/hanayo
This commit is contained in:
74
vendor/github.com/valyala/fasthttp/userdata_test.go
generated
vendored
Normal file
74
vendor/github.com/valyala/fasthttp/userdata_test.go
generated
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
package fasthttp
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestUserData(t *testing.T) {
|
||||
var u userData
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
key := []byte(fmt.Sprintf("key_%d", i))
|
||||
u.SetBytes(key, i+5)
|
||||
testUserDataGet(t, &u, key, i+5)
|
||||
u.SetBytes(key, i)
|
||||
testUserDataGet(t, &u, key, i)
|
||||
}
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
key := []byte(fmt.Sprintf("key_%d", i))
|
||||
testUserDataGet(t, &u, key, i)
|
||||
}
|
||||
|
||||
u.Reset()
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
key := []byte(fmt.Sprintf("key_%d", i))
|
||||
testUserDataGet(t, &u, key, nil)
|
||||
}
|
||||
}
|
||||
|
||||
func testUserDataGet(t *testing.T, u *userData, key []byte, value interface{}) {
|
||||
v := u.GetBytes(key)
|
||||
if v == nil && value != nil {
|
||||
t.Fatalf("cannot obtain value for key=%q", key)
|
||||
}
|
||||
if !reflect.DeepEqual(v, value) {
|
||||
t.Fatalf("unexpected value for key=%q: %d. Expecting %d", key, v, value)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUserDataValueClose(t *testing.T) {
|
||||
var u userData
|
||||
|
||||
closeCalls := 0
|
||||
|
||||
// store values implementing io.Closer
|
||||
for i := 0; i < 5; i++ {
|
||||
key := fmt.Sprintf("key_%d", i)
|
||||
u.Set(key, &closerValue{&closeCalls})
|
||||
}
|
||||
|
||||
// store values without io.Closer
|
||||
for i := 0; i < 10; i++ {
|
||||
key := fmt.Sprintf("key_noclose_%d", i)
|
||||
u.Set(key, i)
|
||||
}
|
||||
|
||||
u.Reset()
|
||||
|
||||
if closeCalls != 5 {
|
||||
t.Fatalf("unexpected number of Close calls: %d. Expecting 10", closeCalls)
|
||||
}
|
||||
}
|
||||
|
||||
type closerValue struct {
|
||||
closeCalls *int
|
||||
}
|
||||
|
||||
func (cv *closerValue) Close() error {
|
||||
(*cv.closeCalls)++
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user