Skip to content

Commit 2e5181a

Browse files
authored
core/internal/cltest: fix mock server race (#21913)
1 parent 7dffc86 commit 2e5181a

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

core/internal/cltest/mocks.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"net/http"
88
"net/http/httptest"
99
"sync"
10+
"sync/atomic"
1011
"testing"
1112
"time"
1213

@@ -168,15 +169,15 @@ func NewHTTPMockServer(
168169
response string,
169170
callback ...func(http.Header, string),
170171
) *httptest.Server {
171-
called := false
172+
var called atomic.Bool
172173
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
173174
b, err := io.ReadAll(r.Body)
174175
assert.NoError(t, err)
175176
assert.Equal(t, wantMethod, r.Method)
176177
if len(callback) > 0 {
177178
callback[0](r.Header, string(b))
178179
}
179-
called = true
180+
called.Store(true)
180181

181182
w.WriteHeader(status)
182183
_, _ = io.WriteString(w, response) // Assignment for errcheck. Only used in tests so we can ignore.
@@ -185,7 +186,7 @@ func NewHTTPMockServer(
185186
server := httptest.NewServer(handler)
186187
t.Cleanup(func() {
187188
server.Close()
188-
assert.True(t, called, "expected call Mock HTTP endpoint '%s'", server.URL)
189+
assert.True(t, called.Load(), "expected call Mock HTTP endpoint '%s'", server.URL)
189190
})
190191
return server
191192
}

0 commit comments

Comments
 (0)