Pārlūkot izejas kodu

test case for periodic task

Darien Raymond 7 gadi atpakaļ
vecāks
revīzija
c368412728
1 mainītis faili ar 29 papildinājumiem un 0 dzēšanām
  1. 29 0
      common/signal/task_test.go

+ 29 - 0
common/signal/task_test.go

@@ -0,0 +1,29 @@
+package signal_test
+
+import (
+	"testing"
+	"time"
+
+	"v2ray.com/core/common"
+	. "v2ray.com/core/common/signal"
+	. "v2ray.com/ext/assert"
+)
+
+func TestPeriodicTaskStop(t *testing.T) {
+	assert := With(t)
+
+	value := 0
+	task := &PeriodicTask{
+		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)
+}