Browse code

Merge pull request #38417 from thaJeztah/replace_newclient

Test: Replace NewClient() with NewClientT()

Yong Tang authored on 2019/01/05 16:37:00
Showing 19 changed files
... ...
@@ -67,8 +67,7 @@ func (d *Daemon) CheckServiceUpdateState(service string) func(*check.C) (interfa
67 67
 // CheckPluginRunning returns the runtime state of the plugin
68 68
 func (d *Daemon) CheckPluginRunning(plugin string) func(c *check.C) (interface{}, check.CommentInterface) {
69 69
 	return func(c *check.C) (interface{}, check.CommentInterface) {
70
-		apiclient, err := d.NewClient()
71
-		assert.NilError(c, err)
70
+		apiclient := d.NewClientT(c)
72 71
 		resp, _, err := apiclient.PluginInspectWithRaw(context.Background(), plugin)
73 72
 		if client.IsErrNotFound(err) {
74 73
 			return false, check.Commentf("%v", err)
... ...
@@ -81,8 +80,7 @@ func (d *Daemon) CheckPluginRunning(plugin string) func(c *check.C) (interface{}
81 81
 // CheckPluginImage returns the runtime state of the plugin
82 82
 func (d *Daemon) CheckPluginImage(plugin string) func(c *check.C) (interface{}, check.CommentInterface) {
83 83
 	return func(c *check.C) (interface{}, check.CommentInterface) {
84
-		apiclient, err := d.NewClient()
85
-		assert.NilError(c, err)
84
+		apiclient := d.NewClientT(c)
86 85
 		resp, _, err := apiclient.PluginInspectWithRaw(context.Background(), plugin)
87 86
 		if client.IsErrNotFound(err) {
88 87
 			return false, check.Commentf("%v", err)
... ...
@@ -102,8 +100,7 @@ func (d *Daemon) CheckServiceTasks(service string) func(*check.C) (interface{},
102 102
 
103 103
 // CheckRunningTaskNetworks returns the number of times each network is referenced from a task.
104 104
 func (d *Daemon) CheckRunningTaskNetworks(c *check.C) (interface{}, check.CommentInterface) {
105
-	cli, err := d.NewClient()
106
-	c.Assert(err, checker.IsNil)
105
+	cli := d.NewClientT(c)
107 106
 	defer cli.Close()
108 107
 
109 108
 	filterArgs := filters.NewArgs()
... ...
@@ -127,8 +124,7 @@ func (d *Daemon) CheckRunningTaskNetworks(c *check.C) (interface{}, check.Commen
127 127
 
128 128
 // CheckRunningTaskImages returns the times each image is running as a task.
129 129
 func (d *Daemon) CheckRunningTaskImages(c *check.C) (interface{}, check.CommentInterface) {
130
-	cli, err := d.NewClient()
131
-	c.Assert(err, checker.IsNil)
130
+	cli := d.NewClientT(c)
132 131
 	defer cli.Close()
133 132
 
134 133
 	filterArgs := filters.NewArgs()
... ...
@@ -177,8 +173,7 @@ func (d *Daemon) CheckControlAvailable(c *check.C) (interface{}, check.CommentIn
177 177
 
178 178
 // CheckLeader returns whether there is a leader on the swarm or not
179 179
 func (d *Daemon) CheckLeader(c *check.C) (interface{}, check.CommentInterface) {
180
-	cli, err := d.NewClient()
181
-	c.Assert(err, checker.IsNil)
180
+	cli := d.NewClientT(c)
182 181
 	defer cli.Close()
183 182
 
184 183
 	errList := check.Commentf("could not get node list")
... ...
@@ -66,20 +66,19 @@ func (s *DockerSwarmSuite) TestAPISwarmServicesCreate(c *check.C) {
66 66
 	id := d.CreateService(c, simpleTestService, setInstances(instances))
67 67
 	waitAndAssert(c, defaultReconciliationTimeout, d.CheckActiveContainerCount, checker.Equals, instances)
68 68
 
69
-	cli, err := d.NewClient()
70
-	c.Assert(err, checker.IsNil)
71
-	defer cli.Close()
69
+	client := d.NewClientT(c)
70
+	defer client.Close()
72 71
 
73 72
 	options := types.ServiceInspectOptions{InsertDefaults: true}
74 73
 
75 74
 	// insertDefaults inserts UpdateConfig when service is fetched by ID
76
-	resp, _, err := cli.ServiceInspectWithRaw(context.Background(), id, options)
75
+	resp, _, err := client.ServiceInspectWithRaw(context.Background(), id, options)
77 76
 	out := fmt.Sprintf("%+v", resp)
78 77
 	c.Assert(err, checker.IsNil)
79 78
 	c.Assert(out, checker.Contains, "UpdateConfig")
80 79
 
81 80
 	// insertDefaults inserts UpdateConfig when service is fetched by ID
82
-	resp, _, err = cli.ServiceInspectWithRaw(context.Background(), "top", options)
81
+	resp, _, err = client.ServiceInspectWithRaw(context.Background(), "top", options)
83 82
 	out = fmt.Sprintf("%+v", resp)
84 83
 	c.Assert(err, checker.IsNil)
85 84
 	c.Assert(string(out), checker.Contains, "UpdateConfig")
... ...
@@ -392,13 +392,12 @@ func (s *DockerSwarmSuite) TestAPISwarmRaftQuorum(c *check.C) {
392 392
 	var service swarm.Service
393 393
 	simpleTestService(&service)
394 394
 	service.Spec.Name = "top2"
395
-	cli, err := d1.NewClient()
396
-	c.Assert(err, checker.IsNil)
395
+	cli := d1.NewClientT(c)
397 396
 	defer cli.Close()
398 397
 
399 398
 	// d1 will eventually step down from leader because there is no longer an active quorum, wait for that to happen
400 399
 	waitAndAssert(c, defaultReconciliationTimeout, func(c *check.C) (interface{}, check.CommentInterface) {
401
-		_, err = cli.ServiceCreate(context.Background(), service.Spec, types.ServiceCreateOptions{})
400
+		_, err := cli.ServiceCreate(context.Background(), service.Spec, types.ServiceCreateOptions{})
402 401
 		return err.Error(), nil
403 402
 	}, checker.Contains, "Make sure more than half of the managers are online.")
404 403
 
... ...
@@ -864,10 +863,9 @@ func (s *DockerSwarmSuite) TestAPISwarmServicesUpdateWithName(c *check.C) {
864 864
 	instances = 5
865 865
 
866 866
 	setInstances(instances)(service)
867
-	cli, err := d.NewClient()
868
-	c.Assert(err, checker.IsNil)
867
+	cli := d.NewClientT(c)
869 868
 	defer cli.Close()
870
-	_, err = cli.ServiceUpdate(context.Background(), service.Spec.Name, service.Version, service.Spec, types.ServiceUpdateOptions{})
869
+	_, err := cli.ServiceUpdate(context.Background(), service.Spec.Name, service.Version, service.Spec, types.ServiceUpdateOptions{})
871 870
 	c.Assert(err, checker.IsNil)
872 871
 	waitAndAssert(c, defaultReconciliationTimeout, d.CheckActiveContainerCount, checker.Equals, instances)
873 872
 }
... ...
@@ -899,8 +897,7 @@ func (s *DockerSwarmSuite) TestAPISwarmErrorHandling(c *check.C) {
899 899
 // This test makes sure the fixes correctly output scopes instead.
900 900
 func (s *DockerSwarmSuite) TestAPIDuplicateNetworks(c *check.C) {
901 901
 	d := s.AddDaemon(c, true, true)
902
-	cli, err := d.NewClient()
903
-	c.Assert(err, checker.IsNil)
902
+	cli := d.NewClientT(c)
904 903
 	defer cli.Close()
905 904
 
906 905
 	name := "foo"
... ...
@@ -1029,8 +1026,7 @@ func (s *DockerSwarmSuite) TestAPINetworkInspectWithScope(c *check.C) {
1029 1029
 
1030 1030
 	name := "test-scoped-network"
1031 1031
 	ctx := context.Background()
1032
-	apiclient, err := d.NewClient()
1033
-	assert.NilError(c, err)
1032
+	apiclient := d.NewClientT(c)
1034 1033
 
1035 1034
 	resp, err := apiclient.NetworkCreate(ctx, name, types.NetworkCreate{Driver: "overlay"})
1036 1035
 	assert.NilError(c, err)
... ...
@@ -426,8 +426,7 @@ func (s *DockerSwarmSuite) TestOverlayAttachableOnSwarmLeave(c *check.C) {
426 426
 	c.Assert(err, checker.IsNil, check.Commentf("%s", out))
427 427
 
428 428
 	// Leave the swarm
429
-	err = d.SwarmLeave(true)
430
-	c.Assert(err, checker.IsNil)
429
+	c.Assert(d.SwarmLeave(true), checker.IsNil)
431 430
 
432 431
 	// Check the container is disconnected
433 432
 	out, err = d.Cmd("inspect", "c1", "--format", "{{.NetworkSettings.Networks."+nwName+"}}")
... ...
@@ -1620,8 +1619,7 @@ func (s *DockerSwarmSuite) TestNetworkInspectWithDuplicateNames(c *check.C) {
1620 1620
 		Driver:         "bridge",
1621 1621
 	}
1622 1622
 
1623
-	cli, err := d.NewClient()
1624
-	c.Assert(err, checker.IsNil)
1623
+	cli := d.NewClientT(c)
1625 1624
 	defer cli.Close()
1626 1625
 
1627 1626
 	n1, err := cli.NetworkCreate(context.Background(), name, options)
... ...
@@ -36,18 +36,17 @@ func TestContainerStartOnDaemonRestart(t *testing.T) {
36 36
 	d.StartWithBusybox(t, "--iptables=false")
37 37
 	defer d.Stop(t)
38 38
 
39
-	client, err := d.NewClient()
40
-	assert.Check(t, err, "error creating client")
39
+	c := d.NewClientT(t)
41 40
 
42 41
 	ctx := context.Background()
43 42
 
44
-	cID := container.Create(t, ctx, client)
45
-	defer client.ContainerRemove(ctx, cID, types.ContainerRemoveOptions{Force: true})
43
+	cID := container.Create(t, ctx, c)
44
+	defer c.ContainerRemove(ctx, cID, types.ContainerRemoveOptions{Force: true})
46 45
 
47
-	err = client.ContainerStart(ctx, cID, types.ContainerStartOptions{})
46
+	err := c.ContainerStart(ctx, cID, types.ContainerStartOptions{})
48 47
 	assert.Check(t, err, "error starting test container")
49 48
 
50
-	inspect, err := client.ContainerInspect(ctx, cID)
49
+	inspect, err := c.ContainerInspect(ctx, cID)
51 50
 	assert.Check(t, err, "error getting inspect data")
52 51
 
53 52
 	ppid := getContainerdShimPid(t, inspect)
... ...
@@ -63,7 +62,7 @@ func TestContainerStartOnDaemonRestart(t *testing.T) {
63 63
 
64 64
 	d.Start(t, "--iptables=false")
65 65
 
66
-	err = client.ContainerStart(ctx, cID, types.ContainerStartOptions{})
66
+	err = c.ContainerStart(ctx, cID, types.ContainerStartOptions{})
67 67
 	assert.Check(t, err, "failed to start test container")
68 68
 }
69 69
 
... ...
@@ -61,17 +61,16 @@ func TestExportContainerAfterDaemonRestart(t *testing.T) {
61 61
 	skip.If(t, testEnv.IsRemoteDaemon())
62 62
 
63 63
 	d := daemon.New(t)
64
-	client, err := d.NewClient()
65
-	assert.NilError(t, err)
64
+	c := d.NewClientT(t)
66 65
 
67 66
 	d.StartWithBusybox(t)
68 67
 	defer d.Stop(t)
69 68
 
70 69
 	ctx := context.Background()
71
-	ctrID := container.Create(t, ctx, client)
70
+	ctrID := container.Create(t, ctx, c)
72 71
 
73 72
 	d.Restart(t)
74 73
 
75
-	_, err = client.ContainerExport(ctx, ctrID)
74
+	_, err := c.ContainerExport(ctx, ctrID)
76 75
 	assert.NilError(t, err)
77 76
 }
... ...
@@ -227,8 +227,7 @@ func testDaemonIpcPrivateShareable(t *testing.T, mustBeShared bool, arg ...strin
227 227
 	d.StartWithBusybox(t, arg...)
228 228
 	defer d.Stop(t)
229 229
 
230
-	client, err := d.NewClient()
231
-	assert.Check(t, err, "error creating client")
230
+	c := d.NewClientT(t)
232 231
 
233 232
 	cfg := containertypes.Config{
234 233
 		Image: "busybox",
... ...
@@ -236,16 +235,16 @@ func testDaemonIpcPrivateShareable(t *testing.T, mustBeShared bool, arg ...strin
236 236
 	}
237 237
 	ctx := context.Background()
238 238
 
239
-	resp, err := client.ContainerCreate(ctx, &cfg, &containertypes.HostConfig{}, nil, "")
239
+	resp, err := c.ContainerCreate(ctx, &cfg, &containertypes.HostConfig{}, nil, "")
240 240
 	assert.NilError(t, err)
241 241
 	assert.Check(t, is.Equal(len(resp.Warnings), 0))
242 242
 
243
-	err = client.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{})
243
+	err = c.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{})
244 244
 	assert.NilError(t, err)
245 245
 
246 246
 	// get major:minor pair for /dev/shm from container's /proc/self/mountinfo
247 247
 	cmd := "awk '($5 == \"/dev/shm\") {printf $3}' /proc/self/mountinfo"
248
-	result, err := container.Exec(ctx, client, resp.ID, []string{"sh", "-c", cmd})
248
+	result, err := container.Exec(ctx, c, resp.ID, []string{"sh", "-c", cmd})
249 249
 	assert.NilError(t, err)
250 250
 	mm := result.Combined()
251 251
 	assert.Check(t, is.Equal(true, regexp.MustCompile("^[0-9]+:[0-9]+$").MatchString(mm)))
... ...
@@ -26,7 +26,7 @@ func TestDaemonRestartKillContainers(t *testing.T) {
26 26
 		xStart              bool
27 27
 	}
28 28
 
29
-	for _, c := range []testCase{
29
+	for _, tc := range []testCase{
30 30
 		{
31 31
 			desc:                "container without restart policy",
32 32
 			config:              &container.Config{Image: "busybox", Cmd: []string{"top"}},
... ...
@@ -57,16 +57,15 @@ func TestDaemonRestartKillContainers(t *testing.T) {
57 57
 					d.Stop(t)
58 58
 				},
59 59
 			} {
60
-				t.Run(fmt.Sprintf("live-restore=%v/%s/%s", liveRestoreEnabled, c.desc, fnName), func(t *testing.T) {
61
-					c := c
60
+				t.Run(fmt.Sprintf("live-restore=%v/%s/%s", liveRestoreEnabled, tc.desc, fnName), func(t *testing.T) {
61
+					c := tc
62 62
 					liveRestoreEnabled := liveRestoreEnabled
63 63
 					stopDaemon := stopDaemon
64 64
 
65 65
 					t.Parallel()
66 66
 
67 67
 					d := daemon.New(t)
68
-					client, err := d.NewClient()
69
-					assert.NilError(t, err)
68
+					client := d.NewClientT(t)
70 69
 
71 70
 					args := []string{"--iptables=false"}
72 71
 					if liveRestoreEnabled {
... ...
@@ -32,19 +32,18 @@ func TestDockerNetworkIpvlanPersistance(t *testing.T) {
32 32
 	n.CreateMasterDummy(t, master)
33 33
 	defer n.DeleteInterface(t, master)
34 34
 
35
-	client, err := d.NewClient()
36
-	assert.NilError(t, err)
35
+	c := d.NewClientT(t)
37 36
 
38 37
 	// create a network specifying the desired sub-interface name
39 38
 	netName := "di-persist"
40
-	net.CreateNoError(t, context.Background(), client, netName,
39
+	net.CreateNoError(t, context.Background(), c, netName,
41 40
 		net.WithIPvlan("di-dummy0.70", ""),
42 41
 	)
43 42
 
44
-	assert.Check(t, n.IsNetworkAvailable(client, netName))
43
+	assert.Check(t, n.IsNetworkAvailable(c, netName))
45 44
 	// Restart docker daemon to test the config has persisted to disk
46 45
 	d.Restart(t)
47
-	assert.Check(t, n.IsNetworkAvailable(client, netName))
46
+	assert.Check(t, n.IsNetworkAvailable(c, netName))
48 47
 }
49 48
 
50 49
 func TestDockerNetworkIpvlan(t *testing.T) {
... ...
@@ -87,11 +86,9 @@ func TestDockerNetworkIpvlan(t *testing.T) {
87 87
 	} {
88 88
 		d := daemon.New(t, daemon.WithExperimental)
89 89
 		d.StartWithBusybox(t)
90
+		c := d.NewClientT(t)
90 91
 
91
-		client, err := d.NewClient()
92
-		assert.NilError(t, err)
93
-
94
-		t.Run(tc.name, tc.test(client))
92
+		t.Run(tc.name, tc.test(c))
95 93
 
96 94
 		d.Stop(t)
97 95
 		// FIXME(vdemeester) clean network
... ...
@@ -30,16 +30,15 @@ func TestDockerNetworkMacvlanPersistance(t *testing.T) {
30 30
 	n.CreateMasterDummy(t, master)
31 31
 	defer n.DeleteInterface(t, master)
32 32
 
33
-	client, err := d.NewClient()
34
-	assert.NilError(t, err)
33
+	c := d.NewClientT(t)
35 34
 
36 35
 	netName := "dm-persist"
37
-	net.CreateNoError(t, context.Background(), client, netName,
36
+	net.CreateNoError(t, context.Background(), c, netName,
38 37
 		net.WithMacvlan("dm-dummy0.60"),
39 38
 	)
40
-	assert.Check(t, n.IsNetworkAvailable(client, netName))
39
+	assert.Check(t, n.IsNetworkAvailable(c, netName))
41 40
 	d.Restart(t)
42
-	assert.Check(t, n.IsNetworkAvailable(client, netName))
41
+	assert.Check(t, n.IsNetworkAvailable(c, netName))
43 42
 }
44 43
 
45 44
 func TestDockerNetworkMacvlan(t *testing.T) {
... ...
@@ -69,11 +68,9 @@ func TestDockerNetworkMacvlan(t *testing.T) {
69 69
 	} {
70 70
 		d := daemon.New(t)
71 71
 		d.StartWithBusybox(t)
72
+		c := d.NewClientT(t)
72 73
 
73
-		client, err := d.NewClient()
74
-		assert.NilError(t, err)
75
-
76
-		t.Run(tc.name, tc.test(client))
74
+		t.Run(tc.name, tc.test(c))
77 75
 
78 76
 		d.Stop(t)
79 77
 		// FIXME(vdemeester) clean network
... ...
@@ -26,21 +26,20 @@ func TestRunContainerWithBridgeNone(t *testing.T) {
26 26
 	d.StartWithBusybox(t, "-b", "none")
27 27
 	defer d.Stop(t)
28 28
 
29
-	client, err := d.NewClient()
30
-	assert.Check(t, err, "error creating client")
31
-
29
+	c := d.NewClientT(t)
32 30
 	ctx := context.Background()
33
-	id1 := container.Run(t, ctx, client)
34
-	defer client.ContainerRemove(ctx, id1, types.ContainerRemoveOptions{Force: true})
35 31
 
36
-	result, err := container.Exec(ctx, client, id1, []string{"ip", "l"})
32
+	id1 := container.Run(t, ctx, c)
33
+	defer c.ContainerRemove(ctx, id1, types.ContainerRemoveOptions{Force: true})
34
+
35
+	result, err := container.Exec(ctx, c, id1, []string{"ip", "l"})
37 36
 	assert.NilError(t, err)
38 37
 	assert.Check(t, is.Equal(false, strings.Contains(result.Combined(), "eth0")), "There shouldn't be eth0 in container in default(bridge) mode when bridge network is disabled")
39 38
 
40
-	id2 := container.Run(t, ctx, client, container.WithNetworkMode("bridge"))
41
-	defer client.ContainerRemove(ctx, id2, types.ContainerRemoveOptions{Force: true})
39
+	id2 := container.Run(t, ctx, c, container.WithNetworkMode("bridge"))
40
+	defer c.ContainerRemove(ctx, id2, types.ContainerRemoveOptions{Force: true})
42 41
 
43
-	result, err = container.Exec(ctx, client, id2, []string{"ip", "l"})
42
+	result, err = container.Exec(ctx, c, id2, []string{"ip", "l"})
44 43
 	assert.NilError(t, err)
45 44
 	assert.Check(t, is.Equal(false, strings.Contains(result.Combined(), "eth0")), "There shouldn't be eth0 in container in bridge mode when bridge network is disabled")
46 45
 
... ...
@@ -51,10 +50,10 @@ func TestRunContainerWithBridgeNone(t *testing.T) {
51 51
 	err = cmd.Run()
52 52
 	assert.NilError(t, err, "Failed to get current process network namespace: %+v", err)
53 53
 
54
-	id3 := container.Run(t, ctx, client, container.WithNetworkMode("host"))
55
-	defer client.ContainerRemove(ctx, id3, types.ContainerRemoveOptions{Force: true})
54
+	id3 := container.Run(t, ctx, c, container.WithNetworkMode("host"))
55
+	defer c.ContainerRemove(ctx, id3, types.ContainerRemoveOptions{Force: true})
56 56
 
57
-	result, err = container.Exec(ctx, client, id3, []string{"sh", "-c", nsCommand})
57
+	result, err = container.Exec(ctx, c, id3, []string{"sh", "-c", nsCommand})
58 58
 	assert.NilError(t, err)
59 59
 	assert.Check(t, is.Equal(stdout.String(), result.Combined()), "The network namspace of container should be the same with host when --net=host and bridge network is disabled")
60 60
 }
... ...
@@ -32,15 +32,16 @@ func TestDaemonRestartWithLiveRestore(t *testing.T) {
32 32
 	d := daemon.New(t)
33 33
 	defer d.Stop(t)
34 34
 	d.Start(t)
35
-	d.Restart(t, "--live-restore=true",
35
+	d.Restart(t,
36
+		"--live-restore=true",
36 37
 		"--default-address-pool", "base=175.30.0.0/16,size=16",
37
-		"--default-address-pool", "base=175.33.0.0/16,size=24")
38
+		"--default-address-pool", "base=175.33.0.0/16,size=24",
39
+	)
38 40
 
39 41
 	// Verify bridge network's subnet
40
-	cli, err := d.NewClient()
41
-	assert.Assert(t, err)
42
-	defer cli.Close()
43
-	out, err := cli.NetworkInspect(context.Background(), "bridge", types.NetworkInspectOptions{})
42
+	c := d.NewClientT(t)
43
+	defer c.Close()
44
+	out, err := c.NetworkInspect(context.Background(), "bridge", types.NetworkInspectOptions{})
44 45
 	assert.NilError(t, err)
45 46
 	// Make sure docker0 doesn't get override with new IP in live restore case
46 47
 	assert.Equal(t, out.IPAM.Config[0].Subnet, "172.18.0.0/16")
... ...
@@ -57,31 +58,32 @@ func TestDaemonDefaultNetworkPools(t *testing.T) {
57 57
 	defer d.Stop(t)
58 58
 	d.Start(t,
59 59
 		"--default-address-pool", "base=175.30.0.0/16,size=16",
60
-		"--default-address-pool", "base=175.33.0.0/16,size=24")
60
+		"--default-address-pool", "base=175.33.0.0/16,size=24",
61
+	)
62
+
63
+	c := d.NewClientT(t)
64
+	defer c.Close()
61 65
 
62 66
 	// Verify bridge network's subnet
63
-	cli, err := d.NewClient()
64
-	assert.Assert(t, err)
65
-	defer cli.Close()
66
-	out, err := cli.NetworkInspect(context.Background(), "bridge", types.NetworkInspectOptions{})
67
+	out, err := c.NetworkInspect(context.Background(), "bridge", types.NetworkInspectOptions{})
67 68
 	assert.NilError(t, err)
68 69
 	assert.Equal(t, out.IPAM.Config[0].Subnet, "175.30.0.0/16")
69 70
 
70 71
 	// Create a bridge network and verify its subnet is the second default pool
71 72
 	name := "elango" + t.Name()
72
-	network.CreateNoError(t, context.Background(), cli, name,
73
+	network.CreateNoError(t, context.Background(), c, name,
73 74
 		network.WithDriver("bridge"),
74 75
 	)
75
-	out, err = cli.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
76
+	out, err = c.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
76 77
 	assert.NilError(t, err)
77 78
 	assert.Equal(t, out.IPAM.Config[0].Subnet, "175.33.0.0/24")
78 79
 
79 80
 	// Create a bridge network and verify its subnet is the third default pool
80 81
 	name = "saanvi" + t.Name()
81
-	network.CreateNoError(t, context.Background(), cli, name,
82
+	network.CreateNoError(t, context.Background(), c, name,
82 83
 		network.WithDriver("bridge"),
83 84
 	)
84
-	out, err = cli.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
85
+	out, err = c.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
85 86
 	assert.NilError(t, err)
86 87
 	assert.Equal(t, out.IPAM.Config[0].Subnet, "175.33.1.0/24")
87 88
 	delInterface(t, defaultNetworkBridge)
... ...
@@ -96,17 +98,17 @@ func TestDaemonRestartWithExistingNetwork(t *testing.T) {
96 96
 	d := daemon.New(t)
97 97
 	d.Start(t)
98 98
 	defer d.Stop(t)
99
-	// Verify bridge network's subnet
100
-	cli, err := d.NewClient()
101
-	assert.Assert(t, err)
102
-	defer cli.Close()
99
+	c := d.NewClientT(t)
100
+	defer c.Close()
103 101
 
104 102
 	// Create a bridge network
105 103
 	name := "elango" + t.Name()
106
-	network.CreateNoError(t, context.Background(), cli, name,
104
+	network.CreateNoError(t, context.Background(), c, name,
107 105
 		network.WithDriver("bridge"),
108 106
 	)
109
-	out, err := cli.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
107
+
108
+	// Verify bridge network's subnet
109
+	out, err := c.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
110 110
 	assert.NilError(t, err)
111 111
 	networkip := out.IPAM.Config[0].Subnet
112 112
 
... ...
@@ -115,7 +117,7 @@ func TestDaemonRestartWithExistingNetwork(t *testing.T) {
115 115
 		"--default-address-pool", "base=175.30.0.0/16,size=16",
116 116
 		"--default-address-pool", "base=175.33.0.0/16,size=24")
117 117
 
118
-	out1, err := cli.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
118
+	out1, err := c.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
119 119
 	assert.NilError(t, err)
120 120
 	assert.Equal(t, out1.IPAM.Config[0].Subnet, networkip)
121 121
 	delInterface(t, defaultNetworkBridge)
... ...
@@ -129,40 +131,41 @@ func TestDaemonRestartWithExistingNetworkWithDefaultPoolRange(t *testing.T) {
129 129
 	d := daemon.New(t)
130 130
 	d.Start(t)
131 131
 	defer d.Stop(t)
132
-	// Verify bridge network's subnet
133
-	cli, err := d.NewClient()
134
-	assert.Assert(t, err)
135
-	defer cli.Close()
132
+	c := d.NewClientT(t)
133
+	defer c.Close()
136 134
 
137 135
 	// Create a bridge network
138 136
 	name := "elango" + t.Name()
139
-	network.CreateNoError(t, context.Background(), cli, name,
137
+	network.CreateNoError(t, context.Background(), c, name,
140 138
 		network.WithDriver("bridge"),
141 139
 	)
142
-	out, err := cli.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
140
+
141
+	// Verify bridge network's subnet
142
+	out, err := c.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
143 143
 	assert.NilError(t, err)
144 144
 	networkip := out.IPAM.Config[0].Subnet
145 145
 
146 146
 	// Create a bridge network
147 147
 	name = "sthira" + t.Name()
148
-	network.CreateNoError(t, context.Background(), cli, name,
148
+	network.CreateNoError(t, context.Background(), c, name,
149 149
 		network.WithDriver("bridge"),
150 150
 	)
151
-	out, err = cli.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
151
+	out, err = c.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
152 152
 	assert.NilError(t, err)
153 153
 	networkip2 := out.IPAM.Config[0].Subnet
154 154
 
155 155
 	// Restart daemon with default address pool option
156 156
 	d.Restart(t,
157 157
 		"--default-address-pool", "base=175.18.0.0/16,size=16",
158
-		"--default-address-pool", "base=175.19.0.0/16,size=24")
158
+		"--default-address-pool", "base=175.19.0.0/16,size=24",
159
+	)
159 160
 
160 161
 	// Create a bridge network
161 162
 	name = "saanvi" + t.Name()
162
-	network.CreateNoError(t, context.Background(), cli, name,
163
+	network.CreateNoError(t, context.Background(), c, name,
163 164
 		network.WithDriver("bridge"),
164 165
 	)
165
-	out1, err := cli.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
166
+	out1, err := c.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
166 167
 	assert.NilError(t, err)
167 168
 
168 169
 	assert.Check(t, out1.IPAM.Config[0].Subnet != networkip)
... ...
@@ -177,15 +180,17 @@ func TestDaemonWithBipAndDefaultNetworkPool(t *testing.T) {
177 177
 	defaultNetworkBridge := "docker0"
178 178
 	d := daemon.New(t)
179 179
 	defer d.Stop(t)
180
-	d.Start(t, "--bip=172.60.0.1/16",
180
+	d.Start(t,
181
+		"--bip=172.60.0.1/16",
181 182
 		"--default-address-pool", "base=175.30.0.0/16,size=16",
182
-		"--default-address-pool", "base=175.33.0.0/16,size=24")
183
+		"--default-address-pool", "base=175.33.0.0/16,size=24",
184
+	)
185
+
186
+	c := d.NewClientT(t)
187
+	defer c.Close()
183 188
 
184 189
 	// Verify bridge network's subnet
185
-	cli, err := d.NewClient()
186
-	assert.Assert(t, err)
187
-	defer cli.Close()
188
-	out, err := cli.NetworkInspect(context.Background(), "bridge", types.NetworkInspectOptions{})
190
+	out, err := c.NetworkInspect(context.Background(), "bridge", types.NetworkInspectOptions{})
189 191
 	assert.NilError(t, err)
190 192
 	// Make sure BIP IP doesn't get override with new default address pool .
191 193
 	assert.Equal(t, out.IPAM.Config[0].Subnet, "172.60.0.1/16")
... ...
@@ -197,8 +202,8 @@ func TestServiceWithPredefinedNetwork(t *testing.T) {
197 197
 	defer setupTest(t)()
198 198
 	d := swarm.NewSwarm(t, testEnv)
199 199
 	defer d.Stop(t)
200
-	client := d.NewClientT(t)
201
-	defer client.Close()
200
+	c := d.NewClientT(t)
201
+	defer c.Close()
202 202
 
203 203
 	hostName := "host"
204 204
 	var instances uint64 = 1
... ...
@@ -210,12 +215,12 @@ func TestServiceWithPredefinedNetwork(t *testing.T) {
210 210
 		swarm.ServiceWithNetwork(hostName),
211 211
 	)
212 212
 
213
-	poll.WaitOn(t, serviceRunningCount(client, serviceID, instances), swarm.ServicePoll)
213
+	poll.WaitOn(t, serviceRunningCount(c, serviceID, instances), swarm.ServicePoll)
214 214
 
215
-	_, _, err := client.ServiceInspectWithRaw(context.Background(), serviceID, types.ServiceInspectOptions{})
215
+	_, _, err := c.ServiceInspectWithRaw(context.Background(), serviceID, types.ServiceInspectOptions{})
216 216
 	assert.NilError(t, err)
217 217
 
218
-	err = client.ServiceRemove(context.Background(), serviceID)
218
+	err = c.ServiceRemove(context.Background(), serviceID)
219 219
 	assert.NilError(t, err)
220 220
 }
221 221
 
... ...
@@ -226,10 +231,10 @@ func TestServiceRemoveKeepsIngressNetwork(t *testing.T) {
226 226
 	defer setupTest(t)()
227 227
 	d := swarm.NewSwarm(t, testEnv)
228 228
 	defer d.Stop(t)
229
-	client := d.NewClientT(t)
230
-	defer client.Close()
229
+	c := d.NewClientT(t)
230
+	defer c.Close()
231 231
 
232
-	poll.WaitOn(t, swarmIngressReady(client), swarm.NetworkPoll)
232
+	poll.WaitOn(t, swarmIngressReady(c), swarm.NetworkPoll)
233 233
 
234 234
 	var instances uint64 = 1
235 235
 
... ...
@@ -247,20 +252,20 @@ func TestServiceRemoveKeepsIngressNetwork(t *testing.T) {
247 247
 		}),
248 248
 	)
249 249
 
250
-	poll.WaitOn(t, serviceRunningCount(client, serviceID, instances), swarm.ServicePoll)
250
+	poll.WaitOn(t, serviceRunningCount(c, serviceID, instances), swarm.ServicePoll)
251 251
 
252
-	_, _, err := client.ServiceInspectWithRaw(context.Background(), serviceID, types.ServiceInspectOptions{})
252
+	_, _, err := c.ServiceInspectWithRaw(context.Background(), serviceID, types.ServiceInspectOptions{})
253 253
 	assert.NilError(t, err)
254 254
 
255
-	err = client.ServiceRemove(context.Background(), serviceID)
255
+	err = c.ServiceRemove(context.Background(), serviceID)
256 256
 	assert.NilError(t, err)
257 257
 
258
-	poll.WaitOn(t, serviceIsRemoved(client, serviceID), swarm.ServicePoll)
259
-	poll.WaitOn(t, noServices(client), swarm.ServicePoll)
258
+	poll.WaitOn(t, serviceIsRemoved(c, serviceID), swarm.ServicePoll)
259
+	poll.WaitOn(t, noServices(c), swarm.ServicePoll)
260 260
 
261 261
 	// Ensure that "ingress" is not removed or corrupted
262 262
 	time.Sleep(10 * time.Second)
263
-	netInfo, err := client.NetworkInspect(context.Background(), ingressNet, types.NetworkInspectOptions{
263
+	netInfo, err := c.NetworkInspect(context.Background(), ingressNet, types.NetworkInspectOptions{
264 264
 		Verbose: true,
265 265
 		Scope:   "swarm",
266 266
 	})
... ...
@@ -330,12 +335,12 @@ func TestServiceWithDataPathPortInit(t *testing.T) {
330 330
 	ops = append(ops, daemon.WithSwarmDataPathPort(datapathPort))
331 331
 	d := swarm.NewSwarm(t, testEnv, ops...)
332 332
 
333
-	cli := d.NewClientT(t)
334
-	defer cli.Close()
333
+	c := d.NewClientT(t)
334
+	defer c.Close()
335 335
 
336 336
 	// Create a overlay network
337 337
 	name := "saanvisthira" + t.Name()
338
-	network.CreateNoError(t, context.Background(), cli, name,
338
+	network.CreateNoError(t, context.Background(), c, name,
339 339
 		network.WithDriver("overlay"))
340 340
 
341 341
 	var instances uint64 = 1
... ...
@@ -344,11 +349,11 @@ func TestServiceWithDataPathPortInit(t *testing.T) {
344 344
 		swarm.ServiceWithNetwork(name),
345 345
 	)
346 346
 
347
-	poll.WaitOn(t, serviceRunningCount(cli, serviceID, instances), swarm.ServicePoll)
347
+	poll.WaitOn(t, serviceRunningCount(c, serviceID, instances), swarm.ServicePoll)
348 348
 
349 349
 	info := d.Info(t)
350 350
 	assert.Equal(t, info.Swarm.Cluster.DataPathPort, datapathPort)
351
-	err := cli.ServiceRemove(context.Background(), serviceID)
351
+	err := c.ServiceRemove(context.Background(), serviceID)
352 352
 	assert.NilError(t, err)
353 353
 	d.SwarmLeave(true)
354 354
 	d.Stop(t)
... ...
@@ -357,11 +362,11 @@ func TestServiceWithDataPathPortInit(t *testing.T) {
357 357
 	// call without datapath port option.
358 358
 	ops = []func(*daemon.Daemon){}
359 359
 	d = swarm.NewSwarm(t, testEnv, ops...)
360
-	cli = d.NewClientT(t)
360
+	c = d.NewClientT(t)
361 361
 
362 362
 	// Create a overlay network
363 363
 	name = "saanvisthira" + t.Name()
364
-	network.CreateNoError(t, context.Background(), cli, name,
364
+	network.CreateNoError(t, context.Background(), c, name,
365 365
 		network.WithDriver("overlay"))
366 366
 
367 367
 	serviceID = swarm.CreateService(t, d,
... ...
@@ -369,12 +374,12 @@ func TestServiceWithDataPathPortInit(t *testing.T) {
369 369
 		swarm.ServiceWithNetwork(name),
370 370
 	)
371 371
 
372
-	poll.WaitOn(t, serviceRunningCount(cli, serviceID, instances), swarm.ServicePoll)
372
+	poll.WaitOn(t, serviceRunningCount(c, serviceID, instances), swarm.ServicePoll)
373 373
 
374 374
 	info = d.Info(t)
375 375
 	var defaultDataPathPort uint32 = 4789
376 376
 	assert.Equal(t, info.Swarm.Cluster.DataPathPort, defaultDataPathPort)
377
-	err = cli.ServiceRemove(context.Background(), serviceID)
377
+	err = c.ServiceRemove(context.Background(), serviceID)
378 378
 	assert.NilError(t, err)
379 379
 	d.SwarmLeave(true)
380 380
 	defer d.Stop(t)
... ...
@@ -87,18 +87,16 @@ func TestAuthZPluginAllowRequest(t *testing.T) {
87 87
 	ctrl.resRes.Allow = true
88 88
 	d.StartWithBusybox(t, "--authorization-plugin="+testAuthZPlugin)
89 89
 
90
-	client, err := d.NewClient()
91
-	assert.NilError(t, err)
92
-
90
+	c := d.NewClientT(t)
93 91
 	ctx := context.Background()
94 92
 
95 93
 	// Ensure command successful
96
-	cID := container.Run(t, ctx, client)
94
+	cID := container.Run(t, ctx, c)
97 95
 
98 96
 	assertURIRecorded(t, ctrl.requestsURIs, "/containers/create")
99 97
 	assertURIRecorded(t, ctrl.requestsURIs, fmt.Sprintf("/containers/%s/start", cID))
100 98
 
101
-	_, err = client.ServerVersion(ctx)
99
+	_, err := c.ServerVersion(ctx)
102 100
 	assert.NilError(t, err)
103 101
 	assert.Equal(t, 1, ctrl.versionReqCount)
104 102
 	assert.Equal(t, 1, ctrl.versionResCount)
... ...
@@ -126,10 +124,10 @@ func TestAuthZPluginTLS(t *testing.T) {
126 126
 	ctrl.reqRes.Allow = true
127 127
 	ctrl.resRes.Allow = true
128 128
 
129
-	client, err := newTLSAPIClient(testDaemonHTTPSAddr, cacertPath, clientCertPath, clientKeyPath)
129
+	c, err := newTLSAPIClient(testDaemonHTTPSAddr, cacertPath, clientCertPath, clientKeyPath)
130 130
 	assert.NilError(t, err)
131 131
 
132
-	_, err = client.ServerVersion(context.Background())
132
+	_, err = c.ServerVersion(context.Background())
133 133
 	assert.NilError(t, err)
134 134
 
135 135
 	assert.Equal(t, "client", ctrl.reqUser)
... ...
@@ -153,11 +151,10 @@ func TestAuthZPluginDenyRequest(t *testing.T) {
153 153
 	ctrl.reqRes.Allow = false
154 154
 	ctrl.reqRes.Msg = unauthorizedMessage
155 155
 
156
-	client, err := d.NewClient()
157
-	assert.NilError(t, err)
156
+	c := d.NewClientT(t)
158 157
 
159 158
 	// Ensure command is blocked
160
-	_, err = client.ServerVersion(context.Background())
159
+	_, err := c.ServerVersion(context.Background())
161 160
 	assert.Assert(t, err != nil)
162 161
 	assert.Equal(t, 1, ctrl.versionReqCount)
163 162
 	assert.Equal(t, 0, ctrl.versionResCount)
... ...
@@ -179,10 +176,10 @@ func TestAuthZPluginAPIDenyResponse(t *testing.T) {
179 179
 
180 180
 	conn, err := net.DialTimeout(daemonURL.Scheme, daemonURL.Path, time.Second*10)
181 181
 	assert.NilError(t, err)
182
-	client := httputil.NewClientConn(conn, nil)
182
+	c := httputil.NewClientConn(conn, nil)
183 183
 	req, err := http.NewRequest("GET", "/version", nil)
184 184
 	assert.NilError(t, err)
185
-	resp, err := client.Do(req)
185
+	resp, err := c.Do(req)
186 186
 
187 187
 	assert.NilError(t, err)
188 188
 	assert.DeepEqual(t, http.StatusForbidden, resp.StatusCode)
... ...
@@ -195,11 +192,10 @@ func TestAuthZPluginDenyResponse(t *testing.T) {
195 195
 	ctrl.resRes.Allow = false
196 196
 	ctrl.resRes.Msg = unauthorizedMessage
197 197
 
198
-	client, err := d.NewClient()
199
-	assert.NilError(t, err)
198
+	c := d.NewClientT(t)
200 199
 
201 200
 	// Ensure command is blocked
202
-	_, err = client.ServerVersion(context.Background())
201
+	_, err := c.ServerVersion(context.Background())
203 202
 	assert.Assert(t, err != nil)
204 203
 	assert.Equal(t, 1, ctrl.versionReqCount)
205 204
 	assert.Equal(t, 1, ctrl.versionResCount)
... ...
@@ -219,20 +215,18 @@ func TestAuthZPluginAllowEventStream(t *testing.T) {
219 219
 	ctrl.resRes.Allow = true
220 220
 	d.StartWithBusybox(t, "--authorization-plugin="+testAuthZPlugin)
221 221
 
222
-	client, err := d.NewClient()
223
-	assert.NilError(t, err)
224
-
222
+	c := d.NewClientT(t)
225 223
 	ctx := context.Background()
226 224
 
227
-	startTime := strconv.FormatInt(systemTime(t, client, testEnv).Unix(), 10)
228
-	events, errs, cancel := systemEventsSince(client, startTime)
225
+	startTime := strconv.FormatInt(systemTime(t, c, testEnv).Unix(), 10)
226
+	events, errs, cancel := systemEventsSince(c, startTime)
229 227
 	defer cancel()
230 228
 
231 229
 	// Create a container and wait for the creation events
232
-	cID := container.Run(t, ctx, client)
230
+	cID := container.Run(t, ctx, c)
233 231
 
234 232
 	for i := 0; i < 100; i++ {
235
-		c, err := client.ContainerInspect(ctx, cID)
233
+		c, err := c.ContainerInspect(ctx, cID)
236 234
 		assert.NilError(t, err)
237 235
 		if c.State.Running {
238 236
 			break
... ...
@@ -304,11 +298,10 @@ func TestAuthZPluginErrorResponse(t *testing.T) {
304 304
 	ctrl.reqRes.Allow = true
305 305
 	ctrl.resRes.Err = errorMessage
306 306
 
307
-	client, err := d.NewClient()
308
-	assert.NilError(t, err)
307
+	c := d.NewClientT(t)
309 308
 
310 309
 	// Ensure command is blocked
311
-	_, err = client.ServerVersion(context.Background())
310
+	_, err := c.ServerVersion(context.Background())
312 311
 	assert.Assert(t, err != nil)
313 312
 	assert.Equal(t, fmt.Sprintf("Error response from daemon: plugin %s failed with error: %s: %s", testAuthZPlugin, authorization.AuthZApiResponse, errorMessage), err.Error())
314 313
 }
... ...
@@ -318,11 +311,10 @@ func TestAuthZPluginErrorRequest(t *testing.T) {
318 318
 	d.Start(t, "--authorization-plugin="+testAuthZPlugin)
319 319
 	ctrl.reqRes.Err = errorMessage
320 320
 
321
-	client, err := d.NewClient()
322
-	assert.NilError(t, err)
321
+	c := d.NewClientT(t)
323 322
 
324 323
 	// Ensure command is blocked
325
-	_, err = client.ServerVersion(context.Background())
324
+	_, err := c.ServerVersion(context.Background())
326 325
 	assert.Assert(t, err != nil)
327 326
 	assert.Equal(t, fmt.Sprintf("Error response from daemon: plugin %s failed with error: %s: %s", testAuthZPlugin, authorization.AuthZApiRequest, errorMessage), err.Error())
328 327
 }
... ...
@@ -334,10 +326,9 @@ func TestAuthZPluginEnsureNoDuplicatePluginRegistration(t *testing.T) {
334 334
 	ctrl.reqRes.Allow = true
335 335
 	ctrl.resRes.Allow = true
336 336
 
337
-	client, err := d.NewClient()
338
-	assert.NilError(t, err)
337
+	c := d.NewClientT(t)
339 338
 
340
-	_, err = client.ServerVersion(context.Background())
339
+	_, err := c.ServerVersion(context.Background())
341 340
 	assert.NilError(t, err)
342 341
 
343 342
 	// assert plugin is only called once..
... ...
@@ -351,9 +342,7 @@ func TestAuthZPluginEnsureLoadImportWorking(t *testing.T) {
351 351
 	ctrl.resRes.Allow = true
352 352
 	d.StartWithBusybox(t, "--authorization-plugin="+testAuthZPlugin, "--authorization-plugin="+testAuthZPlugin)
353 353
 
354
-	client, err := d.NewClient()
355
-	assert.NilError(t, err)
356
-
354
+	c := d.NewClientT(t)
357 355
 	ctx := context.Background()
358 356
 
359 357
 	tmp, err := ioutil.TempDir("", "test-authz-load-import")
... ...
@@ -362,16 +351,16 @@ func TestAuthZPluginEnsureLoadImportWorking(t *testing.T) {
362 362
 
363 363
 	savedImagePath := filepath.Join(tmp, "save.tar")
364 364
 
365
-	err = imageSave(client, savedImagePath, "busybox")
365
+	err = imageSave(c, savedImagePath, "busybox")
366 366
 	assert.NilError(t, err)
367
-	err = imageLoad(client, savedImagePath)
367
+	err = imageLoad(c, savedImagePath)
368 368
 	assert.NilError(t, err)
369 369
 
370 370
 	exportedImagePath := filepath.Join(tmp, "export.tar")
371 371
 
372
-	cID := container.Run(t, ctx, client)
372
+	cID := container.Run(t, ctx, c)
373 373
 
374
-	responseReader, err := client.ContainerExport(context.Background(), cID)
374
+	responseReader, err := c.ContainerExport(context.Background(), cID)
375 375
 	assert.NilError(t, err)
376 376
 	defer responseReader.Close()
377 377
 	file, err := os.Create(exportedImagePath)
... ...
@@ -380,7 +369,7 @@ func TestAuthZPluginEnsureLoadImportWorking(t *testing.T) {
380 380
 	_, err = io.Copy(file, responseReader)
381 381
 	assert.NilError(t, err)
382 382
 
383
-	err = imageImport(client, exportedImagePath)
383
+	err = imageImport(c, exportedImagePath)
384 384
 	assert.NilError(t, err)
385 385
 }
386 386
 
... ...
@@ -406,12 +395,11 @@ func TestAuthzPluginEnsureContainerCopyToFrom(t *testing.T) {
406 406
 		written += n
407 407
 	}
408 408
 
409
+	c := d.NewClientT(t)
409 410
 	ctx := context.Background()
410
-	client, err := d.NewClient()
411
-	assert.Assert(t, err)
412 411
 
413
-	cID := container.Run(t, ctx, client)
414
-	defer client.ContainerRemove(ctx, cID, types.ContainerRemoveOptions{Force: true})
412
+	cID := container.Run(t, ctx, c)
413
+	defer c.ContainerRemove(ctx, cID, types.ContainerRemoveOptions{Force: true})
415 414
 
416 415
 	_, err = f.Seek(0, io.SeekStart)
417 416
 	assert.Assert(t, err)
... ...
@@ -425,10 +413,10 @@ func TestAuthzPluginEnsureContainerCopyToFrom(t *testing.T) {
425 425
 	dstDir, preparedArchive, err := archive.PrepareArchiveCopy(srcArchive, srcInfo, archive.CopyInfo{Path: "/test"})
426 426
 	assert.Assert(t, err)
427 427
 
428
-	err = client.CopyToContainer(ctx, cID, dstDir, preparedArchive, types.CopyToContainerOptions{})
428
+	err = c.CopyToContainer(ctx, cID, dstDir, preparedArchive, types.CopyToContainerOptions{})
429 429
 	assert.Assert(t, err)
430 430
 
431
-	rdr, _, err := client.CopyFromContainer(ctx, cID, "/test")
431
+	rdr, _, err := c.CopyFromContainer(ctx, cID, "/test")
432 432
 	assert.Assert(t, err)
433 433
 	_, err = io.Copy(ioutil.Discard, rdr)
434 434
 	assert.Assert(t, err)
... ...
@@ -43,13 +43,11 @@ func TestAuthZPluginV2AllowNonVolumeRequest(t *testing.T) {
43 43
 	skip.If(t, os.Getenv("DOCKER_ENGINE_GOARCH") != "amd64")
44 44
 	defer setupTestV2(t)()
45 45
 
46
-	client, err := d.NewClient()
47
-	assert.NilError(t, err)
48
-
46
+	c := d.NewClientT(t)
49 47
 	ctx := context.Background()
50 48
 
51 49
 	// Install authz plugin
52
-	err = pluginInstallGrantAllPermissions(client, authzPluginNameWithTag)
50
+	err := pluginInstallGrantAllPermissions(c, authzPluginNameWithTag)
53 51
 	assert.NilError(t, err)
54 52
 	// start the daemon with the plugin and load busybox, --net=none build fails otherwise
55 53
 	// because it needs to pull busybox
... ...
@@ -57,9 +55,9 @@ func TestAuthZPluginV2AllowNonVolumeRequest(t *testing.T) {
57 57
 	d.LoadBusybox(t)
58 58
 
59 59
 	// Ensure docker run command and accompanying docker ps are successful
60
-	cID := container.Run(t, ctx, client)
60
+	cID := container.Run(t, ctx, c)
61 61
 
62
-	_, err = client.ContainerInspect(ctx, cID)
62
+	_, err = c.ContainerInspect(ctx, cID)
63 63
 	assert.NilError(t, err)
64 64
 }
65 65
 
... ...
@@ -67,26 +65,25 @@ func TestAuthZPluginV2Disable(t *testing.T) {
67 67
 	skip.If(t, os.Getenv("DOCKER_ENGINE_GOARCH") != "amd64")
68 68
 	defer setupTestV2(t)()
69 69
 
70
-	client, err := d.NewClient()
71
-	assert.NilError(t, err)
70
+	c := d.NewClientT(t)
72 71
 
73 72
 	// Install authz plugin
74
-	err = pluginInstallGrantAllPermissions(client, authzPluginNameWithTag)
73
+	err := pluginInstallGrantAllPermissions(c, authzPluginNameWithTag)
75 74
 	assert.NilError(t, err)
76 75
 
77 76
 	d.Restart(t, "--authorization-plugin="+authzPluginNameWithTag)
78 77
 	d.LoadBusybox(t)
79 78
 
80
-	_, err = client.VolumeCreate(context.Background(), volumetypes.VolumeCreateBody{Driver: "local"})
79
+	_, err = c.VolumeCreate(context.Background(), volumetypes.VolumeCreateBody{Driver: "local"})
81 80
 	assert.Assert(t, err != nil)
82 81
 	assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag)))
83 82
 
84 83
 	// disable the plugin
85
-	err = client.PluginDisable(context.Background(), authzPluginNameWithTag, types.PluginDisableOptions{})
84
+	err = c.PluginDisable(context.Background(), authzPluginNameWithTag, types.PluginDisableOptions{})
86 85
 	assert.NilError(t, err)
87 86
 
88 87
 	// now test to see if the docker api works.
89
-	_, err = client.VolumeCreate(context.Background(), volumetypes.VolumeCreateBody{Driver: "local"})
88
+	_, err = c.VolumeCreate(context.Background(), volumetypes.VolumeCreateBody{Driver: "local"})
90 89
 	assert.NilError(t, err)
91 90
 }
92 91
 
... ...
@@ -94,34 +91,33 @@ func TestAuthZPluginV2RejectVolumeRequests(t *testing.T) {
94 94
 	skip.If(t, os.Getenv("DOCKER_ENGINE_GOARCH") != "amd64")
95 95
 	defer setupTestV2(t)()
96 96
 
97
-	client, err := d.NewClient()
98
-	assert.NilError(t, err)
97
+	c := d.NewClientT(t)
99 98
 
100 99
 	// Install authz plugin
101
-	err = pluginInstallGrantAllPermissions(client, authzPluginNameWithTag)
100
+	err := pluginInstallGrantAllPermissions(c, authzPluginNameWithTag)
102 101
 	assert.NilError(t, err)
103 102
 
104 103
 	// restart the daemon with the plugin
105 104
 	d.Restart(t, "--authorization-plugin="+authzPluginNameWithTag)
106 105
 
107
-	_, err = client.VolumeCreate(context.Background(), volumetypes.VolumeCreateBody{Driver: "local"})
106
+	_, err = c.VolumeCreate(context.Background(), volumetypes.VolumeCreateBody{Driver: "local"})
108 107
 	assert.Assert(t, err != nil)
109 108
 	assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag)))
110 109
 
111
-	_, err = client.VolumeList(context.Background(), filters.Args{})
110
+	_, err = c.VolumeList(context.Background(), filters.Args{})
112 111
 	assert.Assert(t, err != nil)
113 112
 	assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag)))
114 113
 
115 114
 	// The plugin will block the command before it can determine the volume does not exist
116
-	err = client.VolumeRemove(context.Background(), "test", false)
115
+	err = c.VolumeRemove(context.Background(), "test", false)
117 116
 	assert.Assert(t, err != nil)
118 117
 	assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag)))
119 118
 
120
-	_, err = client.VolumeInspect(context.Background(), "test")
119
+	_, err = c.VolumeInspect(context.Background(), "test")
121 120
 	assert.Assert(t, err != nil)
122 121
 	assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag)))
123 122
 
124
-	_, err = client.VolumesPrune(context.Background(), filters.Args{})
123
+	_, err = c.VolumesPrune(context.Background(), filters.Args{})
125 124
 	assert.Assert(t, err != nil)
126 125
 	assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag)))
127 126
 }
... ...
@@ -130,11 +126,10 @@ func TestAuthZPluginV2BadManifestFailsDaemonStart(t *testing.T) {
130 130
 	skip.If(t, os.Getenv("DOCKER_ENGINE_GOARCH") != "amd64")
131 131
 	defer setupTestV2(t)()
132 132
 
133
-	client, err := d.NewClient()
134
-	assert.NilError(t, err)
133
+	c := d.NewClientT(t)
135 134
 
136 135
 	// Install authz plugin with bad manifest
137
-	err = pluginInstallGrantAllPermissions(client, authzPluginBadManifestName)
136
+	err := pluginInstallGrantAllPermissions(c, authzPluginBadManifestName)
138 137
 	assert.NilError(t, err)
139 138
 
140 139
 	// start the daemon with the plugin, it will error
... ...
@@ -24,14 +24,13 @@ func TestDaemonStartWithLogOpt(t *testing.T) {
24 24
 	d.Start(t, "--iptables=false")
25 25
 	defer d.Stop(t)
26 26
 
27
-	client, err := d.NewClient()
28
-	assert.Check(t, err)
27
+	c := d.NewClientT(t)
29 28
 	ctx := context.Background()
30 29
 
31
-	createPlugin(t, client, "test", "dummy", asLogDriver)
32
-	err = client.PluginEnable(ctx, "test", types.PluginEnableOptions{Timeout: 30})
30
+	createPlugin(t, c, "test", "dummy", asLogDriver)
31
+	err := c.PluginEnable(ctx, "test", types.PluginEnableOptions{Timeout: 30})
33 32
 	assert.Check(t, err)
34
-	defer client.PluginRemove(ctx, "test", types.PluginRemoveOptions{Force: true})
33
+	defer c.PluginRemove(ctx, "test", types.PluginRemoveOptions{Force: true})
35 34
 
36 35
 	d.Stop(t)
37 36
 	d.Start(t, "--iptables=false", "--log-driver=test", "--log-opt=foo=bar")
... ...
@@ -24,15 +24,14 @@ func TestPluginWithDevMounts(t *testing.T) {
24 24
 	d.Start(t, "--iptables=false")
25 25
 	defer d.Stop(t)
26 26
 
27
-	client, err := d.NewClient()
28
-	assert.Assert(t, err)
27
+	c := d.NewClientT(t)
29 28
 	ctx := context.Background()
30 29
 
31 30
 	testDir, err := ioutil.TempDir("", "test-dir")
32 31
 	assert.Assert(t, err)
33 32
 	defer os.RemoveAll(testDir)
34 33
 
35
-	createPlugin(t, client, "test", "dummy", asVolumeDriver, func(c *plugin.Config) {
34
+	createPlugin(t, c, "test", "dummy", asVolumeDriver, func(c *plugin.Config) {
36 35
 		root := "/"
37 36
 		dev := "/dev"
38 37
 		mounts := []types.PluginMount{
... ...
@@ -46,14 +45,14 @@ func TestPluginWithDevMounts(t *testing.T) {
46 46
 		c.IpcHost = true
47 47
 	})
48 48
 
49
-	err = client.PluginEnable(ctx, "test", types.PluginEnableOptions{Timeout: 30})
49
+	err = c.PluginEnable(ctx, "test", types.PluginEnableOptions{Timeout: 30})
50 50
 	assert.Assert(t, err)
51 51
 	defer func() {
52
-		err := client.PluginRemove(ctx, "test", types.PluginRemoveOptions{Force: true})
52
+		err := c.PluginRemove(ctx, "test", types.PluginRemoveOptions{Force: true})
53 53
 		assert.Check(t, err)
54 54
 	}()
55 55
 
56
-	p, _, err := client.PluginInspectWithRaw(ctx, "test")
56
+	p, _, err := c.PluginInspectWithRaw(ctx, "test")
57 57
 	assert.Assert(t, err)
58 58
 	assert.Assert(t, p.Enabled)
59 59
 }
... ...
@@ -36,23 +36,23 @@ func TestCgroupDriverSystemdMemoryLimit(t *testing.T) {
36 36
 	}
37 37
 
38 38
 	d := daemon.New(t)
39
-	client, err := d.NewClient()
40
-	assert.NilError(t, err)
39
+	c := d.NewClientT(t)
40
+
41 41
 	d.StartWithBusybox(t, "--exec-opt", "native.cgroupdriver=systemd", "--iptables=false")
42 42
 	defer d.Stop(t)
43 43
 
44 44
 	const mem = 64 * 1024 * 1024 // 64 MB
45 45
 
46 46
 	ctx := context.Background()
47
-	ctrID := container.Create(t, ctx, client, func(c *container.TestContainerConfig) {
48
-		c.HostConfig.Resources.Memory = mem
47
+	ctrID := container.Create(t, ctx, c, func(ctr *container.TestContainerConfig) {
48
+		ctr.HostConfig.Resources.Memory = mem
49 49
 	})
50
-	defer client.ContainerRemove(ctx, ctrID, types.ContainerRemoveOptions{Force: true})
50
+	defer c.ContainerRemove(ctx, ctrID, types.ContainerRemoveOptions{Force: true})
51 51
 
52
-	err = client.ContainerStart(ctx, ctrID, types.ContainerStartOptions{})
52
+	err := c.ContainerStart(ctx, ctrID, types.ContainerStartOptions{})
53 53
 	assert.NilError(t, err)
54 54
 
55
-	s, err := client.ContainerInspect(ctx, ctrID)
55
+	s, err := c.ContainerInspect(ctx, ctrID)
56 56
 	assert.NilError(t, err)
57 57
 	assert.Equal(t, s.HostConfig.Memory, mem)
58 58
 }
... ...
@@ -47,14 +47,12 @@ func TestInfoAPIWarnings(t *testing.T) {
47 47
 	skip.If(t, testEnv.IsRemoteDaemon, "cannot run daemon when remote daemon")
48 48
 	skip.If(t, testEnv.DaemonInfo.OSType == "windows", "FIXME")
49 49
 	d := daemon.New(t)
50
-
51
-	client, err := d.NewClient()
52
-	assert.NilError(t, err)
50
+	c := d.NewClientT(t)
53 51
 
54 52
 	d.StartWithBusybox(t, "-H=0.0.0.0:23756", "-H="+d.Sock())
55 53
 	defer d.Stop(t)
56 54
 
57
-	info, err := client.Info(context.Background())
55
+	info, err := c.Info(context.Background())
58 56
 	assert.NilError(t, err)
59 57
 
60 58
 	stringsToCheck := []string{
... ...
@@ -568,11 +568,10 @@ func (d *Daemon) LoadBusybox(t assert.TestingT) {
568 568
 	assert.NilError(t, err, "failed to download busybox")
569 569
 	defer reader.Close()
570 570
 
571
-	client, err := d.NewClient()
572
-	assert.NilError(t, err, "failed to create client")
573
-	defer client.Close()
571
+	c := d.NewClientT(t)
572
+	defer c.Close()
574 573
 
575
-	resp, err := client.ImageLoad(ctx, reader, true)
574
+	resp, err := c.ImageLoad(ctx, reader, true)
576 575
 	assert.NilError(t, err, "failed to load busybox")
577 576
 	defer resp.Body.Close()
578 577
 }
... ...
@@ -632,7 +631,7 @@ func (d *Daemon) queryRootDir() (string, error) {
632 632
 		return "", err
633 633
 	}
634 634
 
635
-	client := &http.Client{
635
+	c := &http.Client{
636 636
 		Transport: clientConfig.transport,
637 637
 	}
638 638
 
... ...
@@ -644,7 +643,7 @@ func (d *Daemon) queryRootDir() (string, error) {
644 644
 	req.URL.Host = clientConfig.addr
645 645
 	req.URL.Scheme = clientConfig.scheme
646 646
 
647
-	resp, err := client.Do(req)
647
+	resp, err := c.Do(req)
648 648
 	if err != nil {
649 649
 		return "", err
650 650
 	}
... ...
@@ -672,9 +671,8 @@ func (d *Daemon) Info(t assert.TestingT) types.Info {
672 672
 	if ht, ok := t.(test.HelperT); ok {
673 673
 		ht.Helper()
674 674
 	}
675
-	apiclient, err := d.NewClient()
676
-	assert.NilError(t, err)
677
-	info, err := apiclient.Info(context.Background())
675
+	c := d.NewClientT(t)
676
+	info, err := c.Info(context.Background())
678 677
 	assert.NilError(t, err)
679 678
 	return info
680 679
 }