@@ -3,6 +3,7 @@ package querier
3
3
import (
4
4
"context"
5
5
"errors"
6
+ "go.uber.org/atomic"
6
7
"sync"
7
8
"testing"
8
9
"time"
@@ -65,6 +66,8 @@ func TestIngesterQuerier_earlyExitOnQuorum(t *testing.T) {
65
66
},
66
67
}
67
68
69
+ var cnt atomic.Int32
70
+
68
71
for testName , testData := range tests {
69
72
for _ , retErr := range []bool {true , false } {
70
73
testName , testData , retErr := testName , testData , retErr
@@ -75,9 +78,9 @@ func TestIngesterQuerier_earlyExitOnQuorum(t *testing.T) {
75
78
}
76
79
77
80
t .Run (testName , func (t * testing.T ) {
78
- cnt := 0
79
81
wg := sync.WaitGroup {}
80
82
wait := make (chan struct {})
83
+ cnt .Store (0 )
81
84
82
85
runFn := func (args mock.Arguments ) {
83
86
wg .Done ()
@@ -88,7 +91,7 @@ func TestIngesterQuerier_earlyExitOnQuorum(t *testing.T) {
88
91
// ctx should be cancelled after the first two replicas return
89
92
require .ErrorIs (t , ctx .Err (), context .Canceled )
90
93
case <- wait :
91
- cnt ++
94
+ cnt . Add ( 1 )
92
95
case <- time .After (time .Second ):
93
96
t .Error ("timed out waiting for ctx cancellation" )
94
97
}
@@ -121,7 +124,7 @@ func TestIngesterQuerier_earlyExitOnQuorum(t *testing.T) {
121
124
122
125
err = testData .testFn (ingesterQuerier )
123
126
ingesterClient .AssertNumberOfCalls (t , testData .method , 3 )
124
- require .Equal (t , 2 , cnt )
127
+ require .Equal (t , int32 ( 2 ) , cnt . Load () )
125
128
if retErr {
126
129
require .ErrorContains (t , err , testData .method + " failed" )
127
130
} else {
@@ -176,7 +179,7 @@ func TestIngesterQuerier_earlyExitOnQuorum(t *testing.T) {
176
179
}
177
180
178
181
t .Run (testName , func (t * testing.T ) {
179
- cnt := 0
182
+ cnt . Store ( 0 )
180
183
wg := sync.WaitGroup {}
181
184
wait := make (chan struct {})
182
185
@@ -189,7 +192,7 @@ func TestIngesterQuerier_earlyExitOnQuorum(t *testing.T) {
189
192
// should not be cancelled by the tracker
190
193
require .NoError (t , ctx .Err ())
191
194
case <- wait :
192
- cnt ++
195
+ cnt . Add ( 1 )
193
196
case <- time .After (time .Second ):
194
197
}
195
198
}
@@ -221,7 +224,7 @@ func TestIngesterQuerier_earlyExitOnQuorum(t *testing.T) {
221
224
222
225
err = testData .testFn (ingesterQuerier )
223
226
ingesterClient .AssertNumberOfCalls (t , testData .method , 3 )
224
- require .Equal (t , 2 , cnt )
227
+ require .Equal (t , int32 ( 2 ) , cnt . Load () )
225
228
if retErr {
226
229
require .ErrorContains (t , err , testData .method + " failed" )
227
230
} else {
0 commit comments