-
Notifications
You must be signed in to change notification settings - Fork 76
/
limits_test.go
74 lines (65 loc) · 2.21 KB
/
limits_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package gotalk
import (
"testing"
"time"
)
func TestLimits(t *testing.T) {
l := makeLimitsImpl(NoLimits)
assertEq(t, l.incBufferReq(), true)
assertEq(t, l.streamReqEnabled(), true)
assertEq(t, l.incStreamReq(), true)
assertEq(t, l.readTimeout, time.Duration(0))
// unlimited buffer requests, no stream requests
l = makeLimitsImpl(NewLimits(Unlimited, 0))
assertEq(t, l.incBufferReq(), true)
assertEq(t, l.streamReqEnabled(), false)
assertEq(t, l.incStreamReq(), false)
// 1 buffer request, no stream requests
l = makeLimitsImpl(NewLimits(1, 0))
assertEq(t, l.incBufferReq(), true)
assertEq(t, l.incBufferReq(), false)
l.decBufferReq()
assertEq(t, l.incBufferReq(), true)
assertEq(t, l.streamReqEnabled(), false)
assertEq(t, l.incStreamReq(), false)
// unlimited buffer requests, 1 stream request
l = makeLimitsImpl(NewLimits(Unlimited, 1))
assertEq(t, l.incBufferReq(), true)
assertEq(t, l.streamReqEnabled(), true)
assertEq(t, l.incStreamReq(), true)
assertEq(t, l.incStreamReq(), false)
l.decStreamReq()
assertEq(t, l.incStreamReq(), true)
// 2 buffer requests, 2 stream request
l = makeLimitsImpl(NewLimits(2, 2))
// test limitCounter, bufferLimit
assertEq(t, l.bufferLimit.count, uint32(0))
assertEq(t, l.incBufferReq(), true)
assertEq(t, l.bufferLimit.count, uint32(1))
assertEq(t, l.incBufferReq(), true)
assertEq(t, l.bufferLimit.count, uint32(2))
assertEq(t, l.incBufferReq(), false)
assertEq(t, l.bufferLimit.count, uint32(2))
l.decBufferReq()
assertEq(t, l.incBufferReq(), true)
assertEq(t, l.bufferLimit.count, uint32(2))
l.decBufferReq()
assertEq(t, l.bufferLimit.count, uint32(1))
l.decBufferReq()
assertEq(t, l.bufferLimit.count, uint32(0))
// test limitCounter, streamLimit
assertEq(t, l.streamReqEnabled(), true)
assertEq(t, l.streamLimit.count, uint32(0))
assertEq(t, l.incStreamReq(), true)
assertEq(t, l.streamLimit.count, uint32(1))
assertEq(t, l.incStreamReq(), true)
assertEq(t, l.streamLimit.count, uint32(2))
assertEq(t, l.incStreamReq(), false)
assertEq(t, l.streamLimit.count, uint32(2))
l.decStreamReq()
assertEq(t, l.incStreamReq(), true)
l.decStreamReq()
l.decStreamReq()
assertEq(t, l.bufferLimit.count, uint32(0))
assertEq(t, l.streamLimit.count, uint32(0))
}