1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // Copyright 2021 Tencent Inc. All rights reserved.
- package task
- import (
- "runtime"
- "testing"
- "time"
- "github.com/stretchr/testify/assert"
- )
- func TestNewRepeatedTask(t *testing.T) {
- cnt := new(int)
- task := NewRepeatedTask(1*time.Second, func(time.Time) { *cnt++ })
- assert.Equal(t, Init, task.State())
- task.Start()
- assert.Equal(t, Running, task.State())
- time.Sleep(5 * time.Second)
- task.Stop()
- assert.Equal(t, Stopped, task.State())
- assert.Equal(t, 5, *cnt)
- time.Sleep(2 * time.Second)
- assert.Equal(t, 5, *cnt)
- }
- func runTask(cnt *int) {
- task := NewRepeatedTask(1*time.Second, func(time.Time) { *cnt++ })
- task.Start()
- time.Sleep(5 * time.Second)
- }
- func TestRecycleRepeatedTask(t *testing.T) {
- cnt := new(int)
- runTask(cnt)
- runtime.GC()
- assert.Equal(t, 5, *cnt)
- time.Sleep(2 * time.Second)
- assert.Equal(t, 5, *cnt)
- }
|