diff --git a/core/utils/utils_test.go b/core/utils/utils_test.go index 50ba08477b4..cc518ce9a9c 100644 --- a/core/utils/utils_test.go +++ b/core/utils/utils_test.go @@ -390,10 +390,21 @@ func TestPausableTicker(t *testing.T) { assert.Nil(t, pt.Ticks()) defer pt.Destroy() + done := make(chan struct{}) + defer close(done) + followNTicks := func(n int32, awaiter cltest.Awaiter) { - for range pt.Ticks() { - if counter.Add(1) == n { - awaiter.ItHappened() + for { + select { + case <-done: + return + case _, ok := <-pt.Ticks(): + if !ok { + return + } + if counter.Add(1) == n { + awaiter.ItHappened() + } } } } @@ -425,11 +436,20 @@ func TestCronTicker(t *testing.T) { assert.NoError(t, err) awaiter := cltest.NewAwaiter() + done := make(chan struct{}) go func() { - for range ct.Ticks() { - if counter.Add(1) == 2 { - awaiter.ItHappened() + for { + select { + case <-done: + return + case _, ok := <-ct.Ticks(): + if !ok { + return + } + if counter.Add(1) == 2 { + awaiter.ItHappened() + } } } }() @@ -443,6 +463,7 @@ func TestCronTicker(t *testing.T) { awaiter.AwaitOrFail(t) assert.True(t, ct.Stop()) + close(done) c := counter.Load() time.Sleep(1 * time.Second) assert.Equal(t, c, counter.Load())