mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			961 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			961 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package utils
 | 
						|
 | 
						|
import (
 | 
						|
	"sync"
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
func TestRawTicker(t *testing.T) {
 | 
						|
	var ticker = time.NewTicker(2 * time.Second)
 | 
						|
	go func() {
 | 
						|
		for range ticker.C {
 | 
						|
			t.Log("tick")
 | 
						|
		}
 | 
						|
		t.Log("stop")
 | 
						|
	}()
 | 
						|
 | 
						|
	time.Sleep(6 * time.Second)
 | 
						|
	ticker.Stop()
 | 
						|
	time.Sleep(1 * time.Second)
 | 
						|
}
 | 
						|
 | 
						|
func TestTicker(t *testing.T) {
 | 
						|
	ticker := NewTicker(3 * time.Second)
 | 
						|
	go func() {
 | 
						|
		time.Sleep(10 * time.Second)
 | 
						|
		ticker.Stop()
 | 
						|
	}()
 | 
						|
	for ticker.Next() {
 | 
						|
		t.Log("tick")
 | 
						|
	}
 | 
						|
	t.Log("finished")
 | 
						|
}
 | 
						|
 | 
						|
func TestTicker2(t *testing.T) {
 | 
						|
	ticker := NewTicker(1 * time.Second)
 | 
						|
	go func() {
 | 
						|
		time.Sleep(5 * time.Second)
 | 
						|
		ticker.Stop()
 | 
						|
	}()
 | 
						|
	for {
 | 
						|
		t.Log("loop")
 | 
						|
		select {
 | 
						|
		case <-ticker.C:
 | 
						|
			t.Log("tick")
 | 
						|
		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++
 | 
						|
		t.Log("TestTickerEvery i:", i)
 | 
						|
		if i >= 4 {
 | 
						|
			ticker.Stop()
 | 
						|
			wg.Done()
 | 
						|
		}
 | 
						|
	})
 | 
						|
	wg.Wait()
 | 
						|
}
 |