github.com/lingyao2333/mo-zero@v1.4.1/core/executors/lessexecutor_test.go (about) 1 package executors 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/lingyao2333/mo-zero/core/timex" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestLessExecutor_DoOrDiscard(t *testing.T) { 12 executor := NewLessExecutor(time.Minute) 13 assert.True(t, executor.DoOrDiscard(func() {})) 14 assert.False(t, executor.DoOrDiscard(func() {})) 15 executor.lastTime.Set(timex.Now() - time.Minute - time.Second*30) 16 assert.True(t, executor.DoOrDiscard(func() {})) 17 assert.False(t, executor.DoOrDiscard(func() {})) 18 } 19 20 func BenchmarkLessExecutor(b *testing.B) { 21 exec := NewLessExecutor(time.Millisecond) 22 for i := 0; i < b.N; i++ { 23 exec.DoOrDiscard(func() { 24 }) 25 } 26 }