forked from davyxu/cellnet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtimer_test.go
More file actions
64 lines (40 loc) · 967 Bytes
/
timer_test.go
File metadata and controls
64 lines (40 loc) · 967 Bytes
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
package timer
import (
"testing"
"time"
"github.com/davyxu/cellnet"
"github.com/davyxu/cellnet/example"
"github.com/davyxu/golog"
)
var log *golog.Logger = golog.New("test")
func TestTimer(t *testing.T) {
signal := test.NewSignalTester(t)
queue := cellnet.NewEventQueue()
queue.StartLoop()
const testTimes = 3
var count int = testTimes
cellnet.NewTimer(queue, time.Second, func(t *cellnet.Timer) {
log.Debugln("timer 1 sec tick")
signal.Done(1)
count--
if count == 0 {
t.Stop()
signal.Done(2)
}
})
for i := 0; i < testTimes; i++ {
signal.WaitAndExpect(1, "timer not tick")
}
signal.WaitAndExpect(2, "timer not stop")
}
func TestDelay(t *testing.T) {
signal := test.NewSignalTester(t)
queue := cellnet.NewEventQueue()
queue.StartLoop()
log.Debugln("delay 1 sec begin")
queue.DelayPost(nil, time.Second, func() {
log.Debugln("delay done")
signal.Done(1)
})
signal.WaitAndExpect(1, "delay not work")
}