Files
EdgeNode/internal/utils/ticker_test.go

52 lines
725 B
Go
Raw Normal View History

2020-09-26 08:07:07 +08:00
package utils
import (
"sync"
"testing"
"time"
)
func TestTicker(t *testing.T) {
ticker := NewTicker(3 * time.Second)
go func() {
time.Sleep(10 * time.Second)
ticker.Stop()
}()
for ticker.Next() {
2021-10-01 16:24:17 +08:00
t.Log("tick")
2020-09-26 08:07:07 +08:00
}
t.Log("finished")
}
func TestTicker2(t *testing.T) {
ticker := NewTicker(1 * time.Second)
go func() {
time.Sleep(5 * time.Second)
ticker.Stop()
}()
for {
2021-10-01 16:24:17 +08:00
t.Log("loop")
2020-09-26 08:07:07 +08:00
select {
case <-ticker.C:
2021-10-01 16:24:17 +08:00
t.Log("tick")
2020-09-26 08:07:07 +08:00
case <-ticker.S:
return
}
}
}
func TestTickerEvery(t *testing.T) {
i := 0
wg := &sync.WaitGroup{}
wg.Add(1)
Every(2*time.Second, func(ticker *Ticker) {
i++
2021-10-01 16:24:17 +08:00
t.Log("TestTickerEvery i:", i)
2020-09-26 08:07:07 +08:00
if i >= 4 {
ticker.Stop()
wg.Done()
}
})
wg.Wait()
}