Skip to content

Commit e512683

Browse files
committed
chore: enable noctx linter
Signed-off-by: Matthieu MOREL <[email protected]>
1 parent 7eb93bb commit e512683

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+380
-198
lines changed

.golangci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ linters:
1414
- gocritic
1515
- misspell
1616
- nakedret
17+
- noctx
1718
- nolintlint
1819
- perfsprint
1920
- revive

docker_auth_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,8 @@ func localAddress(t *testing.T) string {
339339
return "localhost"
340340
}
341341

342-
conn, err := net.Dial("udp", "golang.org:80")
342+
d := &net.Dialer{}
343+
conn, err := d.DialContext(t.Context(), "udp", "golang.org:80")
343344
require.NoError(t, err)
344345
defer conn.Close()
345346

docker_test.go

Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ func TestContainerWithHostNetworkOptions(t *testing.T) {
8181
endpoint, err := nginxC.PortEndpoint(ctx, nginxHighPort, "http")
8282
require.NoErrorf(t, err, "Expected server endpoint")
8383

84-
_, err = http.Get(endpoint)
84+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
85+
require.NoError(t, err)
86+
87+
_, err = http.DefaultClient.Do(req)
8588
require.NoErrorf(t, err, "Expected OK response")
8689
}
8790

@@ -103,10 +106,13 @@ func TestContainerWithHostNetworkOptions_UseExposePortsFromImageConfigs(t *testi
103106
endpoint, err := nginxC.Endpoint(ctx, "http")
104107
require.NoErrorf(t, err, "Expected server endpoint")
105108

106-
resp, err := http.Get(endpoint)
109+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
110+
require.NoError(t, err)
111+
112+
resp, err := http.DefaultClient.Do(req)
107113
require.NoError(t, err)
108-
defer resp.Body.Close()
109114

115+
defer resp.Body.Close()
110116
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
111117
}
112118

@@ -140,13 +146,19 @@ func TestContainerWithHostNetwork(t *testing.T) {
140146
require.NoErrorf(t, err, "Expected port endpoint %s", portEndpoint)
141147
t.Log(portEndpoint)
142148

143-
_, err = http.Get(portEndpoint)
149+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, portEndpoint, http.NoBody)
150+
require.NoError(t, err)
151+
152+
_, err = http.DefaultClient.Do(req)
144153
require.NoErrorf(t, err, "Expected OK response")
145154

146155
host, err := nginxC.Host(ctx)
147156
require.NoErrorf(t, err, "Expected host %s", host)
148157

149-
_, err = http.Get("http://" + host + ":8080")
158+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, "http://"+host+":8080", http.NoBody)
159+
require.NoError(t, err)
160+
161+
_, err = http.DefaultClient.Do(req)
150162
require.NoErrorf(t, err, "Expected OK response")
151163
}
152164

@@ -318,19 +330,25 @@ func TestTwoContainersExposingTheSamePort(t *testing.T) {
318330
endpointA, err := nginxA.PortEndpoint(ctx, nginxDefaultPort, "http")
319331
require.NoError(t, err)
320332

321-
resp, err := http.Get(endpointA)
333+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpointA, http.NoBody)
322334
require.NoError(t, err)
323-
defer resp.Body.Close()
324335

336+
resp, err := http.DefaultClient.Do(req)
337+
require.NoError(t, err)
338+
339+
defer resp.Body.Close()
325340
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
326341

327342
endpointB, err := nginxB.PortEndpoint(ctx, nginxDefaultPort, "http")
328343
require.NoError(t, err)
329344

330-
resp, err = http.Get(endpointB)
345+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, endpointB, http.NoBody)
346+
require.NoError(t, err)
347+
348+
resp, err = http.DefaultClient.Do(req)
331349
require.NoError(t, err)
332-
defer resp.Body.Close()
333350

351+
defer resp.Body.Close()
334352
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
335353
}
336354

@@ -347,7 +365,10 @@ func TestContainerCreation(t *testing.T) {
347365
endpoint, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
348366
require.NoError(t, err)
349367

350-
resp, err := http.Get(endpoint)
368+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
369+
require.NoError(t, err)
370+
371+
resp, err := http.DefaultClient.Do(req)
351372
require.NoError(t, err)
352373
defer resp.Body.Close()
353374

@@ -408,7 +429,10 @@ func TestContainerCreationWithName(t *testing.T) {
408429
endpoint, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
409430
require.NoError(t, err)
410431

411-
resp, err := http.Get(endpoint)
432+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
433+
require.NoError(t, err)
434+
435+
resp, err := http.DefaultClient.Do(req)
412436
require.NoError(t, err)
413437
defer resp.Body.Close()
414438

@@ -428,10 +452,14 @@ func TestContainerCreationAndWaitForListeningPortLongEnough(t *testing.T) {
428452

429453
origin, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
430454
require.NoError(t, err)
431-
resp, err := http.Get(origin)
455+
456+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, origin, http.NoBody)
457+
require.NoError(t, err)
458+
459+
resp, err := http.DefaultClient.Do(req)
432460
require.NoError(t, err)
433-
defer resp.Body.Close()
434461

462+
defer resp.Body.Close()
435463
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
436464
}
437465

@@ -459,10 +487,14 @@ func TestContainerRespondsWithHttp200ForIndex(t *testing.T) {
459487

460488
origin, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
461489
require.NoError(t, err)
462-
resp, err := http.Get(origin)
490+
491+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, origin, http.NoBody)
492+
require.NoError(t, err)
493+
494+
resp, err := http.DefaultClient.Do(req)
463495
require.NoError(t, err)
464-
defer resp.Body.Close()
465496

497+
defer resp.Body.Close()
466498
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
467499
}
468500

@@ -529,8 +561,12 @@ func Test_BuildContainerFromDockerfileWithBuildArgs(t *testing.T) {
529561
ep, err := c.Endpoint(ctx, "http")
530562
require.NoError(t, err)
531563

532-
resp, err := http.Get(ep + "/env")
564+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, ep+"/env", http.NoBody)
565+
require.NoError(t, err)
566+
567+
resp, err := http.DefaultClient.Do(req)
533568
require.NoError(t, err)
569+
534570
defer resp.Body.Close()
535571

536572
body, err := io.ReadAll(resp.Body)
@@ -844,7 +880,8 @@ func ExampleContainer_MappedPort() {
844880
// buildingAddresses {
845881
ip, _ := nginxC.Host(ctx)
846882
port, _ := nginxC.MappedPort(ctx, "80")
847-
_, _ = http.Get(fmt.Sprintf("http://%s:%s", ip, port.Port()))
883+
req, _ := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("http://%s:%s", ip, port.Port()), http.NoBody)
884+
_, _ = http.DefaultClient.Do(req)
848885
// }
849886

850887
state, err := nginxC.State(ctx)

docs/features/creating_container.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,10 @@ func TestIntegrationNginxLatestReturn(t *testing.T) {
126126
testcontainers.CleanupContainer(t, nginxC)
127127
require.NoError(t, err)
128128
129-
resp, err := http.Get(nginxC.URI)
129+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, nginxC.URI, http.NoBody)
130+
require.NoError(t, err)
131+
132+
resp, err := http.DefaultClient.Do(req)
130133
require.Equal(t, http.StatusOK, resp.StatusCode)
131134
}
132135
```

examples/nginx/nginx_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ func TestIntegrationNginxLatestReturn(t *testing.T) {
2121
testcontainers.CleanupContainer(t, nginxC)
2222
require.NoError(t, err)
2323

24-
resp, err := http.Get(nginxC.URI)
24+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, nginxC.URI, http.NoBody)
25+
require.NoError(t, err)
26+
27+
resp, err := http.DefaultClient.Do(req)
2528
require.NoError(t, err)
2629
require.Equal(t, http.StatusOK, resp.StatusCode)
2730
}

generic_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ func TestGenericReusableContainerInSubprocess(t *testing.T) {
152152
func createReuseContainerInSubprocess(t *testing.T) string {
153153
t.Helper()
154154
// force verbosity in subprocesses, so that the output is printed
155-
cmd := exec.Command(os.Args[0], "-test.run=TestHelperContainerStarterProcess", "-test.v=true")
155+
cmd := exec.CommandContext(t.Context(), os.Args[0], "-test.run=TestHelperContainerStarterProcess", "-test.v=true")
156156
cmd.Env = append(os.Environ(), "GO_WANT_HELPER_PROCESS=1")
157157

158158
output, err := cmd.CombinedOutput()

internal/core/docker_host.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ var (
4444
// see https://github.com/testcontainers/testcontainers-java/blob/main/core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java#L46
4545
func DefaultGatewayIP() (string, error) {
4646
// see https://github.com/testcontainers/testcontainers-java/blob/3ad8d80e2484864e554744a4800a81f6b7982168/core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java#L27
47-
cmd := exec.Command("sh", "-c", "ip route|awk '/default/ { print $3 }'")
47+
cmd := exec.CommandContext(context.Background(), "sh", "-c", "ip route|awk '/default/ { print $3 }'")
4848
stdout, err := cmd.Output()
4949
if err != nil {
5050
return "", errors.New("failed to detect docker host")

logconsumer_test.go

Lines changed: 60 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,22 @@ func Test_LogConsumerGetsCalled(t *testing.T) {
9595
ep, err := c.Endpoint(ctx, "http")
9696
require.NoError(t, err)
9797

98-
_, err = http.Get(ep + "/stdout?echo=hello")
98+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo=hello", http.NoBody)
9999
require.NoError(t, err)
100100

101-
_, err = http.Get(ep + "/stdout?echo=there")
101+
_, err = http.DefaultClient.Do(req)
102102
require.NoError(t, err)
103103

104-
_, err = http.Get(ep + "/stdout?echo=" + lastMessage)
104+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo=there", http.NoBody)
105+
require.NoError(t, err)
106+
107+
_, err = http.DefaultClient.Do(req)
108+
require.NoError(t, err)
109+
110+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo="+lastMessage, http.NoBody)
111+
require.NoError(t, err)
112+
113+
_, err = http.DefaultClient.Do(req)
105114
require.NoError(t, err)
106115

107116
select {
@@ -154,13 +163,22 @@ func Test_ShouldRecognizeLogTypes(t *testing.T) {
154163
ep, err := c.Endpoint(ctx, "http")
155164
require.NoError(t, err)
156165

157-
_, err = http.Get(ep + "/stdout?echo=this-is-stdout")
166+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo=this-is-stdout", http.NoBody)
167+
require.NoError(t, err)
168+
169+
_, err = http.DefaultClient.Do(req)
158170
require.NoError(t, err)
159171

160-
_, err = http.Get(ep + "/stderr?echo=this-is-stderr")
172+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stderr?echo=this-is-stderr", http.NoBody)
161173
require.NoError(t, err)
162174

163-
_, err = http.Get(ep + "/stdout?echo=" + lastMessage)
175+
_, err = http.DefaultClient.Do(req)
176+
require.NoError(t, err)
177+
178+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo="+lastMessage, http.NoBody)
179+
require.NoError(t, err)
180+
181+
_, err = http.DefaultClient.Do(req)
164182
require.NoError(t, err)
165183

166184
<-g.Ack
@@ -204,10 +222,16 @@ func Test_MultipleLogConsumers(t *testing.T) {
204222
ep, err := c.Endpoint(ctx, "http")
205223
require.NoError(t, err)
206224

207-
_, err = http.Get(ep + "/stdout?echo=mlem")
225+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo=mlem", http.NoBody)
226+
require.NoError(t, err)
227+
228+
_, err = http.DefaultClient.Do(req)
229+
require.NoError(t, err)
230+
231+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo="+lastMessage, http.NoBody)
208232
require.NoError(t, err)
209233

210-
_, err = http.Get(ep + "/stdout?echo=" + lastMessage)
234+
_, err = http.DefaultClient.Do(req)
211235
require.NoError(t, err)
212236

213237
<-first.Done
@@ -412,13 +436,22 @@ func TestContainerLogsEnableAtStart(t *testing.T) {
412436
ep, err := c.Endpoint(ctx, "http")
413437
require.NoError(t, err)
414438

415-
_, err = http.Get(ep + "/stdout?echo=hello")
439+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo=hello", http.NoBody)
440+
require.NoError(t, err)
441+
442+
_, err = http.DefaultClient.Do(req)
443+
require.NoError(t, err)
444+
445+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo=there", http.NoBody)
446+
require.NoError(t, err)
447+
448+
_, err = http.DefaultClient.Do(req)
416449
require.NoError(t, err)
417450

418-
_, err = http.Get(ep + "/stdout?echo=there")
451+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep+"/stdout?echo="+lastMessage, http.NoBody)
419452
require.NoError(t, err)
420453

421-
_, err = http.Get(ep + "/stdout?echo=" + lastMessage)
454+
_, err = http.DefaultClient.Do(req)
422455
require.NoError(t, err)
423456

424457
select {
@@ -554,10 +587,16 @@ func Test_MultiContainerLogConsumer_CancelledContext(t *testing.T) {
554587
ep1, err := c.Endpoint(ctx, "http")
555588
require.NoError(t, err)
556589

557-
_, err = http.Get(ep1 + "/stdout?echo=hello1")
590+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, ep1+"/stdout?echo=hello1", http.NoBody)
558591
require.NoError(t, err)
559592

560-
_, err = http.Get(ep1 + "/stdout?echo=there1")
593+
_, err = http.DefaultClient.Do(req)
594+
require.NoError(t, err)
595+
596+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep1+"/stdout?echo=there1", http.NoBody)
597+
require.NoError(t, err)
598+
599+
_, err = http.DefaultClient.Do(req)
561600
require.NoError(t, err)
562601

563602
second := TestLogConsumer{
@@ -585,10 +624,16 @@ func Test_MultiContainerLogConsumer_CancelledContext(t *testing.T) {
585624
ep2, err := c2.Endpoint(ctx, "http")
586625
require.NoError(t, err)
587626

588-
_, err = http.Get(ep2 + "/stdout?echo=hello2")
627+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep2+"/stdout?echo=hello2", http.NoBody)
628+
require.NoError(t, err)
629+
630+
_, err = http.DefaultClient.Do(req)
631+
require.NoError(t, err)
632+
633+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, ep2+"/stdout?echo=there2", http.NoBody)
589634
require.NoError(t, err)
590635

591-
_, err = http.Get(ep2 + "/stdout?echo=there2")
636+
_, err = http.DefaultClient.Do(req)
592637
require.NoError(t, err)
593638

594639
// Deliberately calling context cancel

0 commit comments

Comments
 (0)