From 20928258d68f1fefeaedb1de83845e3ca4d36056 Mon Sep 17 00:00:00 2001 From: Jarek Kowalski Date: Sat, 2 Sep 2023 16:04:36 -0700 Subject: [PATCH] test(general): fixed TestOnNthCompletion test flake, which was 1-5/10000 runs (#3263) --- .../parallelwork/parallel_work_queue_test.go | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/internal/parallelwork/parallel_work_queue_test.go b/internal/parallelwork/parallel_work_queue_test.go index 9b98f307f..408e6fe7c 100644 --- a/internal/parallelwork/parallel_work_queue_test.go +++ b/internal/parallelwork/parallel_work_queue_test.go @@ -224,18 +224,23 @@ func TestOnNthCompletion(t *testing.T) { // callback must be called exactly 1 time require.Equal(t, callbackInvoked.Load(), int32(1)) - var cnt int + var ( + errCalledCount int + noErrorCount int + ) + for result := range results { - cnt++ - switch cnt { - // n-th invocation must run and return an expected error - case n: - require.Error(t, result) - require.ErrorIs(t, result, errCalled) - // other invocations must not run and return any error - default: - require.NoError(t, result) + if result == nil { + noErrorCount++ + continue } + + errCalledCount++ + + require.ErrorIs(t, result, errCalled) } + + require.Equal(t, errCalledCount, 1) + require.Equal(t, noErrorCount, n) }) }