44 lines
598 B
Go
44 lines
598 B
Go
|
package timer
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
var testWheel = NewWheel(100 * time.Millisecond)
|
||
|
|
||
|
func TestTimer(t *testing.T) {
|
||
|
t1 := testWheel.NewTimer(500 * time.Millisecond)
|
||
|
|
||
|
before := time.Now()
|
||
|
<-t1.C
|
||
|
|
||
|
after := time.Now()
|
||
|
|
||
|
println(after.Sub(before).String())
|
||
|
}
|
||
|
|
||
|
func TestTicker(t *testing.T) {
|
||
|
wait := make(chan struct{}, 100)
|
||
|
i := 0
|
||
|
f := func() {
|
||
|
println(time.Now().Unix())
|
||
|
i++
|
||
|
if i >= 10 {
|
||
|
wait <- struct{}{}
|
||
|
}
|
||
|
}
|
||
|
before := time.Now()
|
||
|
|
||
|
t1 := testWheel.TickFunc(1000*time.Millisecond, f)
|
||
|
|
||
|
<-wait
|
||
|
|
||
|
t1.Stop()
|
||
|
|
||
|
after := time.Now()
|
||
|
|
||
|
println(after.Sub(before).String())
|
||
|
|
||
|
}
|