2019-04-22 02:59:20 +00:00

44 lines
1015 B
Go

package time
import (
"testing"
"time"
"go-common/library/log"
)
func TestTimer(t *testing.T) {
timer := NewTimer(100)
tds := make([]*TimerData, 100)
for i := 0; i < 100; i++ {
tds[i] = timer.Add(time.Duration(i)*time.Second+5*time.Minute, nil)
}
printTimer(timer)
for i := 0; i < 100; i++ {
log.Info("td: %s, %s, %d", tds[i].Key, tds[i].ExpireString(), tds[i].index)
timer.Del(tds[i])
}
printTimer(timer)
for i := 0; i < 100; i++ {
tds[i] = timer.Add(time.Duration(i)*time.Second+5*time.Minute, nil)
}
printTimer(timer)
for i := 0; i < 100; i++ {
timer.Del(tds[i])
}
printTimer(timer)
timer.Add(time.Second, nil)
time.Sleep(time.Second * 2)
if len(timer.timers) != 0 {
t.FailNow()
}
}
func printTimer(timer *Timer) {
log.Info("----------timers: %d ----------", len(timer.timers))
for i := 0; i < len(timer.timers); i++ {
log.Info("timer: %s, %s, index: %d", timer.timers[i].Key, timer.timers[i].ExpireString(), timer.timers[i].index)
}
log.Info("--------------------")
}