mirror of
https://gitee.com/johng/gf
synced 2026-06-06 02:25:47 +08:00
Improve the code coverage of the gpool, gqueue, gring module (#1987)
This commit is contained in:
@ -85,6 +85,7 @@ func Test_Gpool(t *testing.T) {
|
||||
assertIndex = 0
|
||||
p2.Close()
|
||||
time.Sleep(3 * time.Second)
|
||||
t.AssertNE(p2.Put(1), nil)
|
||||
})
|
||||
|
||||
gtest.C(t, func(t *gtest.T) {
|
||||
@ -95,4 +96,27 @@ func Test_Gpool(t *testing.T) {
|
||||
t.Assert(err3, errors.New("pool is empty"))
|
||||
t.Assert(v3, nil)
|
||||
})
|
||||
|
||||
gtest.C(t, func(t *gtest.T) {
|
||||
p := gpool.New(time.Millisecond*200, nil, func(i interface{}) {})
|
||||
p.Put(1)
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
p.Put(2)
|
||||
time.Sleep(time.Millisecond * 200)
|
||||
})
|
||||
|
||||
gtest.C(t, func(t *gtest.T) {
|
||||
s := make([]int, 0)
|
||||
p := gpool.New(time.Millisecond*200, nil, func(i interface{}) {
|
||||
s = append(s, i.(int))
|
||||
})
|
||||
for i := 0; i < 5; i++ {
|
||||
p.Put(i)
|
||||
time.Sleep(time.Millisecond * 50)
|
||||
}
|
||||
val, err := p.Get()
|
||||
t.Assert(val, 2)
|
||||
t.AssertNil(err)
|
||||
t.Assert(p.Size(), 2)
|
||||
})
|
||||
}
|
||||
|
||||
@ -62,4 +62,12 @@ func TestQueue_Close(t *testing.T) {
|
||||
t.Assert(q1.Len(), 2)
|
||||
q1.Close()
|
||||
})
|
||||
gtest.C(t, func(t *gtest.T) {
|
||||
q1 := gqueue.New(2)
|
||||
q1.Push(1)
|
||||
q1.Push(2)
|
||||
time.Sleep(time.Millisecond)
|
||||
t.Assert(q1.Len(), 2)
|
||||
q1.Close()
|
||||
})
|
||||
}
|
||||
|
||||
@ -183,3 +183,43 @@ func Test_Issue1394(t *testing.T) {
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
func TestRing_RLockIteratorNext(t *testing.T) {
|
||||
gtest.C(t, func(t *gtest.T) {
|
||||
r := gring.New(10)
|
||||
for i := 0; i < 10; i++ {
|
||||
r.Set(i).Next()
|
||||
}
|
||||
|
||||
iterVal := 0
|
||||
r.RLockIteratorNext(func(value interface{}) bool {
|
||||
if value.(int) == 0 {
|
||||
iterVal = value.(int)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
t.Assert(iterVal, 0)
|
||||
})
|
||||
}
|
||||
|
||||
func TestRing_RLockIteratorPrev(t *testing.T) {
|
||||
gtest.C(t, func(t *gtest.T) {
|
||||
r := gring.New(10)
|
||||
for i := 0; i < 10; i++ {
|
||||
r.Set(i).Next()
|
||||
}
|
||||
|
||||
iterVal := 0
|
||||
r.RLockIteratorPrev(func(value interface{}) bool {
|
||||
if value.(int) == 0 {
|
||||
iterVal = value.(int)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
t.Assert(iterVal, 0)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user