Skip to content

Commit 2b5f826

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

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

+469
-249
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: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ func TestBuildContainerFromDockerfileWithDockerAuthConfig(t *testing.T) {
198198
// using the same credentials as in the Docker Registry
199199
setAuthConfig(t, registryHost, "testuser", "testpassword")
200200

201-
ctx := context.Background()
201+
ctx := t.Context()
202202

203203
redisC, err := Run(ctx, "",
204204
WithDockerfile(FromDockerfile{
@@ -223,7 +223,7 @@ func TestBuildContainerFromDockerfileShouldFailWithWrongDockerAuthConfig(t *test
223223
// using different credentials than in the Docker Registry
224224
setAuthConfig(t, registryHost, "foo", "bar")
225225

226-
ctx := context.Background()
226+
ctx := t.Context()
227227

228228
redisC, err := Run(ctx, "",
229229
WithDockerfile(FromDockerfile{
@@ -247,7 +247,7 @@ func TestCreateContainerFromPrivateRegistry(t *testing.T) {
247247
// using the same credentials as in the Docker Registry
248248
setAuthConfig(t, registryHost, "testuser", "testpassword")
249249

250-
ctx := context.Background()
250+
ctx := t.Context()
251251

252252
redisContainer, err := Run(ctx, registryHost+"/redis:5.0-alpine", WithAlwaysPull(), WithExposedPorts("6379/tcp"), WithWaitStrategy(wait.ForLog("Ready to accept connections")))
253253
CleanupContainer(t, redisContainer)
@@ -256,7 +256,7 @@ func TestCreateContainerFromPrivateRegistry(t *testing.T) {
256256

257257
func prepareLocalRegistryWithAuth(t *testing.T) string {
258258
t.Helper()
259-
ctx := context.Background()
259+
ctx := t.Context()
260260
wd, err := os.Getwd()
261261
require.NoError(t, err)
262262
// copyDirectoryToContainer {
@@ -338,8 +338,10 @@ func localAddress(t *testing.T) string {
338338
if os.Getenv("WSL_DISTRO_NAME") == "" {
339339
return "localhost"
340340
}
341+
ctx := context.Background()
341342

342-
conn, err := net.Dial("udp", "golang.org:80")
343+
d := &net.Dialer{}
344+
conn, err := d.DialContext(ctx, "udp", "golang.org:80")
343345
require.NoError(t, err)
344346
defer conn.Close()
345347

docker_test.go

Lines changed: 59 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,12 @@ 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+
resp, err := http.DefaultClient.Do(req)
8588
require.NoErrorf(t, err, "Expected OK response")
89+
require.NoError(t, resp.Body.Close())
8690
}
8791

8892
func TestContainerWithHostNetworkOptions_UseExposePortsFromImageConfigs(t *testing.T) {
@@ -103,11 +107,14 @@ func TestContainerWithHostNetworkOptions_UseExposePortsFromImageConfigs(t *testi
103107
endpoint, err := nginxC.Endpoint(ctx, "http")
104108
require.NoErrorf(t, err, "Expected server endpoint")
105109

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

110116
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
117+
require.NoError(t, resp.Body.Close())
111118
}
112119

113120
func TestContainerWithHostNetwork(t *testing.T) {
@@ -140,14 +147,22 @@ func TestContainerWithHostNetwork(t *testing.T) {
140147
require.NoErrorf(t, err, "Expected port endpoint %s", portEndpoint)
141148
t.Log(portEndpoint)
142149

143-
_, err = http.Get(portEndpoint)
150+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, portEndpoint, http.NoBody)
151+
require.NoError(t, err)
152+
153+
resp, err := http.DefaultClient.Do(req)
144154
require.NoErrorf(t, err, "Expected OK response")
155+
require.NoError(t, resp.Body.Close())
145156

146157
host, err := nginxC.Host(ctx)
147158
require.NoErrorf(t, err, "Expected host %s", host)
148159

149-
_, err = http.Get("http://" + host + ":8080")
160+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, "http://"+host+":8080", http.NoBody)
161+
require.NoError(t, err)
162+
163+
resp, err = http.DefaultClient.Do(req)
150164
require.NoErrorf(t, err, "Expected OK response")
165+
require.NoError(t, resp.Body.Close())
151166
}
152167

153168
func TestContainerReturnItsContainerID(t *testing.T) {
@@ -318,20 +333,26 @@ func TestTwoContainersExposingTheSamePort(t *testing.T) {
318333
endpointA, err := nginxA.PortEndpoint(ctx, nginxDefaultPort, "http")
319334
require.NoError(t, err)
320335

321-
resp, err := http.Get(endpointA)
336+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpointA, http.NoBody)
337+
require.NoError(t, err)
338+
339+
resp, err := http.DefaultClient.Do(req)
322340
require.NoError(t, err)
323-
defer resp.Body.Close()
324341

325342
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
343+
require.NoError(t, resp.Body.Close())
326344

327345
endpointB, err := nginxB.PortEndpoint(ctx, nginxDefaultPort, "http")
328346
require.NoError(t, err)
329347

330-
resp, err = http.Get(endpointB)
348+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, endpointB, http.NoBody)
349+
require.NoError(t, err)
350+
351+
resp, err = http.DefaultClient.Do(req)
331352
require.NoError(t, err)
332-
defer resp.Body.Close()
333353

334354
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
355+
require.NoError(t, resp.Body.Close())
335356
}
336357

337358
func TestContainerCreation(t *testing.T) {
@@ -347,11 +368,14 @@ func TestContainerCreation(t *testing.T) {
347368
endpoint, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
348369
require.NoError(t, err)
349370

350-
resp, err := http.Get(endpoint)
371+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
372+
require.NoError(t, err)
373+
374+
resp, err := http.DefaultClient.Do(req)
351375
require.NoError(t, err)
352-
defer resp.Body.Close()
353376

354377
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
378+
require.NoError(t, resp.Body.Close())
355379

356380
networkIP, err := nginxC.ContainerIP(ctx)
357381
require.NoError(t, err)
@@ -408,11 +432,14 @@ func TestContainerCreationWithName(t *testing.T) {
408432
endpoint, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
409433
require.NoError(t, err)
410434

411-
resp, err := http.Get(endpoint)
435+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
436+
require.NoError(t, err)
437+
438+
resp, err := http.DefaultClient.Do(req)
412439
require.NoError(t, err)
413-
defer resp.Body.Close()
414440

415441
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
442+
require.NoError(t, resp.Body.Close())
416443
}
417444

418445
func TestContainerCreationAndWaitForListeningPortLongEnough(t *testing.T) {
@@ -428,11 +455,15 @@ func TestContainerCreationAndWaitForListeningPortLongEnough(t *testing.T) {
428455

429456
origin, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
430457
require.NoError(t, err)
431-
resp, err := http.Get(origin)
458+
459+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, origin, http.NoBody)
460+
require.NoError(t, err)
461+
462+
resp, err := http.DefaultClient.Do(req)
432463
require.NoError(t, err)
433-
defer resp.Body.Close()
434464

435465
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
466+
require.NoError(t, resp.Body.Close())
436467
}
437468

438469
func TestContainerCreationTimesOut(t *testing.T) {
@@ -459,11 +490,15 @@ func TestContainerRespondsWithHttp200ForIndex(t *testing.T) {
459490

460491
origin, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
461492
require.NoError(t, err)
462-
resp, err := http.Get(origin)
493+
494+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, origin, http.NoBody)
495+
require.NoError(t, err)
496+
497+
resp, err := http.DefaultClient.Do(req)
463498
require.NoError(t, err)
464-
defer resp.Body.Close()
465499

466500
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
501+
require.NoError(t, resp.Body.Close())
467502
}
468503

469504
func TestContainerCreationTimesOutWithHttp(t *testing.T) {
@@ -529,14 +564,17 @@ func Test_BuildContainerFromDockerfileWithBuildArgs(t *testing.T) {
529564
ep, err := c.Endpoint(ctx, "http")
530565
require.NoError(t, err)
531566

532-
resp, err := http.Get(ep + "/env")
567+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, ep+"/env", http.NoBody)
568+
require.NoError(t, err)
569+
570+
resp, err := http.DefaultClient.Do(req)
533571
require.NoError(t, err)
534-
defer resp.Body.Close()
535572

536573
body, err := io.ReadAll(resp.Body)
537574
require.NoError(t, err)
538575
require.Equal(t, http.StatusAccepted, resp.StatusCode)
539576
require.Equal(t, ba, string(body))
577+
require.NoError(t, resp.Body.Close())
540578
}
541579

542580
func Test_BuildContainerFromDockerfileWithBuildLog(t *testing.T) {
@@ -844,7 +882,8 @@ func ExampleContainer_MappedPort() {
844882
// buildingAddresses {
845883
ip, _ := nginxC.Host(ctx)
846884
port, _ := nginxC.MappedPort(ctx, "80")
847-
_, _ = http.Get(fmt.Sprintf("http://%s:%s", ip, port.Port()))
885+
req, _ := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("http://%s:%s", ip, port.Port()), http.NoBody)
886+
_, _ = http.DefaultClient.Do(req)
848887
// }
849888

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

docs/features/creating_container.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ import (
6767
"net/http"
6868
"testing"
6969
70+
"github.com/stretchr/testify/require"
7071
"github.com/testcontainers/testcontainers-go"
7172
"github.com/testcontainers/testcontainers-go/wait"
7273
)
@@ -126,8 +127,14 @@ func TestIntegrationNginxLatestReturn(t *testing.T) {
126127
testcontainers.CleanupContainer(t, nginxC)
127128
require.NoError(t, err)
128129
129-
resp, err := http.Get(nginxC.URI)
130+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, nginxC.URI, http.NoBody)
131+
require.NoError(t, err)
132+
133+
resp, err := http.DefaultClient.Do(req)
134+
require.NoError(t, err)
135+
130136
require.Equal(t, http.StatusOK, resp.StatusCode)
137+
require.NoError(t, resp.Body.Close())
131138
}
132139
```
133140

examples/nginx/nginx_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ 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)
2525
require.NoError(t, err)
26+
27+
resp, err := http.DefaultClient.Do(req)
28+
require.NoError(t, err)
29+
2630
require.Equal(t, http.StatusOK, resp.StatusCode)
31+
require.NoError(t, resp.Body.Close())
2732
}

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")

0 commit comments

Comments
 (0)