Browse code

integration-cli: DockerCLIPortSuite: replace dockerCmd and waitRun

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Sebastiaan van Stijn authored on 2023/07/28 05:11:27
Showing 1 changed files
... ...
@@ -9,6 +9,7 @@ import (
9 9
 	"strings"
10 10
 	"testing"
11 11
 
12
+	"github.com/docker/docker/integration-cli/cli"
12 13
 	"github.com/docker/docker/testutil"
13 14
 	"gotest.tools/v3/assert"
14 15
 	is "gotest.tools/v3/assert/cmp"
... ...
@@ -31,32 +32,33 @@ func (s *DockerCLIPortSuite) TestPortList(c *testing.T) {
31 31
 	ctx := testutil.GetContext(c)
32 32
 
33 33
 	// one port
34
-	out, _ := dockerCmd(c, "run", "-d", "-p", "9876:80", "busybox", "top")
35
-	firstID := strings.TrimSpace(out)
34
+	firstID := cli.DockerCmd(c, "run", "-d", "-p", "9876:80", "busybox", "top").Stdout()
35
+	firstID = strings.TrimSpace(firstID)
36 36
 
37
-	out, _ = dockerCmd(c, "port", firstID, "80")
37
+	out := cli.DockerCmd(c, "port", firstID, "80").Stdout()
38 38
 
39 39
 	assertPortList(c, out, []string{"0.0.0.0:9876", "[::]:9876"})
40 40
 
41
-	out, _ = dockerCmd(c, "port", firstID)
41
+	out = cli.DockerCmd(c, "port", firstID).Stdout()
42 42
 
43 43
 	assertPortList(c, out, []string{"80/tcp -> 0.0.0.0:9876", "80/tcp -> [::]:9876"})
44 44
 
45
-	dockerCmd(c, "rm", "-f", firstID)
45
+	cli.DockerCmd(c, "rm", "-f", firstID)
46 46
 
47 47
 	// three port
48
-	out, _ = dockerCmd(c, "run", "-d",
48
+	id := cli.DockerCmd(c, "run", "-d",
49 49
 		"-p", "9876:80",
50 50
 		"-p", "9877:81",
51 51
 		"-p", "9878:82",
52
-		"busybox", "top")
53
-	ID := strings.TrimSpace(out)
52
+		"busybox", "top",
53
+	).Stdout()
54
+	id = strings.TrimSpace(id)
54 55
 
55
-	out, _ = dockerCmd(c, "port", ID, "80")
56
+	out = cli.DockerCmd(c, "port", id, "80").Stdout()
56 57
 
57 58
 	assertPortList(c, out, []string{"0.0.0.0:9876", "[::]:9876"})
58 59
 
59
-	out, _ = dockerCmd(c, "port", ID)
60
+	out = cli.DockerCmd(c, "port", id).Stdout()
60 61
 
61 62
 	assertPortList(c, out, []string{
62 63
 		"80/tcp -> 0.0.0.0:9876",
... ...
@@ -67,22 +69,23 @@ func (s *DockerCLIPortSuite) TestPortList(c *testing.T) {
67 67
 		"82/tcp -> [::]:9878",
68 68
 	})
69 69
 
70
-	dockerCmd(c, "rm", "-f", ID)
70
+	cli.DockerCmd(c, "rm", "-f", id)
71 71
 
72 72
 	// more and one port mapped to the same container port
73
-	out, _ = dockerCmd(c, "run", "-d",
73
+	id = cli.DockerCmd(c, "run", "-d",
74 74
 		"-p", "9876:80",
75 75
 		"-p", "9999:80",
76 76
 		"-p", "9877:81",
77 77
 		"-p", "9878:82",
78
-		"busybox", "top")
79
-	ID = strings.TrimSpace(out)
78
+		"busybox", "top",
79
+	).Stdout()
80
+	id = strings.TrimSpace(id)
80 81
 
81
-	out, _ = dockerCmd(c, "port", ID, "80")
82
+	out = cli.DockerCmd(c, "port", id, "80").Stdout()
82 83
 
83 84
 	assertPortList(c, out, []string{"0.0.0.0:9876", "[::]:9876", "0.0.0.0:9999", "[::]:9999"})
84 85
 
85
-	out, _ = dockerCmd(c, "port", ID)
86
+	out = cli.DockerCmd(c, "port", id).Stdout()
86 87
 
87 88
 	assertPortList(c, out, []string{
88 89
 		"80/tcp -> 0.0.0.0:9876",
... ...
@@ -94,16 +97,16 @@ func (s *DockerCLIPortSuite) TestPortList(c *testing.T) {
94 94
 		"82/tcp -> 0.0.0.0:9878",
95 95
 		"82/tcp -> [::]:9878",
96 96
 	})
97
-	dockerCmd(c, "rm", "-f", ID)
97
+	cli.DockerCmd(c, "rm", "-f", id)
98 98
 
99 99
 	testRange := func() {
100 100
 		// host port ranges used
101 101
 		IDs := make([]string, 3)
102 102
 		for i := 0; i < 3; i++ {
103
-			out, _ = dockerCmd(c, "run", "-d", "-p", "9090-9092:80", "busybox", "top")
103
+			out = cli.DockerCmd(c, "run", "-d", "-p", "9090-9092:80", "busybox", "top").Stdout()
104 104
 			IDs[i] = strings.TrimSpace(out)
105 105
 
106
-			out, _ = dockerCmd(c, "port", IDs[i])
106
+			out = cli.DockerCmd(c, "port", IDs[i]).Stdout()
107 107
 
108 108
 			assertPortList(c, out, []string{
109 109
 				fmt.Sprintf("80/tcp -> 0.0.0.0:%d", 9090+i),
... ...
@@ -117,7 +120,7 @@ func (s *DockerCLIPortSuite) TestPortList(c *testing.T) {
117 117
 		assert.Assert(c, err != nil, "out: %s", out)
118 118
 
119 119
 		for i := 0; i < 3; i++ {
120
-			dockerCmd(c, "rm", "-f", IDs[i])
120
+			cli.DockerCmd(c, "rm", "-f", IDs[i])
121 121
 		}
122 122
 	}
123 123
 	testRange()
... ...
@@ -132,10 +135,10 @@ func (s *DockerCLIPortSuite) TestPortList(c *testing.T) {
132 132
 	}
133 133
 
134 134
 	// test host range:container range spec.
135
-	out, _ = dockerCmd(c, "run", "-d", "-p", "9800-9803:80-83", "busybox", "top")
136
-	ID = strings.TrimSpace(out)
135
+	id = cli.DockerCmd(c, "run", "-d", "-p", "9800-9803:80-83", "busybox", "top").Stdout()
136
+	id = strings.TrimSpace(id)
137 137
 
138
-	out, _ = dockerCmd(c, "port", ID)
138
+	out = cli.DockerCmd(c, "port", id).Stdout()
139 139
 
140 140
 	assertPortList(c, out, []string{
141 141
 		"80/tcp -> 0.0.0.0:9800",
... ...
@@ -147,17 +150,17 @@ func (s *DockerCLIPortSuite) TestPortList(c *testing.T) {
147 147
 		"83/tcp -> 0.0.0.0:9803",
148 148
 		"83/tcp -> [::]:9803",
149 149
 	})
150
-	dockerCmd(c, "rm", "-f", ID)
150
+	cli.DockerCmd(c, "rm", "-f", id)
151 151
 
152 152
 	// test mixing protocols in same port range
153
-	out, _ = dockerCmd(c, "run", "-d", "-p", "8000-8080:80", "-p", "8000-8080:80/udp", "busybox", "top")
154
-	ID = strings.TrimSpace(out)
155
-
156
-	out, _ = dockerCmd(c, "port", ID)
153
+	id = cli.DockerCmd(c, "run", "-d", "-p", "8000-8080:80", "-p", "8000-8080:80/udp", "busybox", "top").Stdout()
154
+	id = strings.TrimSpace(id)
157 155
 
156
+	out = cli.DockerCmd(c, "port", id).Stdout()
158 157
 	// Running this test multiple times causes the TCP port to increment.
159
-	assertPortRange(ctx, ID, []int{8000, 8080}, []int{8000, 8080})
160
-	dockerCmd(c, "rm", "-f", ID)
158
+	err := assertPortRange(ctx, id, []int{8000, 8080}, []int{8000, 8080})
159
+	assert.Check(c, err)
160
+	cli.DockerCmd(c, "rm", "-f", id)
161 161
 }
162 162
 
163 163
 func assertPortList(c *testing.T, out string, expected []string) {
... ...
@@ -231,7 +234,7 @@ func assertPortRange(ctx context.Context, id string, expectedTCP, expectedUDP []
231 231
 }
232 232
 
233 233
 func stopRemoveContainer(id string, c *testing.T) {
234
-	dockerCmd(c, "rm", "-f", id)
234
+	cli.DockerCmd(c, "rm", "-f", id)
235 235
 }
236 236
 
237 237
 func (s *DockerCLIPortSuite) TestUnpublishedPortsInPsOutput(c *testing.T) {
... ...
@@ -241,23 +244,23 @@ func (s *DockerCLIPortSuite) TestUnpublishedPortsInPsOutput(c *testing.T) {
241 241
 	port2 := 443
242 242
 	expose1 := fmt.Sprintf("--expose=%d", port1)
243 243
 	expose2 := fmt.Sprintf("--expose=%d", port2)
244
-	dockerCmd(c, "run", "-d", expose1, expose2, "busybox", "sleep", "5")
244
+	cli.DockerCmd(c, "run", "-d", expose1, expose2, "busybox", "sleep", "5")
245 245
 
246 246
 	// Check docker ps o/p for last created container reports the unpublished ports
247 247
 	unpPort1 := fmt.Sprintf("%d/tcp", port1)
248 248
 	unpPort2 := fmt.Sprintf("%d/tcp", port2)
249
-	out, _ := dockerCmd(c, "ps", "-n=1")
249
+	out := cli.DockerCmd(c, "ps", "-n=1").Stdout()
250 250
 	// Missing unpublished ports in docker ps output
251 251
 	assert.Assert(c, strings.Contains(out, unpPort1))
252 252
 	// Missing unpublished ports in docker ps output
253 253
 	assert.Assert(c, strings.Contains(out, unpPort2))
254 254
 	// Run the container forcing to publish the exposed ports
255
-	dockerCmd(c, "run", "-d", "-P", expose1, expose2, "busybox", "sleep", "5")
255
+	cli.DockerCmd(c, "run", "-d", "-P", expose1, expose2, "busybox", "sleep", "5")
256 256
 
257 257
 	// Check docker ps o/p for last created container reports the exposed ports in the port bindings
258 258
 	expBndRegx1 := regexp.MustCompile(`0.0.0.0:\d\d\d\d\d->` + unpPort1)
259 259
 	expBndRegx2 := regexp.MustCompile(`0.0.0.0:\d\d\d\d\d->` + unpPort2)
260
-	out, _ = dockerCmd(c, "ps", "-n=1")
260
+	out = cli.DockerCmd(c, "ps", "-n=1").Stdout()
261 261
 	// Cannot find expected port binding port (0.0.0.0:xxxxx->unpPort1) in docker ps output
262 262
 	assert.Equal(c, expBndRegx1.MatchString(out), true, fmt.Sprintf("out: %s; unpPort1: %s", out, unpPort1))
263 263
 	// Cannot find expected port binding port (0.0.0.0:xxxxx->unpPort2) in docker ps output
... ...
@@ -267,13 +270,14 @@ func (s *DockerCLIPortSuite) TestUnpublishedPortsInPsOutput(c *testing.T) {
267 267
 	offset := 10000
268 268
 	pFlag1 := fmt.Sprintf("%d:%d", offset+port1, port1)
269 269
 	pFlag2 := fmt.Sprintf("%d:%d", offset+port2, port2)
270
-	out, _ = dockerCmd(c, "run", "-d", "-p", pFlag1, "-p", pFlag2, expose1, expose2, "busybox", "sleep", "5")
271
-	id := strings.TrimSpace(out)
270
+
271
+	id := cli.DockerCmd(c, "run", "-d", "-p", pFlag1, "-p", pFlag2, expose1, expose2, "busybox", "sleep", "5").Stdout()
272
+	id = strings.TrimSpace(id)
272 273
 
273 274
 	// Check docker ps o/p for last created container reports the specified port mappings
274 275
 	expBnd1 := fmt.Sprintf("0.0.0.0:%d->%s", offset+port1, unpPort1)
275 276
 	expBnd2 := fmt.Sprintf("0.0.0.0:%d->%s", offset+port2, unpPort2)
276
-	out, _ = dockerCmd(c, "ps", "-n=1")
277
+	out = cli.DockerCmd(c, "ps", "-n=1").Stdout()
277 278
 	// Cannot find expected port binding (expBnd1) in docker ps output
278 279
 	assert.Assert(c, strings.Contains(out, expBnd1))
279 280
 	// Cannot find expected port binding (expBnd2) in docker ps output
... ...
@@ -282,11 +286,11 @@ func (s *DockerCLIPortSuite) TestUnpublishedPortsInPsOutput(c *testing.T) {
282 282
 	stopRemoveContainer(id, c)
283 283
 
284 284
 	// Run the container with explicit port bindings and no exposed ports
285
-	out, _ = dockerCmd(c, "run", "-d", "-p", pFlag1, "-p", pFlag2, "busybox", "sleep", "5")
286
-	id = strings.TrimSpace(out)
285
+	id = cli.DockerCmd(c, "run", "-d", "-p", pFlag1, "-p", pFlag2, "busybox", "sleep", "5").Stdout()
286
+	id = strings.TrimSpace(id)
287 287
 
288 288
 	// Check docker ps o/p for last created container reports the specified port mappings
289
-	out, _ = dockerCmd(c, "ps", "-n=1")
289
+	out = cli.DockerCmd(c, "ps", "-n=1").Stdout()
290 290
 	// Cannot find expected port binding (expBnd1) in docker ps output
291 291
 	assert.Assert(c, strings.Contains(out, expBnd1))
292 292
 	// Cannot find expected port binding (expBnd2) in docker ps output
... ...
@@ -295,10 +299,10 @@ func (s *DockerCLIPortSuite) TestUnpublishedPortsInPsOutput(c *testing.T) {
295 295
 	stopRemoveContainer(id, c)
296 296
 
297 297
 	// Run the container with one unpublished exposed port and one explicit port binding
298
-	dockerCmd(c, "run", "-d", expose1, "-p", pFlag2, "busybox", "sleep", "5")
298
+	cli.DockerCmd(c, "run", "-d", expose1, "-p", pFlag2, "busybox", "sleep", "5")
299 299
 
300 300
 	// Check docker ps o/p for last created container reports the specified unpublished port and port mapping
301
-	out, _ = dockerCmd(c, "ps", "-n=1")
301
+	out = cli.DockerCmd(c, "ps", "-n=1").Stdout()
302 302
 	// Missing unpublished exposed ports (unpPort1) in docker ps output
303 303
 	assert.Assert(c, strings.Contains(out, unpPort1))
304 304
 	// Missing port binding (expBnd2) in docker ps output
... ...
@@ -307,16 +311,16 @@ func (s *DockerCLIPortSuite) TestUnpublishedPortsInPsOutput(c *testing.T) {
307 307
 
308 308
 func (s *DockerCLIPortSuite) TestPortHostBinding(c *testing.T) {
309 309
 	testRequires(c, DaemonIsLinux, NotUserNamespace)
310
-	out, _ := dockerCmd(c, "run", "-d", "-p", "9876:80", "busybox", "nc", "-l", "-p", "80")
311
-	firstID := strings.TrimSpace(out)
310
+	firstID := cli.DockerCmd(c, "run", "-d", "-p", "9876:80", "busybox", "nc", "-l", "-p", "80").Stdout()
311
+	firstID = strings.TrimSpace(firstID)
312 312
 
313
-	out, _ = dockerCmd(c, "port", firstID, "80")
313
+	out := cli.DockerCmd(c, "port", firstID, "80").Stdout()
314 314
 
315 315
 	assertPortList(c, out, []string{"0.0.0.0:9876", "[::]:9876"})
316 316
 
317
-	dockerCmd(c, "run", "--net=host", "busybox", "nc", "localhost", "9876")
317
+	cli.DockerCmd(c, "run", "--net=host", "busybox", "nc", "localhost", "9876")
318 318
 
319
-	dockerCmd(c, "rm", "-f", firstID)
319
+	cli.DockerCmd(c, "rm", "-f", firstID)
320 320
 
321 321
 	out, _, err := dockerCmdWithError("run", "--net=host", "busybox", "nc", "localhost", "9876")
322 322
 	// Port is still bound after the Container is removed
... ...
@@ -325,15 +329,14 @@ func (s *DockerCLIPortSuite) TestPortHostBinding(c *testing.T) {
325 325
 
326 326
 func (s *DockerCLIPortSuite) TestPortExposeHostBinding(c *testing.T) {
327 327
 	testRequires(c, DaemonIsLinux, NotUserNamespace)
328
-	out, _ := dockerCmd(c, "run", "-d", "-P", "--expose", "80", "busybox", "nc", "-l", "-p", "80")
329
-	firstID := strings.TrimSpace(out)
330
-
331
-	out, _ = dockerCmd(c, "inspect", "--format", `{{index .NetworkSettings.Ports "80/tcp" 0 "HostPort" }}`, firstID)
328
+	firstID := cli.DockerCmd(c, "run", "-d", "-P", "--expose", "80", "busybox", "nc", "-l", "-p", "80").Stdout()
329
+	firstID = strings.TrimSpace(firstID)
332 330
 
333
-	exposedPort := strings.TrimSpace(out)
334
-	dockerCmd(c, "run", "--net=host", "busybox", "nc", "127.0.0.1", exposedPort)
331
+	exposedPort := cli.DockerCmd(c, "inspect", "--format", `{{index .NetworkSettings.Ports "80/tcp" 0 "HostPort" }}`, firstID).Stdout()
332
+	exposedPort = strings.TrimSpace(exposedPort)
333
+	cli.DockerCmd(c, "run", "--net=host", "busybox", "nc", "127.0.0.1", exposedPort)
335 334
 
336
-	dockerCmd(c, "rm", "-f", firstID)
335
+	cli.DockerCmd(c, "rm", "-f", firstID)
337 336
 
338 337
 	out, _, err := dockerCmdWithError("run", "--net=host", "busybox", "nc", "127.0.0.1", exposedPort)
339 338
 	// Port is still bound after the Container is removed
... ...
@@ -342,19 +345,18 @@ func (s *DockerCLIPortSuite) TestPortExposeHostBinding(c *testing.T) {
342 342
 
343 343
 func (s *DockerCLIPortSuite) TestPortBindingOnSandbox(c *testing.T) {
344 344
 	testRequires(c, DaemonIsLinux, NotUserNamespace)
345
-	dockerCmd(c, "network", "create", "--internal", "-d", "bridge", "internal-net")
345
+	cli.DockerCmd(c, "network", "create", "--internal", "-d", "bridge", "internal-net")
346 346
 	nr := getNetworkResource(c, "internal-net")
347 347
 	assert.Equal(c, nr.Internal, true)
348 348
 
349
-	dockerCmd(c, "run", "--net", "internal-net", "-d", "--name", "c1",
350
-		"-p", "8080:8080", "busybox", "nc", "-l", "-p", "8080")
351
-	assert.Assert(c, waitRun("c1") == nil)
349
+	cli.DockerCmd(c, "run", "--net", "internal-net", "-d", "--name", "c1", "-p", "8080:8080", "busybox", "nc", "-l", "-p", "8080")
350
+	cli.WaitRun(c, "c1")
352 351
 
353 352
 	_, _, err := dockerCmdWithError("run", "--net=host", "busybox", "nc", "localhost", "8080")
354 353
 	assert.Assert(c, err != nil, "Port mapping on internal network is expected to fail")
355 354
 	// Connect container to another normal bridge network
356
-	dockerCmd(c, "network", "create", "-d", "bridge", "foo-net")
357
-	dockerCmd(c, "network", "connect", "foo-net", "c1")
355
+	cli.DockerCmd(c, "network", "create", "-d", "bridge", "foo-net")
356
+	cli.DockerCmd(c, "network", "connect", "foo-net", "c1")
358 357
 
359 358
 	_, _, err = dockerCmdWithError("run", "--net=host", "busybox", "nc", "localhost", "8080")
360 359
 	assert.Assert(c, err == nil, "Port mapping on the new network is expected to succeed")