package task_test import ( "testing" "time" . "v2ray.com/core/common/task" . "v2ray.com/ext/assert" "v2ray.com/core/common" ) func TestPeriodicTaskStop(t *testing.T) { assert := With(t) value := 0 task := &Periodic{ Interval: time.Second * 2, Execute: func() error { value++ return nil }, } common.Must(task.Start()) time.Sleep(time.Second * 5) common.Must(task.Close()) assert(value, Equals, 3) time.Sleep(time.Second * 4) assert(value, Equals, 3) common.Must(task.Start()) time.Sleep(time.Second * 3) if value != 5 { t.Fatal("Expected 5, but ", value) } common.Must(task.Close()) }