Browse code

Assert error in body of function `inspectField*`

1. Replace raw `docker inspect -f xxx` with `inspectField`, to make code
cleaner and more consistent
2. assert the error in function `inspectField*` so we don't need to
assert the return value of it every time, this will make inspect easier.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>

Zhang Wei authored on 2016/01/28 23:19:25
Showing 34 changed files
... ...
@@ -520,8 +520,7 @@ func (s *DockerSuite) TestContainerApiCommit(c *check.C) {
520 520
 	var img resp
521 521
 	c.Assert(json.Unmarshal(b, &img), checker.IsNil)
522 522
 
523
-	cmd, err := inspectField(img.ID, "Config.Cmd")
524
-	c.Assert(err, checker.IsNil)
523
+	cmd := inspectField(c, img.ID, "Config.Cmd")
525 524
 	c.Assert(cmd, checker.Equals, "{[/bin/sh -c touch /test]}", check.Commentf("got wrong Cmd from commit: %q", cmd))
526 525
 
527 526
 	// sanity check, make sure the image is what we think it is
... ...
@@ -547,16 +546,13 @@ func (s *DockerSuite) TestContainerApiCommitWithLabelInConfig(c *check.C) {
547 547
 	var img resp
548 548
 	c.Assert(json.Unmarshal(b, &img), checker.IsNil)
549 549
 
550
-	label1, err := inspectFieldMap(img.ID, "Config.Labels", "key1")
551
-	c.Assert(err, checker.IsNil)
550
+	label1 := inspectFieldMap(c, img.ID, "Config.Labels", "key1")
552 551
 	c.Assert(label1, checker.Equals, "value1")
553 552
 
554
-	label2, err := inspectFieldMap(img.ID, "Config.Labels", "key2")
555
-	c.Assert(err, checker.IsNil)
553
+	label2 := inspectFieldMap(c, img.ID, "Config.Labels", "key2")
556 554
 	c.Assert(label2, checker.Equals, "value2")
557 555
 
558
-	cmd, err := inspectField(img.ID, "Config.Cmd")
559
-	c.Assert(err, checker.IsNil)
556
+	cmd := inspectField(c, img.ID, "Config.Cmd")
560 557
 	c.Assert(cmd, checker.Equals, "{[/bin/sh -c touch /test]}", check.Commentf("got wrong Cmd from commit: %q", cmd))
561 558
 
562 559
 	// sanity check, make sure the image is what we think it is
... ...
@@ -751,12 +747,10 @@ func (s *DockerSuite) TestContainerApiCreateWithCpuSharesCpuset(c *check.C) {
751 751
 
752 752
 	c.Assert(json.Unmarshal(body, &containerJSON), checker.IsNil)
753 753
 
754
-	out, err := inspectField(containerJSON.ID, "HostConfig.CpuShares")
755
-	c.Assert(err, checker.IsNil)
754
+	out := inspectField(c, containerJSON.ID, "HostConfig.CpuShares")
756 755
 	c.Assert(out, checker.Equals, "512")
757 756
 
758
-	outCpuset, errCpuset := inspectField(containerJSON.ID, "HostConfig.CpusetCpus")
759
-	c.Assert(errCpuset, checker.IsNil, check.Commentf("Output: %s", outCpuset))
757
+	outCpuset := inspectField(c, containerJSON.ID, "HostConfig.CpusetCpus")
760 758
 	c.Assert(outCpuset, checker.Equals, "0")
761 759
 }
762 760
 
... ...
@@ -853,16 +847,13 @@ func (s *DockerSuite) TestContainerApiPostCreateNull(c *check.C) {
853 853
 	}
854 854
 	var container createResp
855 855
 	c.Assert(json.Unmarshal(b, &container), checker.IsNil)
856
-	out, err := inspectField(container.ID, "HostConfig.CpusetCpus")
857
-	c.Assert(err, checker.IsNil)
856
+	out := inspectField(c, container.ID, "HostConfig.CpusetCpus")
858 857
 	c.Assert(out, checker.Equals, "")
859 858
 
860
-	outMemory, errMemory := inspectField(container.ID, "HostConfig.Memory")
859
+	outMemory := inspectField(c, container.ID, "HostConfig.Memory")
861 860
 	c.Assert(outMemory, checker.Equals, "0")
862
-	c.Assert(errMemory, checker.IsNil)
863
-	outMemorySwap, errMemorySwap := inspectField(container.ID, "HostConfig.MemorySwap")
861
+	outMemorySwap := inspectField(c, container.ID, "HostConfig.MemorySwap")
864 862
 	c.Assert(outMemorySwap, checker.Equals, "0")
865
-	c.Assert(errMemorySwap, checker.IsNil)
866 863
 }
867 864
 
868 865
 func (s *DockerSuite) TestCreateWithTooLowMemoryLimit(c *check.C) {
... ...
@@ -917,7 +908,7 @@ func (s *DockerSuite) TestContainerApiRename(c *check.C) {
917 917
 	// 204 No Content is expected, not 200
918 918
 	c.Assert(statusCode, checker.Equals, http.StatusNoContent)
919 919
 
920
-	name, err := inspectField(containerID, "Name")
920
+	name := inspectField(c, containerID, "Name")
921 921
 	c.Assert(name, checker.Equals, "/"+newName, check.Commentf("Failed to rename container"))
922 922
 }
923 923
 
... ...
@@ -929,8 +920,7 @@ func (s *DockerSuite) TestContainerApiKill(c *check.C) {
929 929
 	c.Assert(err, checker.IsNil)
930 930
 	c.Assert(status, checker.Equals, http.StatusNoContent)
931 931
 
932
-	state, err := inspectField(name, "State.Running")
933
-	c.Assert(err, checker.IsNil)
932
+	state := inspectField(c, name, "State.Running")
934 933
 	c.Assert(state, checker.Equals, "false", check.Commentf("got wrong State from container %s: %q", name, state))
935 934
 }
936 935
 
... ...
@@ -1134,16 +1124,14 @@ func (s *DockerSuite) TestContainerApiDeleteRemoveLinks(c *check.C) {
1134 1134
 	id2 := strings.TrimSpace(out)
1135 1135
 	c.Assert(waitRun(id2), checker.IsNil)
1136 1136
 
1137
-	links, err := inspectFieldJSON(id2, "HostConfig.Links")
1138
-	c.Assert(err, checker.IsNil)
1137
+	links := inspectFieldJSON(c, id2, "HostConfig.Links")
1139 1138
 	c.Assert(links, checker.Equals, "[\"/tlink1:/tlink2/tlink1\"]", check.Commentf("expected to have links between containers"))
1140 1139
 
1141 1140
 	status, b, err := sockRequest("DELETE", "/containers/tlink2/tlink1?link=1", nil)
1142 1141
 	c.Assert(err, check.IsNil)
1143 1142
 	c.Assert(status, check.Equals, http.StatusNoContent, check.Commentf(string(b)))
1144 1143
 
1145
-	linksPostRm, err := inspectFieldJSON(id2, "HostConfig.Links")
1146
-	c.Assert(err, checker.IsNil)
1144
+	linksPostRm := inspectFieldJSON(c, id2, "HostConfig.Links")
1147 1145
 	c.Assert(linksPostRm, checker.Equals, "null", check.Commentf("call to api deleteContainer links should have removed the specified links"))
1148 1146
 }
1149 1147
 
... ...
@@ -1208,8 +1196,7 @@ func (s *DockerSuite) TestContainerApiChunkedEncoding(c *check.C) {
1208 1208
 	resp.Body.Close()
1209 1209
 	c.Assert(resp.StatusCode, checker.Equals, 204)
1210 1210
 
1211
-	out, err = inspectFieldJSON(id, "HostConfig.Binds")
1212
-	c.Assert(err, checker.IsNil)
1211
+	out = inspectFieldJSON(c, id, "HostConfig.Binds")
1213 1212
 
1214 1213
 	var binds []string
1215 1214
 	c.Assert(json.NewDecoder(strings.NewReader(out)).Decode(&binds), checker.IsNil)
... ...
@@ -1308,8 +1295,7 @@ func (s *DockerSuite) TestPostContainersStartWithoutLinksInHostConfig(c *check.C
1308 1308
 	name := "test-host-config-links"
1309 1309
 	dockerCmd(c, append([]string{"create", "--name", name, "busybox"}, defaultSleepCommand...)...)
1310 1310
 
1311
-	hc, err := inspectFieldJSON(name, "HostConfig")
1312
-	c.Assert(err, checker.IsNil)
1311
+	hc := inspectFieldJSON(c, name, "HostConfig")
1313 1312
 	config := `{"HostConfig":` + hc + `}`
1314 1313
 
1315 1314
 	res, b, err := sockRequestRaw("POST", "/containers/"+name+"/start", strings.NewReader(config), "application/json")
... ...
@@ -1327,8 +1313,7 @@ func (s *DockerSuite) TestPostContainersStartWithLinksInHostConfig(c *check.C) {
1327 1327
 	dockerCmd(c, "run", "--name", "foo", "-d", "busybox", "top")
1328 1328
 	dockerCmd(c, "create", "--name", name, "--link", "foo:bar", "busybox", "top")
1329 1329
 
1330
-	hc, err := inspectFieldJSON(name, "HostConfig")
1331
-	c.Assert(err, checker.IsNil)
1330
+	hc := inspectFieldJSON(c, name, "HostConfig")
1332 1331
 	config := `{"HostConfig":` + hc + `}`
1333 1332
 
1334 1333
 	res, b, err := sockRequestRaw("POST", "/containers/"+name+"/start", strings.NewReader(config), "application/json")
... ...
@@ -1346,8 +1331,7 @@ func (s *DockerSuite) TestPostContainersStartWithLinksInHostConfigIdLinked(c *ch
1346 1346
 	id := strings.TrimSpace(out)
1347 1347
 	dockerCmd(c, "create", "--name", name, "--link", id, "busybox", "top")
1348 1348
 
1349
-	hc, err := inspectFieldJSON(name, "HostConfig")
1350
-	c.Assert(err, checker.IsNil)
1349
+	hc := inspectFieldJSON(c, name, "HostConfig")
1351 1350
 	config := `{"HostConfig":` + hc + `}`
1352 1351
 
1353 1352
 	res, b, err := sockRequestRaw("POST", "/containers/"+name+"/start", strings.NewReader(config), "application/json")
... ...
@@ -1448,8 +1432,7 @@ func (s *DockerSuite) TestStartWithNilDNS(c *check.C) {
1448 1448
 	c.Assert(res.StatusCode, checker.Equals, http.StatusNoContent)
1449 1449
 	b.Close()
1450 1450
 
1451
-	dns, err := inspectFieldJSON(containerID, "HostConfig.Dns")
1452
-	c.Assert(err, checker.IsNil)
1451
+	dns := inspectFieldJSON(c, containerID, "HostConfig.Dns")
1453 1452
 	c.Assert(dns, checker.Equals, "[]")
1454 1453
 }
1455 1454
 
... ...
@@ -67,7 +67,7 @@ func (s *DockerSuite) TestApiImagesSaveAndLoad(c *check.C) {
67 67
 	defer loadBody.Close()
68 68
 	c.Assert(res.StatusCode, checker.Equals, http.StatusOK)
69 69
 
70
-	inspectOut, _ := dockerCmd(c, "inspect", "--format='{{ .Id }}'", id)
70
+	inspectOut := inspectField(c, id, "Id")
71 71
 	c.Assert(strings.TrimSpace(string(inspectOut)), checker.Equals, id, check.Commentf("load did not work properly"))
72 72
 }
73 73
 
... ...
@@ -23,8 +23,7 @@ func (s *DockerSuite) TestApiUpdateContainer(c *check.C) {
23 23
 	_, _, err := sockRequest("POST", "/containers/"+name+"/update", hostConfig)
24 24
 	c.Assert(err, check.IsNil)
25 25
 
26
-	memory, err := inspectField(name, "HostConfig.Memory")
27
-	c.Assert(err, check.IsNil)
26
+	memory := inspectField(c, name, "HostConfig.Memory")
28 27
 	if memory != "314572800" {
29 28
 		c.Fatalf("Got the wrong memory value, we got %d, expected 314572800(300M).", memory)
30 29
 	}
... ...
@@ -32,8 +31,7 @@ func (s *DockerSuite) TestApiUpdateContainer(c *check.C) {
32 32
 	out, _ := dockerCmd(c, "exec", name, "cat", file)
33 33
 	c.Assert(strings.TrimSpace(out), checker.Equals, "314572800")
34 34
 
35
-	memorySwap, err := inspectField(name, "HostConfig.MemorySwap")
36
-	c.Assert(err, check.IsNil)
35
+	memorySwap := inspectField(c, name, "HostConfig.MemorySwap")
37 36
 	if memorySwap != "524288000" {
38 37
 		c.Fatalf("Got the wrong memorySwap value, we got %d, expected 524288000(500M).", memorySwap)
39 38
 	}
... ...
@@ -147,8 +147,7 @@ func (s *DockerSuite) TestAttachDisconnect(c *check.C) {
147 147
 	c.Assert(stdin.Close(), check.IsNil)
148 148
 
149 149
 	// Expect container to still be running after stdin is closed
150
-	running, err := inspectField(id, "State.Running")
151
-	c.Assert(err, check.IsNil)
150
+	running := inspectField(c, id, "State.Running")
152 151
 	c.Assert(running, check.Equals, "true")
153 152
 }
154 153
 
... ...
@@ -161,8 +161,7 @@ func (s *DockerSuite) TestAttachDetach(c *check.C) {
161 161
 		ch <- struct{}{}
162 162
 	}()
163 163
 
164
-	running, err := inspectField(id, "State.Running")
165
-	c.Assert(err, checker.IsNil)
164
+	running := inspectField(c, id, "State.Running")
166 165
 	c.Assert(running, checker.Equals, "true", check.Commentf("expected container to still be running"))
167 166
 
168 167
 	go func() {
... ...
@@ -214,8 +213,7 @@ func (s *DockerSuite) TestAttachDetachTruncatedID(c *check.C) {
214 214
 		ch <- struct{}{}
215 215
 	}()
216 216
 
217
-	running, err := inspectField(id, "State.Running")
218
-	c.Assert(err, checker.IsNil)
217
+	running := inspectField(c, id, "State.Running")
219 218
 	c.Assert(running, checker.Equals, "true", check.Commentf("expected container to still be running"))
220 219
 
221 220
 	go func() {
... ...
@@ -100,10 +100,7 @@ func (s *DockerSuite) TestBuildEnvironmentReplacementUser(c *check.C) {
100 100
 		c.Fatal(err)
101 101
 	}
102 102
 
103
-	res, err := inspectFieldJSON(name, "Config.User")
104
-	if err != nil {
105
-		c.Fatal(err)
106
-	}
103
+	res := inspectFieldJSON(c, name, "Config.User")
107 104
 
108 105
 	if res != `"foo"` {
109 106
 		c.Fatal("User foo from environment not in Config.User on image")
... ...
@@ -124,10 +121,7 @@ func (s *DockerSuite) TestBuildEnvironmentReplacementVolume(c *check.C) {
124 124
 		c.Fatal(err)
125 125
 	}
126 126
 
127
-	res, err := inspectFieldJSON(name, "Config.Volumes")
128
-	if err != nil {
129
-		c.Fatal(err)
130
-	}
127
+	res := inspectFieldJSON(c, name, "Config.Volumes")
131 128
 
132 129
 	var volumes map[string]interface{}
133 130
 
... ...
@@ -156,10 +150,7 @@ func (s *DockerSuite) TestBuildEnvironmentReplacementExpose(c *check.C) {
156 156
 		c.Fatal(err)
157 157
 	}
158 158
 
159
-	res, err := inspectFieldJSON(name, "Config.ExposedPorts")
160
-	if err != nil {
161
-		c.Fatal(err)
162
-	}
159
+	res := inspectFieldJSON(c, name, "Config.ExposedPorts")
163 160
 
164 161
 	var exposedPorts map[string]interface{}
165 162
 
... ...
@@ -254,10 +245,7 @@ func (s *DockerSuite) TestBuildEnvironmentReplacementEnv(c *check.C) {
254 254
 		c.Fatal(err)
255 255
 	}
256 256
 
257
-	res, err := inspectFieldJSON(name, "Config.Env")
258
-	if err != nil {
259
-		c.Fatal(err)
260
-	}
257
+	res := inspectFieldJSON(c, name, "Config.Env")
261 258
 
262 259
 	envResult := []string{}
263 260
 
... ...
@@ -315,10 +303,7 @@ func (s *DockerSuite) TestBuildHandleEscapes(c *check.C) {
315 315
 
316 316
 	var result map[string]map[string]struct{}
317 317
 
318
-	res, err := inspectFieldJSON(name, "Config.Volumes")
319
-	if err != nil {
320
-		c.Fatal(err)
321
-	}
318
+	res := inspectFieldJSON(c, name, "Config.Volumes")
322 319
 
323 320
 	if err = unmarshalJSON([]byte(res), &result); err != nil {
324 321
 		c.Fatal(err)
... ...
@@ -341,10 +326,7 @@ func (s *DockerSuite) TestBuildHandleEscapes(c *check.C) {
341 341
 		c.Fatal(err)
342 342
 	}
343 343
 
344
-	res, err = inspectFieldJSON(name, "Config.Volumes")
345
-	if err != nil {
346
-		c.Fatal(err)
347
-	}
344
+	res = inspectFieldJSON(c, name, "Config.Volumes")
348 345
 
349 346
 	if err = unmarshalJSON([]byte(res), &result); err != nil {
350 347
 		c.Fatal(err)
... ...
@@ -371,10 +353,7 @@ func (s *DockerSuite) TestBuildHandleEscapes(c *check.C) {
371 371
 		c.Fatal(err)
372 372
 	}
373 373
 
374
-	res, err = inspectFieldJSON(name, "Config.Volumes")
375
-	if err != nil {
376
-		c.Fatal(err)
377
-	}
374
+	res = inspectFieldJSON(c, name, "Config.Volumes")
378 375
 
379 376
 	if err = unmarshalJSON([]byte(res), &result); err != nil {
380 377
 		c.Fatal(err)
... ...
@@ -1971,10 +1950,7 @@ func (s *DockerSuite) TestBuildWithVolumes(c *check.C) {
1971 1971
 	if err != nil {
1972 1972
 		c.Fatal(err)
1973 1973
 	}
1974
-	res, err := inspectFieldJSON(name, "Config.Volumes")
1975
-	if err != nil {
1976
-		c.Fatal(err)
1977
-	}
1974
+	res := inspectFieldJSON(c, name, "Config.Volumes")
1978 1975
 
1979 1976
 	err = unmarshalJSON([]byte(res), &result)
1980 1977
 	if err != nil {
... ...
@@ -2000,10 +1976,7 @@ func (s *DockerSuite) TestBuildMaintainer(c *check.C) {
2000 2000
 	if err != nil {
2001 2001
 		c.Fatal(err)
2002 2002
 	}
2003
-	res, err := inspectField(name, "Author")
2004
-	if err != nil {
2005
-		c.Fatal(err)
2006
-	}
2003
+	res := inspectField(c, name, "Author")
2007 2004
 	if res != expected {
2008 2005
 		c.Fatalf("Maintainer %s, expected %s", res, expected)
2009 2006
 	}
... ...
@@ -2022,10 +1995,7 @@ func (s *DockerSuite) TestBuildUser(c *check.C) {
2022 2022
 	if err != nil {
2023 2023
 		c.Fatal(err)
2024 2024
 	}
2025
-	res, err := inspectField(name, "Config.User")
2026
-	if err != nil {
2027
-		c.Fatal(err)
2028
-	}
2025
+	res := inspectField(c, name, "Config.User")
2029 2026
 	if res != expected {
2030 2027
 		c.Fatalf("User %s, expected %s", res, expected)
2031 2028
 	}
... ...
@@ -2048,10 +2018,7 @@ func (s *DockerSuite) TestBuildRelativeWorkdir(c *check.C) {
2048 2048
 	if err != nil {
2049 2049
 		c.Fatal(err)
2050 2050
 	}
2051
-	res, err := inspectField(name, "Config.WorkingDir")
2052
-	if err != nil {
2053
-		c.Fatal(err)
2054
-	}
2051
+	res := inspectField(c, name, "Config.WorkingDir")
2055 2052
 	if res != expected {
2056 2053
 		c.Fatalf("Workdir %s, expected %s", res, expected)
2057 2054
 	}
... ...
@@ -2071,10 +2038,7 @@ func (s *DockerSuite) TestBuildWorkdirWithEnvVariables(c *check.C) {
2071 2071
 	if err != nil {
2072 2072
 		c.Fatal(err)
2073 2073
 	}
2074
-	res, err := inspectField(name, "Config.WorkingDir")
2075
-	if err != nil {
2076
-		c.Fatal(err)
2077
-	}
2074
+	res := inspectField(c, name, "Config.WorkingDir")
2078 2075
 	if res != expected {
2079 2076
 		c.Fatalf("Workdir %s, expected %s", res, expected)
2080 2077
 	}
... ...
@@ -2134,10 +2098,7 @@ func (s *DockerSuite) TestBuildEnv(c *check.C) {
2134 2134
 	if err != nil {
2135 2135
 		c.Fatal(err)
2136 2136
 	}
2137
-	res, err := inspectField(name, "Config.Env")
2138
-	if err != nil {
2139
-		c.Fatal(err)
2140
-	}
2137
+	res := inspectField(c, name, "Config.Env")
2141 2138
 	if res != expected {
2142 2139
 		c.Fatalf("Env %s, expected %s", res, expected)
2143 2140
 	}
... ...
@@ -2152,8 +2113,7 @@ func (s *DockerSuite) TestBuildPATH(c *check.C) {
2152 2152
 		_, err := buildImage("testbldpath", dockerfile, true)
2153 2153
 		c.Assert(err, check.IsNil)
2154 2154
 
2155
-		res, err := inspectField("testbldpath", "Config.Env")
2156
-		c.Assert(err, check.IsNil)
2155
+		res := inspectField(c, "testbldpath", "Config.Env")
2157 2156
 
2158 2157
 		if res != exp {
2159 2158
 			c.Fatalf("Env %q, expected %q for dockerfile:%q", res, exp, dockerfile)
... ...
@@ -2239,10 +2199,7 @@ func (s *DockerSuite) TestBuildCmd(c *check.C) {
2239 2239
 	if err != nil {
2240 2240
 		c.Fatal(err)
2241 2241
 	}
2242
-	res, err := inspectField(name, "Config.Cmd")
2243
-	if err != nil {
2244
-		c.Fatal(err)
2245
-	}
2242
+	res := inspectField(c, name, "Config.Cmd")
2246 2243
 	if res != expected {
2247 2244
 		c.Fatalf("Cmd %s, expected %s", res, expected)
2248 2245
 	}
... ...
@@ -2259,10 +2216,7 @@ func (s *DockerSuite) TestBuildExpose(c *check.C) {
2259 2259
 	if err != nil {
2260 2260
 		c.Fatal(err)
2261 2261
 	}
2262
-	res, err := inspectField(name, "Config.ExposedPorts")
2263
-	if err != nil {
2264
-		c.Fatal(err)
2265
-	}
2262
+	res := inspectField(c, name, "Config.ExposedPorts")
2266 2263
 	if res != expected {
2267 2264
 		c.Fatalf("Exposed ports %s, expected %s", res, expected)
2268 2265
 	}
... ...
@@ -2301,10 +2255,7 @@ func (s *DockerSuite) TestBuildExposeMorePorts(c *check.C) {
2301 2301
 	}
2302 2302
 
2303 2303
 	// check if all the ports are saved inside Config.ExposedPorts
2304
-	res, err := inspectFieldJSON(name, "Config.ExposedPorts")
2305
-	if err != nil {
2306
-		c.Fatal(err)
2307
-	}
2304
+	res := inspectFieldJSON(c, name, "Config.ExposedPorts")
2308 2305
 	var exposedPorts map[string]interface{}
2309 2306
 	if err := json.Unmarshal([]byte(res), &exposedPorts); err != nil {
2310 2307
 		c.Fatal(err)
... ...
@@ -2331,10 +2282,7 @@ func (s *DockerSuite) TestBuildExposeOrder(c *check.C) {
2331 2331
 		if err != nil {
2332 2332
 			c.Fatal(err)
2333 2333
 		}
2334
-		id, err := inspectField(name, "Id")
2335
-		if err != nil {
2336
-			c.Fatal(err)
2337
-		}
2334
+		id := inspectField(c, name, "Id")
2338 2335
 		return id
2339 2336
 	}
2340 2337
 
... ...
@@ -2356,10 +2304,7 @@ func (s *DockerSuite) TestBuildExposeUpperCaseProto(c *check.C) {
2356 2356
 	if err != nil {
2357 2357
 		c.Fatal(err)
2358 2358
 	}
2359
-	res, err := inspectField(name, "Config.ExposedPorts")
2360
-	if err != nil {
2361
-		c.Fatal(err)
2362
-	}
2359
+	res := inspectField(c, name, "Config.ExposedPorts")
2363 2360
 	if res != expected {
2364 2361
 		c.Fatalf("Exposed ports %s, expected %s", res, expected)
2365 2362
 	}
... ...
@@ -2377,10 +2322,7 @@ func (s *DockerSuite) TestBuildEmptyEntrypointInheritance(c *check.C) {
2377 2377
 	if err != nil {
2378 2378
 		c.Fatal(err)
2379 2379
 	}
2380
-	res, err := inspectField(name, "Config.Entrypoint")
2381
-	if err != nil {
2382
-		c.Fatal(err)
2383
-	}
2380
+	res := inspectField(c, name, "Config.Entrypoint")
2384 2381
 
2385 2382
 	expected := "{[/bin/echo]}"
2386 2383
 	if res != expected {
... ...
@@ -2394,10 +2336,7 @@ func (s *DockerSuite) TestBuildEmptyEntrypointInheritance(c *check.C) {
2394 2394
 	if err != nil {
2395 2395
 		c.Fatal(err)
2396 2396
 	}
2397
-	res, err = inspectField(name2, "Config.Entrypoint")
2398
-	if err != nil {
2399
-		c.Fatal(err)
2400
-	}
2397
+	res = inspectField(c, name2, "Config.Entrypoint")
2401 2398
 
2402 2399
 	expected = "{[]}"
2403 2400
 
... ...
@@ -2419,10 +2358,7 @@ func (s *DockerSuite) TestBuildEmptyEntrypoint(c *check.C) {
2419 2419
 	if err != nil {
2420 2420
 		c.Fatal(err)
2421 2421
 	}
2422
-	res, err := inspectField(name, "Config.Entrypoint")
2423
-	if err != nil {
2424
-		c.Fatal(err)
2425
-	}
2422
+	res := inspectField(c, name, "Config.Entrypoint")
2426 2423
 	if res != expected {
2427 2424
 		c.Fatalf("Entrypoint %s, expected %s", res, expected)
2428 2425
 	}
... ...
@@ -2440,10 +2376,7 @@ func (s *DockerSuite) TestBuildEntrypoint(c *check.C) {
2440 2440
 	if err != nil {
2441 2441
 		c.Fatal(err)
2442 2442
 	}
2443
-	res, err := inspectField(name, "Config.Entrypoint")
2444
-	if err != nil {
2445
-		c.Fatal(err)
2446
-	}
2443
+	res := inspectField(c, name, "Config.Entrypoint")
2447 2444
 	if res != expected {
2448 2445
 		c.Fatalf("Entrypoint %s, expected %s", res, expected)
2449 2446
 	}
... ...
@@ -3123,10 +3056,7 @@ func (s *DockerSuite) TestBuildEntrypointRunCleanup(c *check.C) {
3123 3123
 	if _, err := buildImageFromContext(name, ctx, true); err != nil {
3124 3124
 		c.Fatal(err)
3125 3125
 	}
3126
-	res, err := inspectField(name, "Config.Cmd")
3127
-	if err != nil {
3128
-		c.Fatal(err)
3129
-	}
3126
+	res := inspectField(c, name, "Config.Cmd")
3130 3127
 	// Cmd must be cleaned up
3131 3128
 	if res != "<nil>" {
3132 3129
 		c.Fatalf("Cmd %s, expected nil", res)
... ...
@@ -3185,10 +3115,7 @@ func (s *DockerSuite) TestBuildInheritance(c *check.C) {
3185 3185
 	if err != nil {
3186 3186
 		c.Fatal(err)
3187 3187
 	}
3188
-	ports1, err := inspectField(name, "Config.ExposedPorts")
3189
-	if err != nil {
3190
-		c.Fatal(err)
3191
-	}
3188
+	ports1 := inspectField(c, name, "Config.ExposedPorts")
3192 3189
 
3193 3190
 	_, err = buildImage(name,
3194 3191
 		fmt.Sprintf(`FROM %s
... ...
@@ -3198,17 +3125,11 @@ func (s *DockerSuite) TestBuildInheritance(c *check.C) {
3198 3198
 		c.Fatal(err)
3199 3199
 	}
3200 3200
 
3201
-	res, err := inspectField(name, "Config.Entrypoint")
3202
-	if err != nil {
3203
-		c.Fatal(err)
3204
-	}
3201
+	res := inspectField(c, name, "Config.Entrypoint")
3205 3202
 	if expected := "{[/bin/echo]}"; res != expected {
3206 3203
 		c.Fatalf("Entrypoint %s, expected %s", res, expected)
3207 3204
 	}
3208
-	ports2, err := inspectField(name, "Config.ExposedPorts")
3209
-	if err != nil {
3210
-		c.Fatal(err)
3211
-	}
3205
+	ports2 := inspectField(c, name, "Config.ExposedPorts")
3212 3206
 	if ports1 != ports2 {
3213 3207
 		c.Fatalf("Ports must be same: %s != %s", ports1, ports2)
3214 3208
 	}
... ...
@@ -3345,11 +3266,7 @@ docker.com>"
3345 3345
 		c.Fatal(err)
3346 3346
 	}
3347 3347
 
3348
-	res, err := inspectField(name, "Author")
3349
-
3350
-	if err != nil {
3351
-		c.Fatal(err)
3352
-	}
3348
+	res := inspectField(c, name, "Author")
3353 3349
 
3354 3350
 	if res != "\"Docker IO <io@docker.com>\"" {
3355 3351
 		c.Fatalf("Parsed string did not match the escaped string. Got: %q", res)
... ...
@@ -4318,10 +4235,7 @@ func (s *DockerSuite) TestBuildFromGIT(c *check.C) {
4318 4318
 	if err != nil {
4319 4319
 		c.Fatal(err)
4320 4320
 	}
4321
-	res, err := inspectField(name, "Author")
4322
-	if err != nil {
4323
-		c.Fatal(err)
4324
-	}
4321
+	res := inspectField(c, name, "Author")
4325 4322
 	if res != "docker" {
4326 4323
 		c.Fatalf("Maintainer should be docker, got %s", res)
4327 4324
 	}
... ...
@@ -4347,10 +4261,7 @@ func (s *DockerSuite) TestBuildFromGITWithContext(c *check.C) {
4347 4347
 	if err != nil {
4348 4348
 		c.Fatal(err)
4349 4349
 	}
4350
-	res, err := inspectField(name, "Author")
4351
-	if err != nil {
4352
-		c.Fatal(err)
4353
-	}
4350
+	res := inspectField(c, name, "Author")
4354 4351
 	if res != "docker" {
4355 4352
 		c.Fatalf("Maintainer should be docker, got %s", res)
4356 4353
 	}
... ...
@@ -4411,8 +4322,7 @@ func (s *DockerSuite) TestBuildFromRemoteTarball(c *check.C) {
4411 4411
 	_, err = buildImageFromPath(name, server.URL()+"/testT.tar", true)
4412 4412
 	c.Assert(err, check.IsNil)
4413 4413
 
4414
-	res, err := inspectField(name, "Author")
4415
-	c.Assert(err, check.IsNil)
4414
+	res := inspectField(c, name, "Author")
4416 4415
 
4417 4416
 	if res != "docker" {
4418 4417
 		c.Fatalf("Maintainer should be docker, got %s", res)
... ...
@@ -4435,18 +4345,12 @@ func (s *DockerSuite) TestBuildCleanupCmdOnEntrypoint(c *check.C) {
4435 4435
 		true); err != nil {
4436 4436
 		c.Fatal(err)
4437 4437
 	}
4438
-	res, err := inspectField(name, "Config.Cmd")
4439
-	if err != nil {
4440
-		c.Fatal(err)
4441
-	}
4438
+	res := inspectField(c, name, "Config.Cmd")
4442 4439
 	if res != "<nil>" {
4443 4440
 		c.Fatalf("Cmd %s, expected nil", res)
4444 4441
 	}
4445 4442
 
4446
-	res, err = inspectField(name, "Config.Entrypoint")
4447
-	if err != nil {
4448
-		c.Fatal(err)
4449
-	}
4443
+	res = inspectField(c, name, "Config.Entrypoint")
4450 4444
 	if expected := "{[cat]}"; res != expected {
4451 4445
 		c.Fatalf("Entrypoint %s, expected %s", res, expected)
4452 4446
 	}
... ...
@@ -4463,10 +4367,7 @@ func (s *DockerSuite) TestBuildClearCmd(c *check.C) {
4463 4463
 	if err != nil {
4464 4464
 		c.Fatal(err)
4465 4465
 	}
4466
-	res, err := inspectFieldJSON(name, "Config.Cmd")
4467
-	if err != nil {
4468
-		c.Fatal(err)
4469
-	}
4466
+	res := inspectFieldJSON(c, name, "Config.Cmd")
4470 4467
 	if res != "[]" {
4471 4468
 		c.Fatalf("Cmd %s, expected %s", res, "[]")
4472 4469
 	}
... ...
@@ -4478,10 +4379,7 @@ func (s *DockerSuite) TestBuildEmptyCmd(c *check.C) {
4478 4478
 	if _, err := buildImage(name, "FROM scratch\nMAINTAINER quux\n", true); err != nil {
4479 4479
 		c.Fatal(err)
4480 4480
 	}
4481
-	res, err := inspectFieldJSON(name, "Config.Cmd")
4482
-	if err != nil {
4483
-		c.Fatal(err)
4484
-	}
4481
+	res := inspectFieldJSON(c, name, "Config.Cmd")
4485 4482
 	if res != "null" {
4486 4483
 		c.Fatalf("Cmd %s, expected %s", res, "null")
4487 4484
 	}
... ...
@@ -4522,10 +4420,7 @@ func (s *DockerSuite) TestBuildCmdShDashC(c *check.C) {
4522 4522
 		c.Fatal(err)
4523 4523
 	}
4524 4524
 
4525
-	res, err := inspectFieldJSON(name, "Config.Cmd")
4526
-	if err != nil {
4527
-		c.Fatal(err, res)
4528
-	}
4525
+	res := inspectFieldJSON(c, name, "Config.Cmd")
4529 4526
 
4530 4527
 	expected := `["/bin/sh","-c","echo cmd"]`
4531 4528
 
... ...
@@ -4579,10 +4474,7 @@ func (s *DockerSuite) TestBuildCmdJSONNoShDashC(c *check.C) {
4579 4579
 		c.Fatal(err)
4580 4580
 	}
4581 4581
 
4582
-	res, err := inspectFieldJSON(name, "Config.Cmd")
4583
-	if err != nil {
4584
-		c.Fatal(err, res)
4585
-	}
4582
+	res := inspectFieldJSON(c, name, "Config.Cmd")
4586 4583
 
4587 4584
 	expected := `["echo","cmd"]`
4588 4585
 
... ...
@@ -4646,10 +4538,7 @@ func (s *DockerSuite) TestBuildEntrypointInheritanceInspect(c *check.C) {
4646 4646
 		c.Fatal(err)
4647 4647
 	}
4648 4648
 
4649
-	res, err := inspectFieldJSON(name2, "Config.Entrypoint")
4650
-	if err != nil {
4651
-		c.Fatal(err, res)
4652
-	}
4649
+	res := inspectFieldJSON(c, name2, "Config.Entrypoint")
4653 4650
 
4654 4651
 	if res != expected {
4655 4652
 		c.Fatalf("Expected value %s not in Config.Entrypoint: %s", expected, res)
... ...
@@ -4756,10 +4645,7 @@ func (s *DockerSuite) TestBuildWithTabs(c *check.C) {
4756 4756
 	if err != nil {
4757 4757
 		c.Fatal(err)
4758 4758
 	}
4759
-	res, err := inspectFieldJSON(name, "ContainerConfig.Cmd")
4760
-	if err != nil {
4761
-		c.Fatal(err)
4762
-	}
4759
+	res := inspectFieldJSON(c, name, "ContainerConfig.Cmd")
4763 4760
 	expected1 := `["/bin/sh","-c","echo\tone\t\ttwo"]`
4764 4761
 	expected2 := `["/bin/sh","-c","echo\u0009one\u0009\u0009two"]` // syntactically equivalent, and what Go 1.3 generates
4765 4762
 	if res != expected1 && res != expected2 {
... ...
@@ -4779,10 +4665,7 @@ func (s *DockerSuite) TestBuildLabels(c *check.C) {
4779 4779
 	if err != nil {
4780 4780
 		c.Fatal(err)
4781 4781
 	}
4782
-	res, err := inspectFieldJSON(name, "Config.Labels")
4783
-	if err != nil {
4784
-		c.Fatal(err)
4785
-	}
4782
+	res := inspectFieldJSON(c, name, "Config.Labels")
4786 4783
 	if res != expected {
4787 4784
 		c.Fatalf("Labels %s, expected %s", res, expected)
4788 4785
 	}
... ...
@@ -5869,8 +5752,7 @@ func (s *DockerSuite) TestBuildStopSignal(c *check.C) {
5869 5869
 		 STOPSIGNAL SIGKILL`,
5870 5870
 		true)
5871 5871
 	c.Assert(err, check.IsNil)
5872
-	res, err := inspectFieldJSON(name, "Config.StopSignal")
5873
-	c.Assert(err, check.IsNil)
5872
+	res := inspectFieldJSON(c, name, "Config.StopSignal")
5874 5873
 
5875 5874
 	if res != `"SIGKILL"` {
5876 5875
 		c.Fatalf("Signal %s, expected SIGKILL", res)
... ...
@@ -6138,18 +6020,12 @@ func (s *DockerSuite) TestBuildBuildTimeArgExpansion(c *check.C) {
6138 6138
 	var resMap map[string]interface{}
6139 6139
 	var resArr []string
6140 6140
 	res := ""
6141
-	res, err = inspectField(imgName, "Config.WorkingDir")
6142
-	if err != nil {
6143
-		c.Fatal(err)
6144
-	}
6141
+	res = inspectField(c, imgName, "Config.WorkingDir")
6145 6142
 	if res != filepath.ToSlash(filepath.Clean(wdVal)) {
6146 6143
 		c.Fatalf("Config.WorkingDir value mismatch. Expected: %s, got: %s", filepath.ToSlash(filepath.Clean(wdVal)), res)
6147 6144
 	}
6148 6145
 
6149
-	err = inspectFieldAndMarshall(imgName, "Config.Env", &resArr)
6150
-	if err != nil {
6151
-		c.Fatal(err)
6152
-	}
6146
+	inspectFieldAndMarshall(c, imgName, "Config.Env", &resArr)
6153 6147
 
6154 6148
 	found := false
6155 6149
 	for _, v := range resArr {
... ...
@@ -6163,26 +6039,17 @@ func (s *DockerSuite) TestBuildBuildTimeArgExpansion(c *check.C) {
6163 6163
 			envVar, envVal, resArr)
6164 6164
 	}
6165 6165
 
6166
-	err = inspectFieldAndMarshall(imgName, "Config.ExposedPorts", &resMap)
6167
-	if err != nil {
6168
-		c.Fatal(err)
6169
-	}
6166
+	inspectFieldAndMarshall(c, imgName, "Config.ExposedPorts", &resMap)
6170 6167
 	if _, ok := resMap[fmt.Sprintf("%s/tcp", exposeVal)]; !ok {
6171 6168
 		c.Fatalf("Config.ExposedPorts value mismatch. Expected exposed port: %s/tcp, got: %v", exposeVal, resMap)
6172 6169
 	}
6173 6170
 
6174
-	res, err = inspectField(imgName, "Config.User")
6175
-	if err != nil {
6176
-		c.Fatal(err)
6177
-	}
6171
+	res = inspectField(c, imgName, "Config.User")
6178 6172
 	if res != userVal {
6179 6173
 		c.Fatalf("Config.User value mismatch. Expected: %s, got: %s", userVal, res)
6180 6174
 	}
6181 6175
 
6182
-	err = inspectFieldAndMarshall(imgName, "Config.Volumes", &resMap)
6183
-	if err != nil {
6184
-		c.Fatal(err)
6185
-	}
6176
+	inspectFieldAndMarshall(c, imgName, "Config.Volumes", &resMap)
6186 6177
 	if _, ok := resMap[volVal]; !ok {
6187 6178
 		c.Fatalf("Config.Volumes value mismatch. Expected volume: %s, got: %v", volVal, resMap)
6188 6179
 	}
... ...
@@ -47,8 +47,7 @@ func (s *DockerSuite) TestBuildResourceConstraintsAreUsed(c *check.C) {
47 47
 		Ulimits    []*units.Ulimit
48 48
 	}
49 49
 
50
-	cfg, err := inspectFieldJSON(cID, "HostConfig")
51
-	c.Assert(err, checker.IsNil)
50
+	cfg := inspectFieldJSON(c, cID, "HostConfig")
52 51
 
53 52
 	var c1 hostConfig
54 53
 	err = json.Unmarshal([]byte(cfg), &c1)
... ...
@@ -66,8 +65,7 @@ func (s *DockerSuite) TestBuildResourceConstraintsAreUsed(c *check.C) {
66 66
 	// Make sure constraints aren't saved to image
67 67
 	dockerCmd(c, "run", "--name=test", name)
68 68
 
69
-	cfg, err = inspectFieldJSON("test", "HostConfig")
70
-	c.Assert(err, checker.IsNil)
69
+	cfg = inspectFieldJSON(c, "test", "HostConfig")
71 70
 
72 71
 	var c2 hostConfig
73 72
 	err = json.Unmarshal([]byte(cfg), &c2)
... ...
@@ -132,10 +132,9 @@ func (s *DockerRegistrySuite) TestCreateByDigest(c *check.C) {
132 132
 	imageReference := fmt.Sprintf("%s@%s", repoName, pushDigest)
133 133
 
134 134
 	containerName := "createByDigest"
135
-	out, _ := dockerCmd(c, "create", "--name", containerName, imageReference)
135
+	dockerCmd(c, "create", "--name", containerName, imageReference)
136 136
 
137
-	res, err := inspectField(containerName, "Config.Image")
138
-	c.Assert(err, checker.IsNil, check.Commentf("failed to get Config.Image: %s", out))
137
+	res := inspectField(c, containerName, "Config.Image")
139 138
 	c.Assert(res, checker.Equals, imageReference)
140 139
 }
141 140
 
... ...
@@ -153,8 +152,7 @@ func (s *DockerRegistrySuite) TestRunByDigest(c *check.C) {
153 153
 	c.Assert(matches, checker.HasLen, 2, check.Commentf("unable to parse digest from pull output: %s", out))
154 154
 	c.Assert(matches[1], checker.Equals, "1", check.Commentf("Expected %q, got %q", "1", matches[1]))
155 155
 
156
-	res, err := inspectField(containerName, "Config.Image")
157
-	c.Assert(err, checker.IsNil, check.Commentf("failed to get Config.Image: %s", out))
156
+	res := inspectField(c, containerName, "Config.Image")
158 157
 	c.Assert(res, checker.Equals, imageReference)
159 158
 }
160 159
 
... ...
@@ -168,15 +166,14 @@ func (s *DockerRegistrySuite) TestRemoveImageByDigest(c *check.C) {
168 168
 	dockerCmd(c, "pull", imageReference)
169 169
 
170 170
 	// make sure inspect runs ok
171
-	_, err = inspectField(imageReference, "Id")
172
-	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect image"))
171
+	inspectField(c, imageReference, "Id")
173 172
 
174 173
 	// do the delete
175 174
 	err = deleteImages(imageReference)
176 175
 	c.Assert(err, checker.IsNil, check.Commentf("unexpected error deleting image"))
177 176
 
178 177
 	// try to inspect again - it should error this time
179
-	_, err = inspectField(imageReference, "Id")
178
+	_, err = inspectFieldWithError(imageReference, "Id")
180 179
 	//unexpected nil err trying to inspect what should be a non-existent image
181 180
 	c.Assert(err, checker.NotNil)
182 181
 	c.Assert(err.Error(), checker.Contains, "No such image")
... ...
@@ -192,8 +189,7 @@ func (s *DockerRegistrySuite) TestBuildByDigest(c *check.C) {
192 192
 	dockerCmd(c, "pull", imageReference)
193 193
 
194 194
 	// get the image id
195
-	imageID, err := inspectField(imageReference, "Id")
196
-	c.Assert(err, checker.IsNil, check.Commentf("error getting image id"))
195
+	imageID := inspectField(c, imageReference, "Id")
197 196
 
198 197
 	// do the build
199 198
 	name := "buildbydigest"
... ...
@@ -204,8 +200,7 @@ func (s *DockerRegistrySuite) TestBuildByDigest(c *check.C) {
204 204
 	c.Assert(err, checker.IsNil)
205 205
 
206 206
 	// get the build's image id
207
-	res, err := inspectField(name, "Config.Image")
208
-	c.Assert(err, checker.IsNil)
207
+	res := inspectField(c, name, "Config.Image")
209 208
 	// make sure they match
210 209
 	c.Assert(res, checker.Equals, imageID)
211 210
 }
... ...
@@ -223,11 +218,9 @@ func (s *DockerRegistrySuite) TestTagByDigest(c *check.C) {
223 223
 	tag := "tagbydigest"
224 224
 	dockerCmd(c, "tag", imageReference, tag)
225 225
 
226
-	expectedID, err := inspectField(imageReference, "Id")
227
-	c.Assert(err, checker.IsNil, check.Commentf("error getting original image id"))
226
+	expectedID := inspectField(c, imageReference, "Id")
228 227
 
229
-	tagID, err := inspectField(tag, "Id")
230
-	c.Assert(err, checker.IsNil, check.Commentf("error getting tagged image id"))
228
+	tagID := inspectField(c, tag, "Id")
231 229
 	c.Assert(tagID, checker.Equals, expectedID)
232 230
 }
233 231
 
... ...
@@ -389,8 +382,7 @@ func (s *DockerRegistrySuite) TestDeleteImageByIDOnlyPulledByDigest(c *check.C)
389 389
 	dockerCmd(c, "pull", imageReference)
390 390
 	// just in case...
391 391
 
392
-	imageID, err := inspectField(imageReference, "Id")
393
-	c.Assert(err, checker.IsNil, check.Commentf("error inspecting image id"))
392
+	imageID := inspectField(c, imageReference, "Id")
394 393
 
395 394
 	dockerCmd(c, "rmi", imageID)
396 395
 }
... ...
@@ -403,8 +395,7 @@ func (s *DockerRegistrySuite) TestDeleteImageWithDigestAndTag(c *check.C) {
403 403
 	imageReference := fmt.Sprintf("%s@%s", repoName, pushDigest)
404 404
 	dockerCmd(c, "pull", imageReference)
405 405
 
406
-	imageID, err := inspectField(imageReference, "Id")
407
-	c.Assert(err, checker.IsNil, check.Commentf("error inspecting image id"))
406
+	imageID := inspectField(c, imageReference, "Id")
408 407
 
409 408
 	repoTag := repoName + ":sometag"
410 409
 	repoTag2 := repoName + ":othertag"
... ...
@@ -414,13 +405,12 @@ func (s *DockerRegistrySuite) TestDeleteImageWithDigestAndTag(c *check.C) {
414 414
 	dockerCmd(c, "rmi", repoTag2)
415 415
 
416 416
 	// rmi should have deleted only repoTag2, because there's another tag
417
-	_, err = inspectField(repoTag, "Id")
418
-	c.Assert(err, checker.IsNil, check.Commentf("repoTag should not have been removed"))
417
+	inspectField(c, repoTag, "Id")
419 418
 
420 419
 	dockerCmd(c, "rmi", repoTag)
421 420
 
422 421
 	// rmi should have deleted the tag, the digest reference, and the image itself
423
-	_, err = inspectField(imageID, "Id")
422
+	_, err = inspectFieldWithError(imageID, "Id")
424 423
 	c.Assert(err, checker.NotNil, check.Commentf("image should have been deleted"))
425 424
 }
426 425
 
... ...
@@ -49,8 +49,7 @@ func (s *DockerSuite) TestCommitPausedContainer(c *check.C) {
49 49
 
50 50
 	out, _ = dockerCmd(c, "commit", cleanedContainerID)
51 51
 
52
-	out, err := inspectField(cleanedContainerID, "State.Paused")
53
-	c.Assert(err, checker.IsNil, check.Commentf("%s", out))
52
+	out = inspectField(c, cleanedContainerID, "State.Paused")
54 53
 	// commit should not unpause a paused container
55 54
 	c.Assert(out, checker.Contains, "true")
56 55
 }
... ...
@@ -139,8 +138,7 @@ func (s *DockerSuite) TestCommitChange(c *check.C) {
139 139
 	}
140 140
 
141 141
 	for conf, value := range expected {
142
-		res, err := inspectField(imageID, conf)
143
-		c.Assert(err, checker.IsNil, check.Commentf("%s('%s')", conf, res))
142
+		res := inspectField(c, imageID, conf)
144 143
 		if res != value {
145 144
 			c.Errorf("%s('%s'), expected %s", conf, res, value)
146 145
 		}
... ...
@@ -165,12 +163,10 @@ func (s *DockerSuite) TestCommitMergeConfigRun(c *check.C) {
165 165
 		Cmd []string
166 166
 	}
167 167
 	config1 := cfg{}
168
-	err := inspectFieldAndMarshall(id, "Config", &config1)
169
-	c.Assert(err, checker.IsNil)
168
+	inspectFieldAndMarshall(c, id, "Config", &config1)
170 169
 
171 170
 	config2 := cfg{}
172
-	err = inspectFieldAndMarshall(name, "Config", &config2)
173
-	c.Assert(err, checker.IsNil)
171
+	inspectFieldAndMarshall(c, name, "Config", &config2)
174 172
 
175 173
 	// Env has at least PATH loaded as well here, so let's just grab the FOO one
176 174
 	var env1, env2 string
... ...
@@ -178,8 +178,7 @@ func (s *DockerSuite) TestCreateLabels(c *check.C) {
178 178
 	dockerCmd(c, "create", "--name", name, "-l", "k1=v1", "--label", "k2=v2", "busybox")
179 179
 
180 180
 	actual := make(map[string]string)
181
-	err := inspectFieldAndMarshall(name, "Config.Labels", &actual)
182
-	c.Assert(err, check.IsNil)
181
+	inspectFieldAndMarshall(c, name, "Config.Labels", &actual)
183 182
 
184 183
 	if !reflect.DeepEqual(expected, actual) {
185 184
 		c.Fatalf("Expected %s got %s", expected, actual)
... ...
@@ -201,8 +200,7 @@ func (s *DockerSuite) TestCreateLabelFromImage(c *check.C) {
201 201
 	dockerCmd(c, "create", "--name", name, "-l", "k2=x", "--label", "k3=v3", imageName)
202 202
 
203 203
 	actual := make(map[string]string)
204
-	err = inspectFieldAndMarshall(name, "Config.Labels", &actual)
205
-	c.Assert(err, check.IsNil)
204
+	inspectFieldAndMarshall(c, name, "Config.Labels", &actual)
206 205
 
207 206
 	if !reflect.DeepEqual(expected, actual) {
208 207
 		c.Fatalf("Expected %s got %s", expected, actual)
... ...
@@ -411,8 +409,7 @@ func (s *DockerSuite) TestCreateStopSignal(c *check.C) {
411 411
 	name := "test_create_stop_signal"
412 412
 	dockerCmd(c, "create", "--name", name, "--stop-signal", "9", "busybox")
413 413
 
414
-	res, err := inspectFieldJSON(name, "Config.StopSignal")
415
-	c.Assert(err, check.IsNil)
414
+	res := inspectFieldJSON(c, name, "Config.StopSignal")
416 415
 	c.Assert(res, checker.Contains, "9")
417 416
 
418 417
 }
... ...
@@ -336,8 +336,7 @@ func (s *DockerSuite) TestEventsFilterContainer(c *check.C) {
336 336
 
337 337
 	for _, name := range []string{"container_1", "container_2"} {
338 338
 		dockerCmd(c, "run", "--name", name, "busybox", "true")
339
-		id, err := inspectField(name, "Id")
340
-		c.Assert(err, checker.IsNil)
339
+		id := inspectField(c, name, "Id")
341 340
 		nameID[name] = id
342 341
 	}
343 342
 
... ...
@@ -95,8 +95,7 @@ func (s *DockerSuite) TestEventsOOMDisableTrue(c *check.C) {
95 95
 
96 96
 	c.Assert(waitRun("oomTrue"), checker.IsNil)
97 97
 	defer dockerCmd(c, "kill", "oomTrue")
98
-	containerID, err := inspectField("oomTrue", "Id")
99
-	c.Assert(err, checker.IsNil)
98
+	containerID := inspectField(c, "oomTrue", "Id")
100 99
 
101 100
 	testActions := map[string]chan bool{
102 101
 		"oom": make(chan bool),
... ...
@@ -119,8 +118,7 @@ func (s *DockerSuite) TestEventsOOMDisableTrue(c *check.C) {
119 119
 		}
120 120
 	}
121 121
 
122
-	status, err := inspectField("oomTrue", "State.Status")
123
-	c.Assert(err, checker.IsNil)
122
+	status := inspectField(c, "oomTrue", "State.Status")
124 123
 	c.Assert(strings.TrimSpace(status), checker.Equals, "running", check.Commentf("container should be still running"))
125 124
 }
126 125
 
... ...
@@ -288,23 +288,21 @@ func (s *DockerSuite) TestInspectExecID(c *check.C) {
288 288
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
289 289
 	id := strings.TrimSuffix(out, "\n")
290 290
 
291
-	out, err := inspectField(id, "ExecIDs")
292
-	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect container: %s", out))
291
+	out = inspectField(c, id, "ExecIDs")
293 292
 	c.Assert(out, checker.Equals, "[]", check.Commentf("ExecIDs should be empty, got: %s", out))
294 293
 
295 294
 	// Start an exec, have it block waiting so we can do some checking
296 295
 	cmd := exec.Command(dockerBinary, "exec", id, "sh", "-c",
297 296
 		"while ! test -e /tmp/execid1; do sleep 1; done")
298 297
 
299
-	err = cmd.Start()
298
+	err := cmd.Start()
300 299
 	c.Assert(err, checker.IsNil, check.Commentf("failed to start the exec cmd"))
301 300
 
302 301
 	// Give the exec 10 chances/seconds to start then give up and stop the test
303 302
 	tries := 10
304 303
 	for i := 0; i < tries; i++ {
305 304
 		// Since its still running we should see exec as part of the container
306
-		out, err = inspectField(id, "ExecIDs")
307
-		c.Assert(err, checker.IsNil, check.Commentf("failed to inspect container: %s", out))
305
+		out = inspectField(c, id, "ExecIDs")
308 306
 
309 307
 		out = strings.TrimSuffix(out, "\n")
310 308
 		if out != "[]" && out != "<no value>" {
... ...
@@ -328,8 +326,7 @@ func (s *DockerSuite) TestInspectExecID(c *check.C) {
328 328
 	cmd.Wait()
329 329
 
330 330
 	// All execs for the container should be gone now
331
-	out, err = inspectField(id, "ExecIDs")
332
-	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect container: %s", out))
331
+	out = inspectField(c, id, "ExecIDs")
333 332
 
334 333
 	out = strings.TrimSuffix(out, "\n")
335 334
 	c.Assert(out == "[]" || out == "<no value>", checker.True)
... ...
@@ -12,11 +12,10 @@ func (s *DockerSuite) TestInspectNamedMountPoint(c *check.C) {
12 12
 	testRequires(c, DaemonIsLinux)
13 13
 	dockerCmd(c, "run", "-d", "--name", "test", "-v", "data:/data", "busybox", "cat")
14 14
 
15
-	vol, err := inspectFieldJSON("test", "Mounts")
16
-	c.Assert(err, checker.IsNil)
15
+	vol := inspectFieldJSON(c, "test", "Mounts")
17 16
 
18 17
 	var mp []types.MountPoint
19
-	err = unmarshalJSON([]byte(vol), &mp)
18
+	err := unmarshalJSON([]byte(vol), &mp)
20 19
 	c.Assert(err, checker.IsNil)
21 20
 
22 21
 	c.Assert(mp, checker.HasLen, 1, check.Commentf("Expected 1 mount point"))
... ...
@@ -29,8 +29,7 @@ func (s *DockerSuite) TestInspectImage(c *check.C) {
29 29
 	// fails, fix the difference in the image serialization instead of
30 30
 	// updating this hash.
31 31
 	imageTestID := "sha256:11f64303f0f7ffdc71f001788132bca5346831939a956e3e975c93267d89a16d"
32
-	id, err := inspectField(imageTest, "Id")
33
-	c.Assert(err, checker.IsNil)
32
+	id := inspectField(c, imageTest, "Id")
34 33
 
35 34
 	c.Assert(id, checker.Equals, imageTestID)
36 35
 }
... ...
@@ -39,8 +38,7 @@ func (s *DockerSuite) TestInspectInt64(c *check.C) {
39 39
 	testRequires(c, DaemonIsLinux)
40 40
 
41 41
 	dockerCmd(c, "run", "-d", "-m=300M", "--name", "inspectTest", "busybox", "true")
42
-	inspectOut, err := inspectField("inspectTest", "HostConfig.Memory")
43
-	c.Assert(err, check.IsNil)
42
+	inspectOut := inspectField(c, "inspectTest", "HostConfig.Memory")
44 43
 	c.Assert(inspectOut, checker.Equals, "314572800")
45 44
 }
46 45
 
... ...
@@ -52,8 +50,7 @@ func (s *DockerSuite) TestInspectDefault(c *check.C) {
52 52
 	out, _ := dockerCmd(c, "run", "--name=busybox", "-d", "busybox", "true")
53 53
 	containerID := strings.TrimSpace(out)
54 54
 
55
-	inspectOut, err := inspectField("busybox", "Id")
56
-	c.Assert(err, checker.IsNil)
55
+	inspectOut := inspectField(c, "busybox", "Id")
57 56
 	c.Assert(strings.TrimSpace(inspectOut), checker.Equals, containerID)
58 57
 }
59 58
 
... ...
@@ -63,23 +60,19 @@ func (s *DockerSuite) TestInspectStatus(c *check.C) {
63 63
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
64 64
 	out = strings.TrimSpace(out)
65 65
 
66
-	inspectOut, err := inspectField(out, "State.Status")
67
-	c.Assert(err, checker.IsNil)
66
+	inspectOut := inspectField(c, out, "State.Status")
68 67
 	c.Assert(inspectOut, checker.Equals, "running")
69 68
 
70 69
 	dockerCmd(c, "pause", out)
71
-	inspectOut, err = inspectField(out, "State.Status")
72
-	c.Assert(err, checker.IsNil)
70
+	inspectOut = inspectField(c, out, "State.Status")
73 71
 	c.Assert(inspectOut, checker.Equals, "paused")
74 72
 
75 73
 	dockerCmd(c, "unpause", out)
76
-	inspectOut, err = inspectField(out, "State.Status")
77
-	c.Assert(err, checker.IsNil)
74
+	inspectOut = inspectField(c, out, "State.Status")
78 75
 	c.Assert(inspectOut, checker.Equals, "running")
79 76
 
80 77
 	dockerCmd(c, "stop", out)
81
-	inspectOut, err = inspectField(out, "State.Status")
82
-	c.Assert(err, checker.IsNil)
78
+	inspectOut = inspectField(c, out, "State.Status")
83 79
 	c.Assert(inspectOut, checker.Equals, "exited")
84 80
 
85 81
 }
... ...
@@ -137,8 +130,7 @@ func (s *DockerSuite) TestInspectTypeFlagWithInvalidValue(c *check.C) {
137 137
 func (s *DockerSuite) TestInspectImageFilterInt(c *check.C) {
138 138
 	testRequires(c, DaemonIsLinux)
139 139
 	imageTest := "emptyfs"
140
-	out, err := inspectField(imageTest, "Size")
141
-	c.Assert(err, checker.IsNil)
140
+	out := inspectField(c, imageTest, "Size")
142 141
 
143 142
 	size, err := strconv.Atoi(out)
144 143
 	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect size of the image: %s, %v", out, err))
... ...
@@ -160,8 +152,7 @@ func (s *DockerSuite) TestInspectContainerFilterInt(c *check.C) {
160 160
 
161 161
 	id := strings.TrimSpace(out)
162 162
 
163
-	out, err = inspectField(id, "State.ExitCode")
164
-	c.Assert(err, checker.IsNil)
163
+	out = inspectField(c, id, "State.ExitCode")
165 164
 
166 165
 	exitCode, err := strconv.Atoi(out)
167 166
 	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect exitcode of the container: %s, %v", out, err))
... ...
@@ -177,8 +168,7 @@ func (s *DockerSuite) TestInspectContainerFilterInt(c *check.C) {
177 177
 func (s *DockerSuite) TestInspectImageGraphDriver(c *check.C) {
178 178
 	testRequires(c, DaemonIsLinux)
179 179
 	imageTest := "emptyfs"
180
-	name, err := inspectField(imageTest, "GraphDriver.Name")
181
-	c.Assert(err, checker.IsNil)
180
+	name := inspectField(c, imageTest, "GraphDriver.Name")
182 181
 
183 182
 	checkValidGraphDriver(c, name)
184 183
 
... ...
@@ -186,14 +176,12 @@ func (s *DockerSuite) TestInspectImageGraphDriver(c *check.C) {
186 186
 		c.Skip("requires devicemapper graphdriver")
187 187
 	}
188 188
 
189
-	deviceID, err := inspectField(imageTest, "GraphDriver.Data.DeviceId")
190
-	c.Assert(err, checker.IsNil)
189
+	deviceID := inspectField(c, imageTest, "GraphDriver.Data.DeviceId")
191 190
 
192
-	_, err = strconv.Atoi(deviceID)
191
+	_, err := strconv.Atoi(deviceID)
193 192
 	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect DeviceId of the image: %s, %v", deviceID, err))
194 193
 
195
-	deviceSize, err := inspectField(imageTest, "GraphDriver.Data.DeviceSize")
196
-	c.Assert(err, checker.IsNil)
194
+	deviceSize := inspectField(c, imageTest, "GraphDriver.Data.DeviceSize")
197 195
 
198 196
 	_, err = strconv.ParseUint(deviceSize, 10, 64)
199 197
 	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect DeviceSize of the image: %s, %v", deviceSize, err))
... ...
@@ -204,8 +192,7 @@ func (s *DockerSuite) TestInspectContainerGraphDriver(c *check.C) {
204 204
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "true")
205 205
 	out = strings.TrimSpace(out)
206 206
 
207
-	name, err := inspectField(out, "GraphDriver.Name")
208
-	c.Assert(err, checker.IsNil)
207
+	name := inspectField(c, out, "GraphDriver.Name")
209 208
 
210 209
 	checkValidGraphDriver(c, name)
211 210
 
... ...
@@ -213,19 +200,16 @@ func (s *DockerSuite) TestInspectContainerGraphDriver(c *check.C) {
213 213
 		return
214 214
 	}
215 215
 
216
-	imageDeviceID, err := inspectField("busybox", "GraphDriver.Data.DeviceId")
217
-	c.Assert(err, checker.IsNil)
216
+	imageDeviceID := inspectField(c, "busybox", "GraphDriver.Data.DeviceId")
218 217
 
219
-	deviceID, err := inspectField(out, "GraphDriver.Data.DeviceId")
220
-	c.Assert(err, checker.IsNil)
218
+	deviceID := inspectField(c, out, "GraphDriver.Data.DeviceId")
221 219
 
222 220
 	c.Assert(imageDeviceID, checker.Not(checker.Equals), deviceID)
223 221
 
224
-	_, err = strconv.Atoi(deviceID)
222
+	_, err := strconv.Atoi(deviceID)
225 223
 	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect DeviceId of the image: %s, %v", deviceID, err))
226 224
 
227
-	deviceSize, err := inspectField(out, "GraphDriver.Data.DeviceSize")
228
-	c.Assert(err, checker.IsNil)
225
+	deviceSize := inspectField(c, out, "GraphDriver.Data.DeviceSize")
229 226
 
230 227
 	_, err = strconv.ParseUint(deviceSize, 10, 64)
231 228
 	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect DeviceSize of the image: %s, %v", deviceSize, err))
... ...
@@ -235,11 +219,10 @@ func (s *DockerSuite) TestInspectBindMountPoint(c *check.C) {
235 235
 	testRequires(c, DaemonIsLinux)
236 236
 	dockerCmd(c, "run", "-d", "--name", "test", "-v", "/data:/data:ro,z", "busybox", "cat")
237 237
 
238
-	vol, err := inspectFieldJSON("test", "Mounts")
239
-	c.Assert(err, checker.IsNil)
238
+	vol := inspectFieldJSON(c, "test", "Mounts")
240 239
 
241 240
 	var mp []types.MountPoint
242
-	err = unmarshalJSON([]byte(vol), &mp)
241
+	err := unmarshalJSON([]byte(vol), &mp)
243 242
 	c.Assert(err, checker.IsNil)
244 243
 
245 244
 	// check that there is only one mountpoint
... ...
@@ -260,22 +243,18 @@ func (s *DockerSuite) TestInspectTimesAsRFC3339Nano(c *check.C) {
260 260
 	testRequires(c, DaemonIsLinux)
261 261
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "true")
262 262
 	id := strings.TrimSpace(out)
263
-	startedAt, err := inspectField(id, "State.StartedAt")
264
-	c.Assert(err, checker.IsNil)
265
-	finishedAt, err := inspectField(id, "State.FinishedAt")
266
-	c.Assert(err, checker.IsNil)
267
-	created, err := inspectField(id, "Created")
268
-	c.Assert(err, checker.IsNil)
263
+	startedAt := inspectField(c, id, "State.StartedAt")
264
+	finishedAt := inspectField(c, id, "State.FinishedAt")
265
+	created := inspectField(c, id, "Created")
269 266
 
270
-	_, err = time.Parse(time.RFC3339Nano, startedAt)
267
+	_, err := time.Parse(time.RFC3339Nano, startedAt)
271 268
 	c.Assert(err, checker.IsNil)
272 269
 	_, err = time.Parse(time.RFC3339Nano, finishedAt)
273 270
 	c.Assert(err, checker.IsNil)
274 271
 	_, err = time.Parse(time.RFC3339Nano, created)
275 272
 	c.Assert(err, checker.IsNil)
276 273
 
277
-	created, err = inspectField("busybox", "Created")
278
-	c.Assert(err, checker.IsNil)
274
+	created = inspectField(c, "busybox", "Created")
279 275
 
280 276
 	_, err = time.Parse(time.RFC3339Nano, created)
281 277
 	c.Assert(err, checker.IsNil)
... ...
@@ -287,10 +266,9 @@ func (s *DockerSuite) TestInspectLogConfigNoType(c *check.C) {
287 287
 	dockerCmd(c, "create", "--name=test", "--log-opt", "max-file=42", "busybox")
288 288
 	var logConfig container.LogConfig
289 289
 
290
-	out, err := inspectFieldJSON("test", "HostConfig.LogConfig")
291
-	c.Assert(err, checker.IsNil, check.Commentf("%v", out))
290
+	out := inspectFieldJSON(c, "test", "HostConfig.LogConfig")
292 291
 
293
-	err = json.NewDecoder(strings.NewReader(out)).Decode(&logConfig)
292
+	err := json.NewDecoder(strings.NewReader(out)).Decode(&logConfig)
294 293
 	c.Assert(err, checker.IsNil, check.Commentf("%v", out))
295 294
 
296 295
 	c.Assert(logConfig.Type, checker.Equals, "json-file")
... ...
@@ -355,16 +333,13 @@ func (s *DockerSuite) TestInspectJSONFields(c *check.C) {
355 355
 }
356 356
 
357 357
 func (s *DockerSuite) TestInspectByPrefix(c *check.C) {
358
-	id, err := inspectField("busybox", "Id")
359
-	c.Assert(err, checker.IsNil)
358
+	id := inspectField(c, "busybox", "Id")
360 359
 	c.Assert(id, checker.HasPrefix, "sha256:")
361 360
 
362
-	id2, err := inspectField(id[:12], "Id")
363
-	c.Assert(err, checker.IsNil)
361
+	id2 := inspectField(c, id[:12], "Id")
364 362
 	c.Assert(id, checker.Equals, id2)
365 363
 
366
-	id3, err := inspectField(strings.TrimPrefix(id, "sha256:")[:12], "Id")
367
-	c.Assert(err, checker.IsNil)
364
+	id3 := inspectField(c, strings.TrimPrefix(id, "sha256:")[:12], "Id")
368 365
 	c.Assert(id, checker.Equals, id3)
369 366
 }
370 367
 
... ...
@@ -395,11 +370,9 @@ func (s *DockerSuite) TestInspectContainerNetworkDefault(c *check.C) {
395 395
 	contName := "test1"
396 396
 	dockerCmd(c, "run", "--name", contName, "-d", "busybox", "top")
397 397
 	netOut, _ := dockerCmd(c, "network", "inspect", "--format='{{.ID}}'", "bridge")
398
-	out, err := inspectField(contName, "NetworkSettings.Networks")
399
-	c.Assert(err, checker.IsNil)
398
+	out := inspectField(c, contName, "NetworkSettings.Networks")
400 399
 	c.Assert(out, checker.Contains, "bridge")
401
-	out, err = inspectField(contName, "NetworkSettings.Networks.bridge.NetworkID")
402
-	c.Assert(err, checker.IsNil)
400
+	out = inspectField(c, contName, "NetworkSettings.Networks.bridge.NetworkID")
403 401
 	c.Assert(strings.TrimSpace(out), checker.Equals, strings.TrimSpace(netOut))
404 402
 }
405 403
 
... ...
@@ -408,10 +381,8 @@ func (s *DockerSuite) TestInspectContainerNetworkCustom(c *check.C) {
408 408
 
409 409
 	netOut, _ := dockerCmd(c, "network", "create", "net1")
410 410
 	dockerCmd(c, "run", "--name=container1", "--net=net1", "-d", "busybox", "top")
411
-	out, err := inspectField("container1", "NetworkSettings.Networks")
412
-	c.Assert(err, checker.IsNil)
411
+	out := inspectField(c, "container1", "NetworkSettings.Networks")
413 412
 	c.Assert(out, checker.Contains, "net1")
414
-	out, err = inspectField("container1", "NetworkSettings.Networks.net1.NetworkID")
415
-	c.Assert(err, checker.IsNil)
413
+	out = inspectField(c, "container1", "NetworkSettings.Networks.net1.NetworkID")
416 414
 	c.Assert(strings.TrimSpace(out), checker.Equals, strings.TrimSpace(netOut))
417 415
 }
... ...
@@ -55,7 +55,7 @@ func (s *DockerSuite) TestKillWithSignal(c *check.C) {
55 55
 
56 56
 	dockerCmd(c, "kill", "-s", "SIGWINCH", cid)
57 57
 
58
-	running, _ := inspectField(cid, "State.Running")
58
+	running := inspectField(c, cid, "State.Running")
59 59
 
60 60
 	c.Assert(running, checker.Equals, "true", check.Commentf("Container should be in running state after SIGWINCH"))
61 61
 }
... ...
@@ -70,7 +70,7 @@ func (s *DockerSuite) TestKillWithInvalidSignal(c *check.C) {
70 70
 	c.Assert(err, check.NotNil)
71 71
 	c.Assert(out, checker.Contains, "Invalid signal: 0", check.Commentf("Kill with an invalid signal didn't error out correctly"))
72 72
 
73
-	running, _ := inspectField(cid, "State.Running")
73
+	running := inspectField(c, cid, "State.Running")
74 74
 	c.Assert(running, checker.Equals, "true", check.Commentf("Container should be in running state after an invalid signal"))
75 75
 
76 76
 	out, _ = dockerCmd(c, "run", "-d", "busybox", "top")
... ...
@@ -81,7 +81,7 @@ func (s *DockerSuite) TestKillWithInvalidSignal(c *check.C) {
81 81
 	c.Assert(err, check.NotNil)
82 82
 	c.Assert(out, checker.Contains, "Invalid signal: SIG42", check.Commentf("Kill with an invalid signal error out correctly"))
83 83
 
84
-	running, _ = inspectField(cid, "State.Running")
84
+	running = inspectField(c, cid, "State.Running")
85 85
 	c.Assert(running, checker.Equals, "true", check.Commentf("Container should be in running state after an invalid signal"))
86 86
 
87 87
 }
... ...
@@ -69,10 +69,9 @@ func (s *DockerSuite) TestLinksInspectLinksStarted(c *check.C) {
69 69
 	dockerCmd(c, "run", "-d", "--name", "container1", "busybox", "top")
70 70
 	dockerCmd(c, "run", "-d", "--name", "container2", "busybox", "top")
71 71
 	dockerCmd(c, "run", "-d", "--name", "testinspectlink", "--link", "container1:alias1", "--link", "container2:alias2", "busybox", "top")
72
-	links, err := inspectFieldJSON("testinspectlink", "HostConfig.Links")
73
-	c.Assert(err, checker.IsNil)
72
+	links := inspectFieldJSON(c, "testinspectlink", "HostConfig.Links")
74 73
 
75
-	err = unmarshalJSON([]byte(links), &result)
74
+	err := unmarshalJSON([]byte(links), &result)
76 75
 	c.Assert(err, checker.IsNil)
77 76
 
78 77
 	output := convertSliceOfStringsToMap(result)
... ...
@@ -89,10 +88,9 @@ func (s *DockerSuite) TestLinksInspectLinksStopped(c *check.C) {
89 89
 	dockerCmd(c, "run", "-d", "--name", "container1", "busybox", "top")
90 90
 	dockerCmd(c, "run", "-d", "--name", "container2", "busybox", "top")
91 91
 	dockerCmd(c, "run", "-d", "--name", "testinspectlink", "--link", "container1:alias1", "--link", "container2:alias2", "busybox", "true")
92
-	links, err := inspectFieldJSON("testinspectlink", "HostConfig.Links")
93
-	c.Assert(err, checker.IsNil)
92
+	links := inspectFieldJSON(c, "testinspectlink", "HostConfig.Links")
94 93
 
95
-	err = unmarshalJSON([]byte(links), &result)
94
+	err := unmarshalJSON([]byte(links), &result)
96 95
 	c.Assert(err, checker.IsNil)
97 96
 
98 97
 	output := convertSliceOfStringsToMap(result)
... ...
@@ -136,11 +134,7 @@ func (s *DockerSuite) TestLinksUpdateOnRestart(c *check.C) {
136 136
 	out, _ := dockerCmd(c, "run", "-d", "--name", "two", "--link", "one:onetwo", "--link", "one:one", "busybox", "top")
137 137
 	id := strings.TrimSpace(string(out))
138 138
 
139
-	realIP, err := inspectField("one", "NetworkSettings.Networks.bridge.IPAddress")
140
-	if err != nil {
141
-		c.Fatal(err)
142
-	}
143
-	c.Assert(err, checker.IsNil)
139
+	realIP := inspectField(c, "one", "NetworkSettings.Networks.bridge.IPAddress")
144 140
 	content, err := readContainerFileWithExec(id, "/etc/hosts")
145 141
 	c.Assert(err, checker.IsNil)
146 142
 
... ...
@@ -157,8 +151,7 @@ func (s *DockerSuite) TestLinksUpdateOnRestart(c *check.C) {
157 157
 	c.Assert(ip, checker.Equals, realIP)
158 158
 
159 159
 	dockerCmd(c, "restart", "one")
160
-	realIP, err = inspectField("one", "NetworkSettings.Networks.bridge.IPAddress")
161
-	c.Assert(err, checker.IsNil)
160
+	realIP = inspectField(c, "one", "NetworkSettings.Networks.bridge.IPAddress")
162 161
 
163 162
 	content, err = readContainerFileWithExec(id, "/etc/hosts")
164 163
 	c.Assert(err, checker.IsNil, check.Commentf("content: %s", string(content)))
... ...
@@ -190,8 +183,7 @@ func (s *DockerSuite) TestLinkShortDefinition(c *check.C) {
190 190
 	cid2 := strings.TrimSpace(out)
191 191
 	c.Assert(waitRun(cid2), checker.IsNil)
192 192
 
193
-	links, err := inspectFieldJSON(cid2, "HostConfig.Links")
194
-	c.Assert(err, checker.IsNil)
193
+	links := inspectFieldJSON(c, cid2, "HostConfig.Links")
195 194
 	c.Assert(links, checker.Equals, "[\"/shortlinkdef:/link2/shortlinkdef\"]")
196 195
 }
197 196
 
... ...
@@ -44,8 +44,7 @@ func getContainerLogs(c *check.C, containerID string) string {
44 44
 }
45 45
 
46 46
 func getContainerStatus(c *check.C, containerID string) string {
47
-	out, err := inspectField(containerID, "State.Running")
48
-	c.Assert(err, check.IsNil)
47
+	out := inspectField(c, containerID, "State.Running")
49 48
 	return out
50 49
 }
51 50
 
... ...
@@ -890,8 +890,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkMacInspect(c *check.C) {
890 890
 
891 891
 	dockerCmd(c, "run", "-d", "--net", nwn, "--name", ctn, "busybox", "top")
892 892
 
893
-	mac, err := inspectField(ctn, "NetworkSettings.Networks."+nwn+".MacAddress")
894
-	c.Assert(err, checker.IsNil)
893
+	mac := inspectField(c, ctn, "NetworkSettings.Networks."+nwn+".MacAddress")
895 894
 	c.Assert(mac, checker.Equals, "a0:b1:c2:d3:e4:f5")
896 895
 }
897 896
 
... ...
@@ -1048,19 +1047,16 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectWithMac(c *check.C) {
1048 1048
 	dockerCmd(c, "network", "create", "mynetwork")
1049 1049
 	dockerCmd(c, "run", "--name=test", "-d", "--mac-address", macAddress, "busybox", "top")
1050 1050
 	c.Assert(waitRun("test"), check.IsNil)
1051
-	mac1, err := inspectField("test", "NetworkSettings.Networks.bridge.MacAddress")
1052
-	c.Assert(err, checker.IsNil)
1051
+	mac1 := inspectField(c, "test", "NetworkSettings.Networks.bridge.MacAddress")
1053 1052
 	c.Assert(strings.TrimSpace(mac1), checker.Equals, macAddress)
1054 1053
 	dockerCmd(c, "network", "connect", "mynetwork", "test")
1055
-	mac2, err := inspectField("test", "NetworkSettings.Networks.mynetwork.MacAddress")
1056
-	c.Assert(err, checker.IsNil)
1054
+	mac2 := inspectField(c, "test", "NetworkSettings.Networks.mynetwork.MacAddress")
1057 1055
 	c.Assert(strings.TrimSpace(mac2), checker.Not(checker.Equals), strings.TrimSpace(mac1))
1058 1056
 }
1059 1057
 
1060 1058
 func (s *DockerNetworkSuite) TestDockerNetworkInspectCreatedContainer(c *check.C) {
1061 1059
 	dockerCmd(c, "create", "--name", "test", "busybox")
1062
-	networks, err := inspectField("test", "NetworkSettings.Networks")
1063
-	c.Assert(err, checker.IsNil)
1060
+	networks := inspectField(c, "test", "NetworkSettings.Networks")
1064 1061
 	c.Assert(networks, checker.Contains, "bridge", check.Commentf("Should return 'bridge' network"))
1065 1062
 }
1066 1063
 
... ...
@@ -1070,8 +1066,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkRestartWithMultipleNetworks(c *che
1070 1070
 	c.Assert(waitRun("foo"), checker.IsNil)
1071 1071
 	dockerCmd(c, "network", "connect", "test", "foo")
1072 1072
 	dockerCmd(c, "restart", "foo")
1073
-	networks, err := inspectField("foo", "NetworkSettings.Networks")
1074
-	c.Assert(err, checker.IsNil)
1073
+	networks := inspectField(c, "foo", "NetworkSettings.Networks")
1075 1074
 	c.Assert(networks, checker.Contains, "bridge", check.Commentf("Should contain 'bridge' network"))
1076 1075
 	c.Assert(networks, checker.Contains, "test", check.Commentf("Should contain 'test' network"))
1077 1076
 }
... ...
@@ -1080,20 +1075,18 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectDisconnectToStoppedContaine
1080 1080
 	dockerCmd(c, "network", "create", "test")
1081 1081
 	dockerCmd(c, "create", "--name=foo", "busybox", "top")
1082 1082
 	dockerCmd(c, "network", "connect", "test", "foo")
1083
-	networks, err := inspectField("foo", "NetworkSettings.Networks")
1084
-	c.Assert(err, checker.IsNil)
1083
+	networks := inspectField(c, "foo", "NetworkSettings.Networks")
1085 1084
 	c.Assert(networks, checker.Contains, "test", check.Commentf("Should contain 'test' network"))
1086 1085
 
1087 1086
 	// Restart docker daemon to test the config has persisted to disk
1088 1087
 	s.d.Restart()
1089
-	networks, err = inspectField("foo", "NetworkSettings.Networks")
1090
-	c.Assert(err, checker.IsNil)
1088
+	networks = inspectField(c, "foo", "NetworkSettings.Networks")
1091 1089
 	c.Assert(networks, checker.Contains, "test", check.Commentf("Should contain 'test' network"))
1092 1090
 
1093 1091
 	// start the container and test if we can ping it from another container in the same network
1094 1092
 	dockerCmd(c, "start", "foo")
1095 1093
 	c.Assert(waitRun("foo"), checker.IsNil)
1096
-	ip, err := inspectField("foo", "NetworkSettings.Networks.test.IPAddress")
1094
+	ip := inspectField(c, "foo", "NetworkSettings.Networks.test.IPAddress")
1097 1095
 	ip = strings.TrimSpace(ip)
1098 1096
 	dockerCmd(c, "run", "--net=test", "busybox", "sh", "-c", fmt.Sprintf("ping -c 1 %s", ip))
1099 1097
 
... ...
@@ -1101,14 +1094,12 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectDisconnectToStoppedContaine
1101 1101
 
1102 1102
 	// Test disconnect
1103 1103
 	dockerCmd(c, "network", "disconnect", "test", "foo")
1104
-	networks, err = inspectField("foo", "NetworkSettings.Networks")
1105
-	c.Assert(err, checker.IsNil)
1104
+	networks = inspectField(c, "foo", "NetworkSettings.Networks")
1106 1105
 	c.Assert(networks, checker.Not(checker.Contains), "test", check.Commentf("Should not contain 'test' network"))
1107 1106
 
1108 1107
 	// Restart docker daemon to test the config has persisted to disk
1109 1108
 	s.d.Restart()
1110
-	networks, err = inspectField("foo", "NetworkSettings.Networks")
1111
-	c.Assert(err, checker.IsNil)
1109
+	networks = inspectField(c, "foo", "NetworkSettings.Networks")
1112 1110
 	c.Assert(networks, checker.Not(checker.Contains), "test", check.Commentf("Should not contain 'test' network"))
1113 1111
 
1114 1112
 }
... ...
@@ -1174,10 +1165,10 @@ func checkUnsupportedNetworkAndIP(c *check.C, nwMode string) {
1174 1174
 }
1175 1175
 
1176 1176
 func verifyIPAddresses(c *check.C, cName, nwname, ipv4, ipv6 string) {
1177
-	out, _ := dockerCmd(c, "inspect", fmt.Sprintf("--format='{{ .NetworkSettings.Networks.%s.IPAddress }}'", nwname), cName)
1177
+	out := inspectField(c, cName, fmt.Sprintf("NetworkSettings.Networks.%s.IPAddress", nwname))
1178 1178
 	c.Assert(strings.TrimSpace(out), check.Equals, ipv4)
1179 1179
 
1180
-	out, _ = dockerCmd(c, "inspect", fmt.Sprintf("--format='{{ .NetworkSettings.Networks.%s.GlobalIPv6Address }}'", nwname), cName)
1180
+	out = inspectField(c, cName, fmt.Sprintf("NetworkSettings.Networks.%s.GlobalIPv6Address", nwname))
1181 1181
 	c.Assert(strings.TrimSpace(out), check.Equals, ipv6)
1182 1182
 }
1183 1183
 
... ...
@@ -1237,8 +1228,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkStartAPIWithHostconfig(c *check.C)
1237 1237
 	_, _, err := sockRequest("POST", "/containers/"+conName+"/start", config)
1238 1238
 	c.Assert(err, checker.IsNil)
1239 1239
 	c.Assert(waitRun(conName), checker.IsNil)
1240
-	networks, err := inspectField(conName, "NetworkSettings.Networks")
1241
-	c.Assert(err, checker.IsNil)
1240
+	networks := inspectField(c, conName, "NetworkSettings.Networks")
1242 1241
 	c.Assert(networks, checker.Contains, netName, check.Commentf(fmt.Sprintf("Should contain '%s' network", netName)))
1243 1242
 	c.Assert(networks, checker.Not(checker.Contains), "bridge", check.Commentf("Should not contain 'bridge' network"))
1244 1243
 }
... ...
@@ -1257,8 +1247,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkDisconnectDefault(c *check.C) {
1257 1257
 
1258 1258
 	dockerCmd(c, "start", containerName)
1259 1259
 	c.Assert(waitRun(containerName), checker.IsNil)
1260
-	networks, err := inspectField(containerName, "NetworkSettings.Networks")
1261
-	c.Assert(err, checker.IsNil)
1260
+	networks := inspectField(c, containerName, "NetworkSettings.Networks")
1262 1261
 	c.Assert(networks, checker.Contains, netWorkName1, check.Commentf(fmt.Sprintf("Should contain '%s' network", netWorkName1)))
1263 1262
 	c.Assert(networks, checker.Contains, netWorkName2, check.Commentf(fmt.Sprintf("Should contain '%s' network", netWorkName2)))
1264 1263
 	c.Assert(networks, checker.Not(checker.Contains), "bridge", check.Commentf("Should not contain 'bridge' network"))
... ...
@@ -1339,12 +1328,12 @@ func (s *DockerSuite) TestDockerNetworkConnectFailsNoInspectChange(c *check.C) {
1339 1339
 	dockerCmd(c, "run", "-d", "--name=bb", "busybox", "top")
1340 1340
 	c.Assert(waitRun("bb"), check.IsNil)
1341 1341
 
1342
-	ns0, _ := dockerCmd(c, "inspect", "--format='{{ .NetworkSettings.Networks.bridge }}'", "bb")
1342
+	ns0 := inspectField(c, "bb", "NetworkSettings.Networks.bridge")
1343 1343
 
1344 1344
 	// A failing redundant network connect should not alter current container's endpoint settings
1345 1345
 	_, _, err := dockerCmdWithError("network", "connect", "bridge", "bb")
1346 1346
 	c.Assert(err, check.NotNil)
1347 1347
 
1348
-	ns1, _ := dockerCmd(c, "inspect", "--format='{{ .NetworkSettings.Networks.bridge }}'", "bb")
1348
+	ns1 := inspectField(c, "bb", "NetworkSettings.Networks.bridge")
1349 1349
 	c.Assert(ns1, check.Equals, ns0)
1350 1350
 }
... ...
@@ -15,9 +15,8 @@ func (s *DockerSuite) TestInspectOomKilledTrue(c *check.C) {
15 15
 
16 16
 	c.Assert(exitCode, checker.Equals, 137, check.Commentf("OOM exit should be 137"))
17 17
 
18
-	oomKilled, err := inspectField(name, "State.OOMKilled")
18
+	oomKilled := inspectField(c, name, "State.OOMKilled")
19 19
 	c.Assert(oomKilled, checker.Equals, "true")
20
-	c.Assert(err, checker.IsNil)
21 20
 }
22 21
 
23 22
 func (s *DockerSuite) TestInspectOomKilledFalse(c *check.C) {
... ...
@@ -26,7 +25,6 @@ func (s *DockerSuite) TestInspectOomKilledFalse(c *check.C) {
26 26
 	name := "testoomkilled"
27 27
 	dockerCmd(c, "run", "--name", name, "--memory", "32MB", "busybox", "sh", "-c", "echo hello world")
28 28
 
29
-	oomKilled, err := inspectField(name, "State.OOMKilled")
29
+	oomKilled := inspectField(c, name, "State.OOMKilled")
30 30
 	c.Assert(oomKilled, checker.Equals, "false")
31
-	c.Assert(err, checker.IsNil)
32 31
 }
... ...
@@ -431,7 +431,7 @@ func (s *DockerSuite) TestPsRightTagName(c *check.C) {
431 431
 	id2 = strings.TrimSpace(string(out))
432 432
 
433 433
 	var imageID string
434
-	out, _ = dockerCmd(c, "inspect", "-f", "{{.Id}}", "busybox")
434
+	out = inspectField(c, "busybox", "Id")
435 435
 	imageID = strings.TrimSpace(string(out))
436 436
 
437 437
 	var id3 string
... ...
@@ -235,21 +235,19 @@ func (s *DockerTrustSuite) TestTrustedPullDelete(c *check.C) {
235 235
 	c.Assert(matches, checker.HasLen, 2, check.Commentf("unable to parse digest from pull output: %s", out))
236 236
 	pullDigest := matches[1]
237 237
 
238
-	imageID, err := inspectField(repoName, "Id")
239
-	c.Assert(err, checker.IsNil, check.Commentf("error inspecting image id"))
238
+	imageID := inspectField(c, repoName, "Id")
240 239
 
241 240
 	imageByDigest := repoName + "@" + pullDigest
242
-	byDigestID, err := inspectField(imageByDigest, "Id")
243
-	c.Assert(err, checker.IsNil, check.Commentf("error inspecting image id"))
241
+	byDigestID := inspectField(c, imageByDigest, "Id")
244 242
 
245 243
 	c.Assert(byDigestID, checker.Equals, imageID)
246 244
 
247 245
 	// rmi of tag should also remove the digest reference
248 246
 	dockerCmd(c, "rmi", repoName)
249 247
 
250
-	_, err = inspectField(imageByDigest, "Id")
248
+	_, err = inspectFieldWithError(imageByDigest, "Id")
251 249
 	c.Assert(err, checker.NotNil, check.Commentf("digest reference should have been removed"))
252 250
 
253
-	_, err = inspectField(imageID, "Id")
251
+	_, err = inspectFieldWithError(imageID, "Id")
254 252
 	c.Assert(err, checker.NotNil, check.Commentf("image should have been deleted"))
255 253
 }
... ...
@@ -14,12 +14,11 @@ func (s *DockerSuite) TestRenameStoppedContainer(c *check.C) {
14 14
 	cleanedContainerID := strings.TrimSpace(out)
15 15
 	dockerCmd(c, "wait", cleanedContainerID)
16 16
 
17
-	name, err := inspectField(cleanedContainerID, "Name")
17
+	name := inspectField(c, cleanedContainerID, "Name")
18 18
 	newName := "new_name" + stringid.GenerateNonCryptoID()
19 19
 	dockerCmd(c, "rename", "first_name", newName)
20 20
 
21
-	name, err = inspectField(cleanedContainerID, "Name")
22
-	c.Assert(err, checker.IsNil, check.Commentf("Failed to rename container %s", name))
21
+	name = inspectField(c, cleanedContainerID, "Name")
23 22
 	c.Assert(name, checker.Equals, "/"+newName, check.Commentf("Failed to rename container %s", name))
24 23
 
25 24
 }
... ...
@@ -31,8 +30,7 @@ func (s *DockerSuite) TestRenameRunningContainer(c *check.C) {
31 31
 	cleanedContainerID := strings.TrimSpace(out)
32 32
 	dockerCmd(c, "rename", "first_name", newName)
33 33
 
34
-	name, err := inspectField(cleanedContainerID, "Name")
35
-	c.Assert(err, checker.IsNil, check.Commentf("Failed to rename container %s", name))
34
+	name := inspectField(c, cleanedContainerID, "Name")
36 35
 	c.Assert(name, checker.Equals, "/"+newName, check.Commentf("Failed to rename container %s", name))
37 36
 }
38 37
 
... ...
@@ -44,15 +42,13 @@ func (s *DockerSuite) TestRenameRunningContainerAndReuse(c *check.C) {
44 44
 	ContainerID := strings.TrimSpace(out)
45 45
 	dockerCmd(c, "rename", "first_name", newName)
46 46
 
47
-	name, err := inspectField(ContainerID, "Name")
48
-	c.Assert(err, checker.IsNil, check.Commentf("Failed to rename container %s", name))
47
+	name := inspectField(c, ContainerID, "Name")
49 48
 	c.Assert(name, checker.Equals, "/"+newName, check.Commentf("Failed to rename container"))
50 49
 
51 50
 	out, _ = runSleepingContainer(c, "--name", "first_name")
52 51
 	c.Assert(waitRun("first_name"), check.IsNil)
53 52
 	newContainerID := strings.TrimSpace(out)
54
-	name, err = inspectField(newContainerID, "Name")
55
-	c.Assert(err, checker.IsNil, check.Commentf("Failed to reuse container name"))
53
+	name = inspectField(c, newContainerID, "Name")
56 54
 	c.Assert(name, checker.Equals, "/first_name", check.Commentf("Failed to reuse container name"))
57 55
 }
58 56
 
... ...
@@ -62,11 +58,10 @@ func (s *DockerSuite) TestRenameCheckNames(c *check.C) {
62 62
 	newName := "new_name" + stringid.GenerateNonCryptoID()
63 63
 	dockerCmd(c, "rename", "first_name", newName)
64 64
 
65
-	name, err := inspectField(newName, "Name")
66
-	c.Assert(err, checker.IsNil, check.Commentf("Failed to rename container %s", name))
65
+	name := inspectField(c, newName, "Name")
67 66
 	c.Assert(name, checker.Equals, "/"+newName, check.Commentf("Failed to rename container %s", name))
68 67
 
69
-	name, err = inspectField("first_name", "Name")
68
+	name, err := inspectFieldWithError("first_name", "Name")
70 69
 	c.Assert(err, checker.NotNil, check.Commentf(name))
71 70
 	c.Assert(err.Error(), checker.Contains, "No such image or container: first_name")
72 71
 }
... ...
@@ -52,7 +52,8 @@ func (s *DockerSuite) TestRestartWithVolumes(c *check.C) {
52 52
 	out, _ := dockerCmd(c, "run", "-d", "-v", "/test", "busybox", "top")
53 53
 
54 54
 	cleanedContainerID := strings.TrimSpace(out)
55
-	out, _ = dockerCmd(c, "inspect", "--format", "{{ len .Mounts }}", cleanedContainerID)
55
+	out, err := inspectFilter(cleanedContainerID, "len .Mounts")
56
+	c.Assert(err, check.IsNil, check.Commentf("failed to inspect %s: %s", cleanedContainerID, out))
56 57
 	out = strings.Trim(out, " \n\r")
57 58
 	c.Assert(out, checker.Equals, "1")
58 59
 
... ...
@@ -61,7 +62,8 @@ func (s *DockerSuite) TestRestartWithVolumes(c *check.C) {
61 61
 
62 62
 	dockerCmd(c, "restart", cleanedContainerID)
63 63
 
64
-	out, _ = dockerCmd(c, "inspect", "--format", "{{ len .Mounts }}", cleanedContainerID)
64
+	out, err = inspectFilter(cleanedContainerID, "len .Mounts")
65
+	c.Assert(err, check.IsNil, check.Commentf("failed to inspect %s: %s", cleanedContainerID, out))
65 66
 	out = strings.Trim(out, " \n\r")
66 67
 	c.Assert(out, checker.Equals, "1")
67 68
 
... ...
@@ -75,8 +77,7 @@ func (s *DockerSuite) TestRestartPolicyNO(c *check.C) {
75 75
 	out, _ := dockerCmd(c, "run", "-d", "--restart=no", "busybox", "false")
76 76
 
77 77
 	id := strings.TrimSpace(string(out))
78
-	name, err := inspectField(id, "HostConfig.RestartPolicy.Name")
79
-	c.Assert(err, checker.IsNil)
78
+	name := inspectField(c, id, "HostConfig.RestartPolicy.Name")
80 79
 	c.Assert(name, checker.Equals, "no")
81 80
 }
82 81
 
... ...
@@ -85,12 +86,10 @@ func (s *DockerSuite) TestRestartPolicyAlways(c *check.C) {
85 85
 	out, _ := dockerCmd(c, "run", "-d", "--restart=always", "busybox", "false")
86 86
 
87 87
 	id := strings.TrimSpace(string(out))
88
-	name, err := inspectField(id, "HostConfig.RestartPolicy.Name")
89
-	c.Assert(err, checker.IsNil)
88
+	name := inspectField(c, id, "HostConfig.RestartPolicy.Name")
90 89
 	c.Assert(name, checker.Equals, "always")
91 90
 
92
-	MaximumRetryCount, err := inspectField(id, "HostConfig.RestartPolicy.MaximumRetryCount")
93
-	c.Assert(err, checker.IsNil)
91
+	MaximumRetryCount := inspectField(c, id, "HostConfig.RestartPolicy.MaximumRetryCount")
94 92
 
95 93
 	// MaximumRetryCount=0 if the restart policy is always
96 94
 	c.Assert(MaximumRetryCount, checker.Equals, "0")
... ...
@@ -101,8 +100,7 @@ func (s *DockerSuite) TestRestartPolicyOnFailure(c *check.C) {
101 101
 	out, _ := dockerCmd(c, "run", "-d", "--restart=on-failure:1", "busybox", "false")
102 102
 
103 103
 	id := strings.TrimSpace(string(out))
104
-	name, err := inspectField(id, "HostConfig.RestartPolicy.Name")
105
-	c.Assert(err, checker.IsNil)
104
+	name := inspectField(c, id, "HostConfig.RestartPolicy.Name")
106 105
 	c.Assert(name, checker.Equals, "on-failure")
107 106
 
108 107
 }
... ...
@@ -117,12 +115,10 @@ func (s *DockerSuite) TestContainerRestartwithGoodContainer(c *check.C) {
117 117
 	err := waitInspect(id, "{{ .State.Restarting }} {{ .State.Running }}", "false false", 5*time.Second)
118 118
 	c.Assert(err, checker.IsNil)
119 119
 
120
-	count, err := inspectField(id, "RestartCount")
121
-	c.Assert(err, checker.IsNil)
120
+	count := inspectField(c, id, "RestartCount")
122 121
 	c.Assert(count, checker.Equals, "0")
123 122
 
124
-	MaximumRetryCount, err := inspectField(id, "HostConfig.RestartPolicy.MaximumRetryCount")
125
-	c.Assert(err, checker.IsNil)
123
+	MaximumRetryCount := inspectField(c, id, "HostConfig.RestartPolicy.MaximumRetryCount")
126 124
 	c.Assert(MaximumRetryCount, checker.Equals, "3")
127 125
 
128 126
 }
... ...
@@ -134,8 +130,7 @@ func (s *DockerSuite) TestContainerRestartSuccess(c *check.C) {
134 134
 	id := strings.TrimSpace(out)
135 135
 	c.Assert(waitRun(id), check.IsNil)
136 136
 
137
-	pidStr, err := inspectField(id, "State.Pid")
138
-	c.Assert(err, check.IsNil)
137
+	pidStr := inspectField(c, id, "State.Pid")
139 138
 
140 139
 	pid, err := strconv.Atoi(pidStr)
141 140
 	c.Assert(err, check.IsNil)
... ...
@@ -172,8 +167,7 @@ func (s *DockerSuite) TestUserDefinedNetworkWithRestartPolicy(c *check.C) {
172 172
 	c.Assert(err, check.IsNil)
173 173
 
174 174
 	// Now kill the second container and let the restart policy kick in
175
-	pidStr, err := inspectField("second", "State.Pid")
176
-	c.Assert(err, check.IsNil)
175
+	pidStr := inspectField(c, "second", "State.Pid")
177 176
 
178 177
 	pid, err := strconv.Atoi(pidStr)
179 178
 	c.Assert(err, check.IsNil)
... ...
@@ -82,8 +82,7 @@ func (s *DockerSuite) TestRmiImgIDMultipleTag(c *check.C) {
82 82
 	// tag busybox to create 2 more images with same imageID
83 83
 	c.Assert(strings.Count(imagesAfter, "\n"), checker.Equals, strings.Count(imagesBefore, "\n")+2, check.Commentf("docker images shows: %q\n", imagesAfter))
84 84
 
85
-	imgID, err := inspectField("busybox-one:tag1", "Id")
86
-	c.Assert(err, checker.IsNil)
85
+	imgID := inspectField(c, "busybox-one:tag1", "Id")
87 86
 
88 87
 	// run a container with the image
89 88
 	out, _ = runSleepingContainerInImage(c, "busybox-one")
... ...
@@ -91,7 +90,7 @@ func (s *DockerSuite) TestRmiImgIDMultipleTag(c *check.C) {
91 91
 	containerID = strings.TrimSpace(out)
92 92
 
93 93
 	// first checkout without force it fails
94
-	out, _, err = dockerCmdWithError("rmi", imgID)
94
+	out, _, err := dockerCmdWithError("rmi", imgID)
95 95
 	expected := fmt.Sprintf("conflict: unable to delete %s (cannot be forced) - image is being used by running container %s", stringid.TruncateID(imgID), stringid.TruncateID(containerID))
96 96
 	// rmi tagged in multiple repos should have failed without force
97 97
 	c.Assert(err, checker.NotNil)
... ...
@@ -128,11 +127,10 @@ func (s *DockerSuite) TestRmiImgIDForce(c *check.C) {
128 128
 		imagesAfter, _ := dockerCmd(c, "images", "-a")
129 129
 		c.Assert(strings.Count(imagesAfter, "\n"), checker.Equals, strings.Count(imagesBefore, "\n")+4, check.Commentf("before: %q\n\nafter: %q\n", imagesBefore, imagesAfter))
130 130
 	}
131
-	imgID, err := inspectField("busybox-test", "Id")
132
-	c.Assert(err, checker.IsNil)
131
+	imgID := inspectField(c, "busybox-test", "Id")
133 132
 
134 133
 	// first checkout without force it fails
135
-	out, _, err = dockerCmdWithError("rmi", imgID)
134
+	out, _, err := dockerCmdWithError("rmi", imgID)
136 135
 	// rmi tagged in multiple repos should have failed without force
137 136
 	c.Assert(err, checker.NotNil)
138 137
 	// rmi tagged in multiple repos should have failed without force
... ...
@@ -317,8 +315,7 @@ RUN echo 2 #layer2
317 317
 }
318 318
 
319 319
 func (*DockerSuite) TestRmiParentImageFail(c *check.C) {
320
-	parent, err := inspectField("busybox", "Parent")
321
-	c.Assert(err, check.IsNil)
320
+	parent := inspectField(c, "busybox", "Parent")
322 321
 	out, _, err := dockerCmdWithError("rmi", parent)
323 322
 	c.Assert(err, check.NotNil)
324 323
 	if !strings.Contains(out, "image has dependent child images") {
... ...
@@ -354,14 +351,12 @@ func (s *DockerSuite) TestRmiByIDHardConflict(c *check.C) {
354 354
 	testRequires(c, DaemonIsLinux)
355 355
 	dockerCmd(c, "create", "busybox")
356 356
 
357
-	imgID, err := inspectField("busybox:latest", "Id")
358
-	c.Assert(err, checker.IsNil)
357
+	imgID := inspectField(c, "busybox:latest", "Id")
359 358
 
360
-	_, _, err = dockerCmdWithError("rmi", imgID[:12])
359
+	_, _, err := dockerCmdWithError("rmi", imgID[:12])
361 360
 	c.Assert(err, checker.NotNil)
362 361
 
363 362
 	// check that tag was not removed
364
-	imgID2, err := inspectField("busybox:latest", "Id")
365
-	c.Assert(err, checker.IsNil)
363
+	imgID2 := inspectField(c, "busybox:latest", "Id")
366 364
 	c.Assert(imgID, checker.Equals, imgID2)
367 365
 }
... ...
@@ -174,8 +174,7 @@ func (s *DockerSuite) TestRunLinksContainerWithContainerName(c *check.C) {
174 174
 	testRequires(c, DaemonIsLinux)
175 175
 	dockerCmd(c, "run", "-i", "-t", "-d", "--name", "parent", "busybox")
176 176
 
177
-	ip, err := inspectField("parent", "NetworkSettings.Networks.bridge.IPAddress")
178
-	c.Assert(err, check.IsNil)
177
+	ip := inspectField(c, "parent", "NetworkSettings.Networks.bridge.IPAddress")
179 178
 
180 179
 	out, _ := dockerCmd(c, "run", "--link", "parent:test", "busybox", "/bin/cat", "/etc/hosts")
181 180
 	if !strings.Contains(out, ip+"	test") {
... ...
@@ -191,8 +190,7 @@ func (s *DockerSuite) TestRunLinksContainerWithContainerId(c *check.C) {
191 191
 	cID, _ := dockerCmd(c, "run", "-i", "-t", "-d", "busybox")
192 192
 
193 193
 	cID = strings.TrimSpace(cID)
194
-	ip, err := inspectField(cID, "NetworkSettings.Networks.bridge.IPAddress")
195
-	c.Assert(err, check.IsNil)
194
+	ip := inspectField(c, cID, "NetworkSettings.Networks.bridge.IPAddress")
196 195
 
197 196
 	out, _ := dockerCmd(c, "run", "--link", cID+":test", "busybox", "/bin/cat", "/etc/hosts")
198 197
 	if !strings.Contains(out, ip+"	test") {
... ...
@@ -560,9 +558,7 @@ func (s *DockerSuite) TestRunCreateVolumeWithSymlink(c *check.C) {
560 560
 	}
561 561
 
562 562
 	volPath, err := inspectMountSourceField("test-createvolumewithsymlink", "/bar/foo")
563
-	if err != nil {
564
-		c.Fatalf("[inspect] err: %v", err)
565
-	}
563
+	c.Assert(err, checker.IsNil)
566 564
 
567 565
 	_, exitCode, err = dockerCmdWithError("rm", "-v", "test-createvolumewithsymlink")
568 566
 	if err != nil || exitCode != 0 {
... ...
@@ -1591,37 +1587,31 @@ func (s *DockerSuite) TestRunState(c *check.C) {
1591 1591
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
1592 1592
 
1593 1593
 	id := strings.TrimSpace(out)
1594
-	state, err := inspectField(id, "State.Running")
1595
-	c.Assert(err, check.IsNil)
1594
+	state := inspectField(c, id, "State.Running")
1596 1595
 	if state != "true" {
1597 1596
 		c.Fatal("Container state is 'not running'")
1598 1597
 	}
1599
-	pid1, err := inspectField(id, "State.Pid")
1600
-	c.Assert(err, check.IsNil)
1598
+	pid1 := inspectField(c, id, "State.Pid")
1601 1599
 	if pid1 == "0" {
1602 1600
 		c.Fatal("Container state Pid 0")
1603 1601
 	}
1604 1602
 
1605 1603
 	dockerCmd(c, "stop", id)
1606
-	state, err = inspectField(id, "State.Running")
1607
-	c.Assert(err, check.IsNil)
1604
+	state = inspectField(c, id, "State.Running")
1608 1605
 	if state != "false" {
1609 1606
 		c.Fatal("Container state is 'running'")
1610 1607
 	}
1611
-	pid2, err := inspectField(id, "State.Pid")
1612
-	c.Assert(err, check.IsNil)
1608
+	pid2 := inspectField(c, id, "State.Pid")
1613 1609
 	if pid2 == pid1 {
1614 1610
 		c.Fatalf("Container state Pid %s, but expected %s", pid2, pid1)
1615 1611
 	}
1616 1612
 
1617 1613
 	dockerCmd(c, "start", id)
1618
-	state, err = inspectField(id, "State.Running")
1619
-	c.Assert(err, check.IsNil)
1614
+	state = inspectField(c, id, "State.Running")
1620 1615
 	if state != "true" {
1621 1616
 		c.Fatal("Container state is 'not running'")
1622 1617
 	}
1623
-	pid3, err := inspectField(id, "State.Pid")
1624
-	c.Assert(err, check.IsNil)
1618
+	pid3 := inspectField(c, id, "State.Pid")
1625 1619
 	if pid3 == pid1 {
1626 1620
 		c.Fatalf("Container state Pid %s, but expected %s", pid2, pid1)
1627 1621
 	}
... ...
@@ -1760,8 +1750,7 @@ func (s *DockerSuite) TestRunExitOnStdinClose(c *check.C) {
1760 1760
 	case <-time.After(time.Duration(delay) * time.Second):
1761 1761
 		c.Fatal("docker run failed to exit on stdin close")
1762 1762
 	}
1763
-	state, err := inspectField(name, "State.Running")
1764
-	c.Assert(err, check.IsNil)
1763
+	state := inspectField(c, name, "State.Running")
1765 1764
 
1766 1765
 	if state != "false" {
1767 1766
 		c.Fatal("Container must be stopped after stdin closing")
... ...
@@ -2002,8 +1991,7 @@ func (s *DockerSuite) TestRunInspectMacAddress(c *check.C) {
2002 2002
 	out, _ := dockerCmd(c, "run", "-d", "--mac-address="+mac, "busybox", "top")
2003 2003
 
2004 2004
 	id := strings.TrimSpace(out)
2005
-	inspectedMac, err := inspectField(id, "NetworkSettings.Networks.bridge.MacAddress")
2006
-	c.Assert(err, check.IsNil)
2005
+	inspectedMac := inspectField(c, id, "NetworkSettings.Networks.bridge.MacAddress")
2007 2006
 	if inspectedMac != mac {
2008 2007
 		c.Fatalf("docker inspect outputs wrong MAC address: %q, should be: %q", inspectedMac, mac)
2009 2008
 	}
... ...
@@ -2025,11 +2013,10 @@ func (s *DockerSuite) TestRunDeallocatePortOnMissingIptablesRule(c *check.C) {
2025 2025
 	out, _ := dockerCmd(c, "run", "-d", "-p", "23:23", "busybox", "top")
2026 2026
 
2027 2027
 	id := strings.TrimSpace(out)
2028
-	ip, err := inspectField(id, "NetworkSettings.Networks.bridge.IPAddress")
2029
-	c.Assert(err, check.IsNil)
2028
+	ip := inspectField(c, id, "NetworkSettings.Networks.bridge.IPAddress")
2030 2029
 	iptCmd := exec.Command("iptables", "-D", "DOCKER", "-d", fmt.Sprintf("%s/32", ip),
2031 2030
 		"!", "-i", "docker0", "-o", "docker0", "-p", "tcp", "-m", "tcp", "--dport", "23", "-j", "ACCEPT")
2032
-	out, _, err = runCommandWithOutput(iptCmd)
2031
+	out, _, err := runCommandWithOutput(iptCmd)
2033 2032
 	if err != nil {
2034 2033
 		c.Fatal(err, out)
2035 2034
 	}
... ...
@@ -2288,10 +2275,9 @@ func (s *DockerSuite) TestRunAllowPortRangeThroughExpose(c *check.C) {
2288 2288
 	out, _ := dockerCmd(c, "run", "-d", "--expose", "3000-3003", "-P", "busybox", "top")
2289 2289
 
2290 2290
 	id := strings.TrimSpace(out)
2291
-	portstr, err := inspectFieldJSON(id, "NetworkSettings.Ports")
2292
-	c.Assert(err, check.IsNil)
2291
+	portstr := inspectFieldJSON(c, id, "NetworkSettings.Ports")
2293 2292
 	var ports nat.PortMap
2294
-	if err = unmarshalJSON([]byte(portstr), &ports); err != nil {
2293
+	if err := unmarshalJSON([]byte(portstr), &ports); err != nil {
2295 2294
 		c.Fatal(err)
2296 2295
 	}
2297 2296
 	for port, binding := range ports {
... ...
@@ -2332,8 +2318,7 @@ func (s *DockerSuite) TestRunUnknownCommand(c *check.C) {
2332 2332
 		c.Assert(err, check.NotNil)
2333 2333
 	}
2334 2334
 
2335
-	rc, err := inspectField(cID, "State.ExitCode")
2336
-	c.Assert(err, check.IsNil)
2335
+	rc := inspectField(c, cID, "State.ExitCode")
2337 2336
 	if rc == "0" {
2338 2337
 		c.Fatalf("ExitCode(%v) cannot be 0", rc)
2339 2338
 	}
... ...
@@ -2368,13 +2353,11 @@ func (s *DockerSuite) TestRunModeIpcContainer(c *check.C) {
2368 2368
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "sh", "-c", "echo -n test > /dev/shm/test && top")
2369 2369
 
2370 2370
 	id := strings.TrimSpace(out)
2371
-	state, err := inspectField(id, "State.Running")
2372
-	c.Assert(err, check.IsNil)
2371
+	state := inspectField(c, id, "State.Running")
2373 2372
 	if state != "true" {
2374 2373
 		c.Fatal("Container state is 'not running'")
2375 2374
 	}
2376
-	pid1, err := inspectField(id, "State.Pid")
2377
-	c.Assert(err, check.IsNil)
2375
+	pid1 := inspectField(c, id, "State.Pid")
2378 2376
 
2379 2377
 	parentContainerIpc, err := os.Readlink(fmt.Sprintf("/proc/%s/ns/ipc", pid1))
2380 2378
 	if err != nil {
... ...
@@ -2421,7 +2404,7 @@ func (s *DockerSuite) TestRunMountShmMqueueFromHost(c *check.C) {
2421 2421
 
2422 2422
 	dockerCmd(c, "run", "-d", "--name", "shmfromhost", "-v", "/dev/shm:/dev/shm", "busybox", "sh", "-c", "echo -n test > /dev/shm/test && top")
2423 2423
 	volPath, err := inspectMountSourceField("shmfromhost", "/dev/shm")
2424
-	c.Assert(err, check.IsNil)
2424
+	c.Assert(err, checker.IsNil)
2425 2425
 	if volPath != "/dev/shm" {
2426 2426
 		c.Fatalf("volumePath should have been /dev/shm, was %s", volPath)
2427 2427
 	}
... ...
@@ -2439,8 +2422,7 @@ func (s *DockerSuite) TestContainerNetworkMode(c *check.C) {
2439 2439
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
2440 2440
 	id := strings.TrimSpace(out)
2441 2441
 	c.Assert(waitRun(id), check.IsNil)
2442
-	pid1, err := inspectField(id, "State.Pid")
2443
-	c.Assert(err, check.IsNil)
2442
+	pid1 := inspectField(c, id, "State.Pid")
2444 2443
 
2445 2444
 	parentContainerNet, err := os.Readlink(fmt.Sprintf("/proc/%s/ns/net", pid1))
2446 2445
 	if err != nil {
... ...
@@ -2652,11 +2634,11 @@ func (s *DockerSuite) TestRunAllowPortRangeThroughPublish(c *check.C) {
2652 2652
 	out, _ := dockerCmd(c, "run", "-d", "--expose", "3000-3003", "-p", "3000-3003", "busybox", "top")
2653 2653
 
2654 2654
 	id := strings.TrimSpace(out)
2655
-	portstr, err := inspectFieldJSON(id, "NetworkSettings.Ports")
2656
-	c.Assert(err, check.IsNil)
2655
+	portstr := inspectFieldJSON(c, id, "NetworkSettings.Ports")
2657 2656
 
2658 2657
 	var ports nat.PortMap
2659
-	err = unmarshalJSON([]byte(portstr), &ports)
2658
+	err := unmarshalJSON([]byte(portstr), &ports)
2659
+	c.Assert(err, checker.IsNil, check.Commentf("failed to unmarshal: %v", portstr))
2660 2660
 	for port, binding := range ports {
2661 2661
 		portnum, _ := strconv.Atoi(strings.Split(string(port), "/")[0])
2662 2662
 		if portnum < 3000 || portnum > 3003 {
... ...
@@ -2670,8 +2652,7 @@ func (s *DockerSuite) TestRunAllowPortRangeThroughPublish(c *check.C) {
2670 2670
 
2671 2671
 func (s *DockerSuite) TestRunSetDefaultRestartPolicy(c *check.C) {
2672 2672
 	dockerCmd(c, "run", "-d", "--name", "test", "busybox", "sleep", "30")
2673
-	out, err := inspectField("test", "HostConfig.RestartPolicy.Name")
2674
-	c.Assert(err, check.IsNil)
2673
+	out := inspectField(c, "test", "HostConfig.RestartPolicy.Name")
2675 2674
 	if out != "no" {
2676 2675
 		c.Fatalf("Set default restart policy failed")
2677 2676
 	}
... ...
@@ -2689,14 +2670,12 @@ func (s *DockerSuite) TestRunRestartMaxRetries(c *check.C) {
2689 2689
 		c.Fatal(err)
2690 2690
 	}
2691 2691
 
2692
-	count, err := inspectField(id, "RestartCount")
2693
-	c.Assert(err, check.IsNil)
2692
+	count := inspectField(c, id, "RestartCount")
2694 2693
 	if count != "3" {
2695 2694
 		c.Fatalf("Container was restarted %s times, expected %d", count, 3)
2696 2695
 	}
2697 2696
 
2698
-	MaximumRetryCount, err := inspectField(id, "HostConfig.RestartPolicy.MaximumRetryCount")
2699
-	c.Assert(err, check.IsNil)
2697
+	MaximumRetryCount := inspectField(c, id, "HostConfig.RestartPolicy.MaximumRetryCount")
2700 2698
 	if MaximumRetryCount != "3" {
2701 2699
 		c.Fatalf("Container Maximum Retry Count is %s, expected %s", MaximumRetryCount, "3")
2702 2700
 	}
... ...
@@ -3043,14 +3022,14 @@ func (s *DockerSuite) TestVolumeFromMixedRWOptions(c *check.C) {
3043 3043
 
3044 3044
 	if daemonPlatform != "windows" {
3045 3045
 		mRO, err := inspectMountPoint("test-volumes-1", prefix+slash+"test")
3046
-		c.Assert(err, check.IsNil)
3046
+		c.Assert(err, checker.IsNil, check.Commentf("failed to inspect mount point"))
3047 3047
 		if mRO.RW {
3048 3048
 			c.Fatalf("Expected RO volume was RW")
3049 3049
 		}
3050 3050
 	}
3051 3051
 
3052 3052
 	mRW, err := inspectMountPoint("test-volumes-2", prefix+slash+"test")
3053
-	c.Assert(err, check.IsNil)
3053
+	c.Assert(err, checker.IsNil, check.Commentf("failed to inspect mount point"))
3054 3054
 	if !mRW.RW {
3055 3055
 		c.Fatalf("Expected RW volume was RO")
3056 3056
 	}
... ...
@@ -3316,10 +3295,9 @@ func (s *DockerSuite) TestPtraceContainerProcsFromHost(c *check.C) {
3316 3316
 	out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
3317 3317
 	id := strings.TrimSpace(out)
3318 3318
 	c.Assert(waitRun(id), check.IsNil)
3319
-	pid1, err := inspectField(id, "State.Pid")
3320
-	c.Assert(err, check.IsNil)
3319
+	pid1 := inspectField(c, id, "State.Pid")
3321 3320
 
3322
-	_, err = os.Readlink(fmt.Sprintf("/proc/%s/ns/net", pid1))
3321
+	_, err := os.Readlink(fmt.Sprintf("/proc/%s/ns/net", pid1))
3323 3322
 	if err != nil {
3324 3323
 		c.Fatal(err)
3325 3324
 	}
... ...
@@ -3375,7 +3353,8 @@ func (s *DockerSuite) TestRunCreateContainerFailedCleanUp(c *check.C) {
3375 3375
 	_, _, err := dockerCmdWithError("run", "--name", name, "--link", "nothing:nothing", "busybox")
3376 3376
 	c.Assert(err, check.NotNil, check.Commentf("Expected docker run to fail!"))
3377 3377
 
3378
-	containerID, err := inspectField(name, "Id")
3378
+	containerID, err := inspectFieldWithError(name, "Id")
3379
+	c.Assert(err, checker.NotNil, check.Commentf("Expected not to have this container: %s!", containerID))
3379 3380
 	c.Assert(containerID, check.Equals, "", check.Commentf("Expected not to have this container: %s!", containerID))
3380 3381
 }
3381 3382
 
... ...
@@ -3677,8 +3656,7 @@ func (s *DockerSuite) TestRunNetworkNotInitializedNoneMode(c *check.C) {
3677 3677
 	testRequires(c, DaemonIsLinux)
3678 3678
 	out, _ := dockerCmd(c, "run", "-d", "--net=none", "busybox", "top")
3679 3679
 	id := strings.TrimSpace(out)
3680
-	res, err := inspectField(id, "NetworkSettings.Networks.none.IPAddress")
3681
-	c.Assert(err, check.IsNil)
3680
+	res := inspectField(c, id, "NetworkSettings.Networks.none.IPAddress")
3682 3681
 	if res != "" {
3683 3682
 		c.Fatalf("For 'none' mode network must not be initialized, but container got IP: %s", res)
3684 3683
 	}
... ...
@@ -130,8 +130,7 @@ func (s *DockerSuite) TestRunAttachDetach(c *check.C) {
130 130
 		c.Fatal("timed out waiting for container to exit")
131 131
 	}
132 132
 
133
-	running, err := inspectField(name, "State.Running")
134
-	c.Assert(err, checker.IsNil)
133
+	running := inspectField(c, name, "State.Running")
135 134
 	c.Assert(running, checker.Equals, "true", check.Commentf("expected container to still be running"))
136 135
 }
137 136
 
... ...
@@ -192,8 +191,7 @@ func (s *DockerSuite) TestRunAttachDetachFromFlag(c *check.C) {
192 192
 		c.Fatal("timed out waiting for container to exit")
193 193
 	}
194 194
 
195
-	running, err := inspectField(name, "State.Running")
196
-	c.Assert(err, checker.IsNil)
195
+	running := inspectField(c, name, "State.Running")
197 196
 	c.Assert(running, checker.Equals, "true", check.Commentf("expected container to still be running"))
198 197
 }
199 198
 
... ...
@@ -276,8 +274,7 @@ func (s *DockerSuite) TestRunAttachDetachFromConfig(c *check.C) {
276 276
 		c.Fatal("timed out waiting for container to exit")
277 277
 	}
278 278
 
279
-	running, err := inspectField(name, "State.Running")
280
-	c.Assert(err, checker.IsNil)
279
+	running := inspectField(c, name, "State.Running")
281 280
 	c.Assert(running, checker.Equals, "true", check.Commentf("expected container to still be running"))
282 281
 }
283 282
 
... ...
@@ -360,8 +357,7 @@ func (s *DockerSuite) TestRunAttachDetachKeysOverrideConfig(c *check.C) {
360 360
 		c.Fatal("timed out waiting for container to exit")
361 361
 	}
362 362
 
363
-	running, err := inspectField(name, "State.Running")
364
-	c.Assert(err, checker.IsNil)
363
+	running := inspectField(c, name, "State.Running")
365 364
 	c.Assert(running, checker.Equals, "true", check.Commentf("expected container to still be running"))
366 365
 }
367 366
 
... ...
@@ -373,8 +369,7 @@ func (s *DockerSuite) TestRunWithCPUQuota(c *check.C) {
373 373
 	out, _ := dockerCmd(c, "run", "--cpu-quota", "8000", "--name", "test", "busybox", "cat", file)
374 374
 	c.Assert(strings.TrimSpace(out), checker.Equals, "8000")
375 375
 
376
-	out, err := inspectField("test", "HostConfig.CpuQuota")
377
-	c.Assert(err, check.IsNil)
376
+	out = inspectField(c, "test", "HostConfig.CpuQuota")
378 377
 	c.Assert(out, checker.Equals, "8000", check.Commentf("setting the CPU CFS quota failed"))
379 378
 }
380 379
 
... ...
@@ -385,8 +380,7 @@ func (s *DockerSuite) TestRunWithCpuPeriod(c *check.C) {
385 385
 	out, _ := dockerCmd(c, "run", "--cpu-period", "50000", "--name", "test", "busybox", "cat", file)
386 386
 	c.Assert(strings.TrimSpace(out), checker.Equals, "50000")
387 387
 
388
-	out, err := inspectField("test", "HostConfig.CpuPeriod")
389
-	c.Assert(err, check.IsNil)
388
+	out = inspectField(c, "test", "HostConfig.CpuPeriod")
390 389
 	c.Assert(out, checker.Equals, "50000", check.Commentf("setting the CPU CFS period failed"))
391 390
 }
392 391
 
... ...
@@ -397,8 +391,7 @@ func (s *DockerSuite) TestRunWithKernelMemory(c *check.C) {
397 397
 	stdout, _, _ := dockerCmdWithStdoutStderr(c, "run", "--kernel-memory", "50M", "--name", "test1", "busybox", "cat", file)
398 398
 	c.Assert(strings.TrimSpace(stdout), checker.Equals, "52428800")
399 399
 
400
-	out, err := inspectField("test1", "HostConfig.KernelMemory")
401
-	c.Assert(err, check.IsNil)
400
+	out := inspectField(c, "test1", "HostConfig.KernelMemory")
402 401
 	c.Assert(out, check.Equals, "52428800")
403 402
 }
404 403
 
... ...
@@ -423,8 +416,7 @@ func (s *DockerSuite) TestRunWithCPUShares(c *check.C) {
423 423
 	out, _ := dockerCmd(c, "run", "--cpu-shares", "1000", "--name", "test", "busybox", "cat", file)
424 424
 	c.Assert(strings.TrimSpace(out), checker.Equals, "1000")
425 425
 
426
-	out, err := inspectField("test", "HostConfig.CPUShares")
427
-	c.Assert(err, check.IsNil)
426
+	out = inspectField(c, "test", "HostConfig.CPUShares")
428 427
 	c.Assert(out, check.Equals, "1000")
429 428
 }
430 429
 
... ...
@@ -443,8 +435,7 @@ func (s *DockerSuite) TestRunWithCpusetCpus(c *check.C) {
443 443
 	out, _ := dockerCmd(c, "run", "--cpuset-cpus", "0", "--name", "test", "busybox", "cat", file)
444 444
 	c.Assert(strings.TrimSpace(out), checker.Equals, "0")
445 445
 
446
-	out, err := inspectField("test", "HostConfig.CpusetCpus")
447
-	c.Assert(err, check.IsNil)
446
+	out = inspectField(c, "test", "HostConfig.CpusetCpus")
448 447
 	c.Assert(out, check.Equals, "0")
449 448
 }
450 449
 
... ...
@@ -455,8 +446,7 @@ func (s *DockerSuite) TestRunWithCpusetMems(c *check.C) {
455 455
 	out, _ := dockerCmd(c, "run", "--cpuset-mems", "0", "--name", "test", "busybox", "cat", file)
456 456
 	c.Assert(strings.TrimSpace(out), checker.Equals, "0")
457 457
 
458
-	out, err := inspectField("test", "HostConfig.CpusetMems")
459
-	c.Assert(err, check.IsNil)
458
+	out = inspectField(c, "test", "HostConfig.CpusetMems")
460 459
 	c.Assert(out, check.Equals, "0")
461 460
 }
462 461
 
... ...
@@ -467,8 +457,7 @@ func (s *DockerSuite) TestRunWithBlkioWeight(c *check.C) {
467 467
 	out, _ := dockerCmd(c, "run", "--blkio-weight", "300", "--name", "test", "busybox", "cat", file)
468 468
 	c.Assert(strings.TrimSpace(out), checker.Equals, "300")
469 469
 
470
-	out, err := inspectField("test", "HostConfig.BlkioWeight")
471
-	c.Assert(err, check.IsNil)
470
+	out = inspectField(c, "test", "HostConfig.BlkioWeight")
472 471
 	c.Assert(out, check.Equals, "300")
473 472
 }
474 473
 
... ...
@@ -537,8 +526,7 @@ func (s *DockerSuite) TestRunWithMemoryLimit(c *check.C) {
537 537
 	stdout, _, _ := dockerCmdWithStdoutStderr(c, "run", "-m", "32M", "--name", "test", "busybox", "cat", file)
538 538
 	c.Assert(strings.TrimSpace(stdout), checker.Equals, "33554432")
539 539
 
540
-	out, err := inspectField("test", "HostConfig.Memory")
541
-	c.Assert(err, check.IsNil)
540
+	out := inspectField(c, "test", "HostConfig.Memory")
542 541
 	c.Assert(out, check.Equals, "33554432")
543 542
 }
544 543
 
... ...
@@ -559,8 +547,7 @@ func (s *DockerSuite) TestRunWithSwappiness(c *check.C) {
559 559
 	out, _ := dockerCmd(c, "run", "--memory-swappiness", "0", "--name", "test", "busybox", "cat", file)
560 560
 	c.Assert(strings.TrimSpace(out), checker.Equals, "0")
561 561
 
562
-	out, err := inspectField("test", "HostConfig.MemorySwappiness")
563
-	c.Assert(err, check.IsNil)
562
+	out = inspectField(c, "test", "HostConfig.MemorySwappiness")
564 563
 	c.Assert(out, check.Equals, "0")
565 564
 }
566 565
 
... ...
@@ -583,8 +570,7 @@ func (s *DockerSuite) TestRunWithMemoryReservation(c *check.C) {
583 583
 	out, _ := dockerCmd(c, "run", "--memory-reservation", "200M", "--name", "test", "busybox", "cat", file)
584 584
 	c.Assert(strings.TrimSpace(out), checker.Equals, "209715200")
585 585
 
586
-	out, err := inspectField("test", "HostConfig.MemoryReservation")
587
-	c.Assert(err, check.IsNil)
586
+	out = inspectField(c, "test", "HostConfig.MemoryReservation")
588 587
 	c.Assert(out, check.Equals, "209715200")
589 588
 }
590 589
 
... ...
@@ -684,8 +670,7 @@ func (s *DockerSuite) TestRunWithDefaultShmSize(c *check.C) {
684 684
 	if !shmRegex.MatchString(out) {
685 685
 		c.Fatalf("Expected shm of 64MB in mount command, got %v", out)
686 686
 	}
687
-	shmSize, err := inspectField(name, "HostConfig.ShmSize")
688
-	c.Assert(err, check.IsNil)
687
+	shmSize := inspectField(c, name, "HostConfig.ShmSize")
689 688
 	c.Assert(shmSize, check.Equals, "67108864")
690 689
 }
691 690
 
... ...
@@ -698,8 +683,7 @@ func (s *DockerSuite) TestRunWithShmSize(c *check.C) {
698 698
 	if !shmRegex.MatchString(out) {
699 699
 		c.Fatalf("Expected shm of 1GB in mount command, got %v", out)
700 700
 	}
701
-	shmSize, err := inspectField(name, "HostConfig.ShmSize")
702
-	c.Assert(err, check.IsNil)
701
+	shmSize := inspectField(c, name, "HostConfig.ShmSize")
703 702
 	c.Assert(shmSize, check.Equals, "1073741824")
704 703
 }
705 704
 
... ...
@@ -223,7 +223,7 @@ func (s *DockerSuite) TestSaveRepoWithMultipleImages(c *check.C) {
223 223
 	}
224 224
 
225 225
 	// make the list of expected layers
226
-	out, _ = dockerCmd(c, "inspect", "-f", "{{.Id}}", "busybox:latest")
226
+	out = inspectField(c, "busybox:latest", "Id")
227 227
 	expected := []string{strings.TrimSpace(out), idFoo, idBar}
228 228
 
229 229
 	// prefixes are not in tar
... ...
@@ -6,6 +6,7 @@ import (
6 6
 	"io/ioutil"
7 7
 	"os"
8 8
 	"os/exec"
9
+	"strings"
9 10
 
10 11
 	"github.com/docker/docker/pkg/integration/checker"
11 12
 	"github.com/go-check/check"
... ...
@@ -19,6 +20,7 @@ func (s *DockerSuite) TestSaveAndLoadRepoStdout(c *check.C) {
19 19
 
20 20
 	repoName := "foobar-save-load-test"
21 21
 	before, _ := dockerCmd(c, "commit", name, repoName)
22
+	before = strings.TrimRight(before, "\n")
22 23
 
23 24
 	tmpFile, err := ioutil.TempFile("", "foobar-save-load-test.tar")
24 25
 	c.Assert(err, check.IsNil)
... ...
@@ -41,9 +43,10 @@ func (s *DockerSuite) TestSaveAndLoadRepoStdout(c *check.C) {
41 41
 	out, _, err := runCommandWithOutput(loadCmd)
42 42
 	c.Assert(err, check.IsNil, check.Commentf(out))
43 43
 
44
-	after, _ := dockerCmd(c, "inspect", "-f", "{{.Id}}", repoName)
44
+	after := inspectField(c, repoName, "Id")
45
+	after = strings.TrimRight(after, "\n")
45 46
 
46
-	c.Assert(before, check.Equals, after) //inspect is not the same after a save / load
47
+	c.Assert(after, check.Equals, before) //inspect is not the same after a save / load
47 48
 
48 49
 	deleteImages(repoName)
49 50
 
... ...
@@ -72,8 +72,7 @@ func (s *DockerSuite) TestStartRecordError(c *check.C) {
72 72
 	testRequires(c, DaemonIsLinux)
73 73
 	// when container runs successfully, we should not have state.Error
74 74
 	dockerCmd(c, "run", "-d", "-p", "9999:9999", "--name", "test", "busybox", "top")
75
-	stateErr, err := inspectField("test", "State.Error")
76
-	c.Assert(err, checker.IsNil, check.Commentf("stateErr: %s", stateErr))
75
+	stateErr := inspectField(c, "test", "State.Error")
77 76
 	// Expected to not have state error
78 77
 	c.Assert(stateErr, checker.Equals, "")
79 78
 
... ...
@@ -82,15 +81,13 @@ func (s *DockerSuite) TestStartRecordError(c *check.C) {
82 82
 	// err shouldn't be nil because docker run will fail
83 83
 	c.Assert(err, checker.NotNil, check.Commentf("out: %s", out))
84 84
 
85
-	stateErr, err = inspectField("test2", "State.Error")
86
-	c.Assert(err, check.IsNil, check.Commentf("stateErr: %s", stateErr))
85
+	stateErr = inspectField(c, "test2", "State.Error")
87 86
 	c.Assert(stateErr, checker.Contains, "port is already allocated")
88 87
 
89 88
 	// Expect the conflict to be resolved when we stop the initial container
90 89
 	dockerCmd(c, "stop", "test")
91 90
 	dockerCmd(c, "start", "test2")
92
-	stateErr, err = inspectField("test2", "State.Error")
93
-	c.Assert(err, check.IsNil, check.Commentf("stateErr: %s", stateErr))
91
+	stateErr = inspectField(c, "test2", "State.Error")
94 92
 	// Expected to not have state error but got one
95 93
 	c.Assert(stateErr, checker.Equals, "")
96 94
 }
... ...
@@ -122,8 +119,7 @@ func (s *DockerSuite) TestStartMultipleContainers(c *check.C) {
122 122
 	// stop 'parent' container
123 123
 	dockerCmd(c, "stop", "parent")
124 124
 
125
-	out, err := inspectField("parent", "State.Running")
126
-	c.Assert(err, check.IsNil, check.Commentf("out: %s", out))
125
+	out := inspectField(c, "parent", "State.Running")
127 126
 	// Container should be stopped
128 127
 	c.Assert(out, checker.Equals, "false")
129 128
 
... ...
@@ -131,7 +127,7 @@ func (s *DockerSuite) TestStartMultipleContainers(c *check.C) {
131 131
 	// container 'parent' start second and then start container 'child_second'
132 132
 	expOut := "Cannot link to a non running container"
133 133
 	expErr := "failed to start containers: [child_first]"
134
-	out, _, err = dockerCmdWithError("start", "child_first", "parent", "child_second")
134
+	out, _, err := dockerCmdWithError("start", "child_first", "parent", "child_second")
135 135
 	// err shouldn't be nil because start will fail
136 136
 	c.Assert(err, checker.NotNil, check.Commentf("out: %s", out))
137 137
 	// output does not correspond to what was expected
... ...
@@ -140,9 +136,7 @@ func (s *DockerSuite) TestStartMultipleContainers(c *check.C) {
140 140
 	}
141 141
 
142 142
 	for container, expected := range map[string]string{"parent": "true", "child_first": "false", "child_second": "true"} {
143
-		out, err := inspectField(container, "State.Running")
144
-		// Container running state wrong
145
-		c.Assert(err, check.IsNil, check.Commentf("out: %s", out))
143
+		out := inspectField(c, container, "State.Running")
146 144
 		// Container running state wrong
147 145
 		c.Assert(out, checker.Equals, expected)
148 146
 	}
... ...
@@ -171,9 +165,7 @@ func (s *DockerSuite) TestStartAttachMultipleContainers(c *check.C) {
171 171
 
172 172
 	// confirm the state of all the containers be stopped
173 173
 	for container, expected := range map[string]string{"test1": "false", "test2": "false", "test3": "false"} {
174
-		out, err := inspectField(container, "State.Running")
175
-		// Container running state wrong
176
-		c.Assert(err, check.IsNil, check.Commentf("out: %s", out))
174
+		out := inspectField(c, container, "State.Running")
177 175
 		// Container running state wrong
178 176
 		c.Assert(out, checker.Equals, expected)
179 177
 	}
... ...
@@ -383,8 +383,7 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverBindExternalVolume(c
383 383
 		Name   string
384 384
 		Driver string
385 385
 	}
386
-	out, err := inspectFieldJSON("testing", "Mounts")
387
-	c.Assert(err, checker.IsNil)
386
+	out := inspectFieldJSON(c, "testing", "Mounts")
388 387
 	c.Assert(json.NewDecoder(strings.NewReader(out)).Decode(&mounts), checker.IsNil)
389 388
 	c.Assert(len(mounts), checker.Equals, 1, check.Commentf(out))
390 389
 	c.Assert(mounts[0].Name, checker.Equals, "foo")
... ...
@@ -25,8 +25,7 @@ func (s *DockerSuite) TestTagUnprefixedRepoByName(c *check.C) {
25 25
 
26 26
 // tagging an image by ID in a new unprefixed repo should work
27 27
 func (s *DockerSuite) TestTagUnprefixedRepoByID(c *check.C) {
28
-	imageID, err := inspectField("busybox", "Id")
29
-	c.Assert(err, check.IsNil)
28
+	imageID := inspectField(c, "busybox", "Id")
30 29
 	dockerCmd(c, "tag", imageID, "testfoobarbaz")
31 30
 }
32 31
 
... ...
@@ -233,10 +232,7 @@ func (s *DockerSuite) TestTagTruncationAmbiguity(c *check.C) {
233 233
 	truncatedImageID := stringid.TruncateID(imageID)
234 234
 	truncatedTag := fmt.Sprintf("notbusybox:%s", truncatedImageID)
235 235
 
236
-	id, err := inspectField(truncatedTag, "Id")
237
-	if err != nil {
238
-		c.Fatalf("Error inspecting by image id: %s", err)
239
-	}
236
+	id := inspectField(c, truncatedTag, "Id")
240 237
 
241 238
 	// Ensure inspect by image id returns image for image id
242 239
 	c.Assert(id, checker.Equals, imageID)
... ...
@@ -248,10 +244,7 @@ func (s *DockerSuite) TestTagTruncationAmbiguity(c *check.C) {
248 248
 		c.Fatalf("Error tagging with an image id: %s", err)
249 249
 	}
250 250
 
251
-	id, err = inspectField(truncatedTag, "Id")
252
-	if err != nil {
253
-		c.Fatalf("Error inspecting by image id: %s", err)
254
-	}
251
+	id = inspectField(c, truncatedTag, "Id")
255 252
 
256 253
 	// Ensure id is imageID and not busybox:latest
257 254
 	c.Assert(id, checker.Not(checker.Equals), imageID)
... ...
@@ -20,8 +20,7 @@ func (s *DockerSuite) TestUpdateRunningContainer(c *check.C) {
20 20
 	dockerCmd(c, "run", "-d", "--name", name, "-m", "300M", "busybox", "top")
21 21
 	dockerCmd(c, "update", "-m", "500M", name)
22 22
 
23
-	memory, err := inspectField(name, "HostConfig.Memory")
24
-	c.Assert(err, check.IsNil)
23
+	memory := inspectField(c, name, "HostConfig.Memory")
25 24
 	if memory != "524288000" {
26 25
 		c.Fatalf("Got the wrong memory value, we got %d, expected 524288000(500M).", memory)
27 26
 	}
... ...
@@ -40,8 +39,7 @@ func (s *DockerSuite) TestUpdateRunningContainerWithRestart(c *check.C) {
40 40
 	dockerCmd(c, "update", "-m", "500M", name)
41 41
 	dockerCmd(c, "restart", name)
42 42
 
43
-	memory, err := inspectField(name, "HostConfig.Memory")
44
-	c.Assert(err, check.IsNil)
43
+	memory := inspectField(c, name, "HostConfig.Memory")
45 44
 	if memory != "524288000" {
46 45
 		c.Fatalf("Got the wrong memory value, we got %d, expected 524288000(500M).", memory)
47 46
 	}
... ...
@@ -60,8 +58,7 @@ func (s *DockerSuite) TestUpdateStoppedContainer(c *check.C) {
60 60
 	dockerCmd(c, "run", "--name", name, "-m", "300M", "busybox", "cat", file)
61 61
 	dockerCmd(c, "update", "-m", "500M", name)
62 62
 
63
-	memory, err := inspectField(name, "HostConfig.Memory")
64
-	c.Assert(err, check.IsNil)
63
+	memory := inspectField(c, name, "HostConfig.Memory")
65 64
 	if memory != "524288000" {
66 65
 		c.Fatalf("Got the wrong memory value, we got %d, expected 524288000(500M).", memory)
67 66
 	}
... ...
@@ -79,8 +76,7 @@ func (s *DockerSuite) TestUpdatePausedContainer(c *check.C) {
79 79
 	dockerCmd(c, "pause", name)
80 80
 	dockerCmd(c, "update", "--cpu-shares", "500", name)
81 81
 
82
-	out, err := inspectField(name, "HostConfig.CPUShares")
83
-	c.Assert(err, check.IsNil)
82
+	out := inspectField(c, name, "HostConfig.CPUShares")
84 83
 	if out != "500" {
85 84
 		c.Fatalf("Got the wrong cpu shares value, we got %d, expected 500.", out)
86 85
 	}
... ...
@@ -101,8 +97,7 @@ func (s *DockerSuite) TestUpdateWithUntouchedFields(c *check.C) {
101 101
 	dockerCmd(c, "update", "-m", "500M", name)
102 102
 
103 103
 	// Update memory and not touch cpus, `cpuset.cpus` should still have the old value
104
-	out, err := inspectField(name, "HostConfig.CPUShares")
105
-	c.Assert(err, check.IsNil)
104
+	out := inspectField(c, name, "HostConfig.CPUShares")
106 105
 	c.Assert(out, check.Equals, "800")
107 106
 
108 107
 	file := "/sys/fs/cgroup/cpu/cpu.shares"
... ...
@@ -142,8 +137,7 @@ func (s *DockerSuite) TestUpdateKernelMemory(c *check.C) {
142 142
 	// Update kernel memory to a running container is not allowed.
143 143
 	c.Assert(err, check.NotNil)
144 144
 
145
-	out, err := inspectField(name, "HostConfig.KernelMemory")
146
-	c.Assert(err, check.IsNil)
145
+	out := inspectField(c, name, "HostConfig.KernelMemory")
147 146
 	// Update kernel memory to a running container with failure should not change HostConfig
148 147
 	if out != "52428800" {
149 148
 		c.Fatalf("Got the wrong memory value, we got %d, expected 52428800(50M).", out)
... ...
@@ -153,8 +147,7 @@ func (s *DockerSuite) TestUpdateKernelMemory(c *check.C) {
153 153
 	dockerCmd(c, "update", "--kernel-memory", "100M", name)
154 154
 	dockerCmd(c, "start", name)
155 155
 
156
-	out, err = inspectField(name, "HostConfig.KernelMemory")
157
-	c.Assert(err, check.IsNil)
156
+	out = inspectField(c, name, "HostConfig.KernelMemory")
158 157
 	if out != "104857600" {
159 158
 		c.Fatalf("Got the wrong memory value, we got %d, expected 104857600(100M).", out)
160 159
 	}
... ...
@@ -1135,13 +1135,12 @@ COPY . /static`); err != nil {
1135 1135
 		ctx:       ctx}, nil
1136 1136
 }
1137 1137
 
1138
-func inspectFieldAndMarshall(name, field string, output interface{}) error {
1139
-	str, err := inspectFieldJSON(name, field)
1140
-	if err != nil {
1141
-		return err
1138
+func inspectFieldAndMarshall(c *check.C, name, field string, output interface{}) {
1139
+	str := inspectFieldJSON(c, name, field)
1140
+	err := json.Unmarshal([]byte(str), output)
1141
+	if c != nil {
1142
+		c.Assert(err, check.IsNil, check.Commentf("failed to unmarshal: %v", err))
1142 1143
 	}
1143
-
1144
-	return json.Unmarshal([]byte(str), output)
1145 1144
 }
1146 1145
 
1147 1146
 func inspectFilter(name, filter string) (string, error) {
... ...
@@ -1149,21 +1148,37 @@ func inspectFilter(name, filter string) (string, error) {
1149 1149
 	inspectCmd := exec.Command(dockerBinary, "inspect", "-f", format, name)
1150 1150
 	out, exitCode, err := runCommandWithOutput(inspectCmd)
1151 1151
 	if err != nil || exitCode != 0 {
1152
-		return "", fmt.Errorf("failed to inspect container %s: %s", name, out)
1152
+		return "", fmt.Errorf("failed to inspect %s: %s", name, out)
1153 1153
 	}
1154 1154
 	return strings.TrimSpace(out), nil
1155 1155
 }
1156 1156
 
1157
-func inspectField(name, field string) (string, error) {
1157
+func inspectFieldWithError(name, field string) (string, error) {
1158 1158
 	return inspectFilter(name, fmt.Sprintf(".%s", field))
1159 1159
 }
1160 1160
 
1161
-func inspectFieldJSON(name, field string) (string, error) {
1162
-	return inspectFilter(name, fmt.Sprintf("json .%s", field))
1161
+func inspectField(c *check.C, name, field string) string {
1162
+	out, err := inspectFilter(name, fmt.Sprintf(".%s", field))
1163
+	if c != nil {
1164
+		c.Assert(err, check.IsNil)
1165
+	}
1166
+	return out
1163 1167
 }
1164 1168
 
1165
-func inspectFieldMap(name, path, field string) (string, error) {
1166
-	return inspectFilter(name, fmt.Sprintf("index .%s %q", path, field))
1169
+func inspectFieldJSON(c *check.C, name, field string) string {
1170
+	out, err := inspectFilter(name, fmt.Sprintf("json .%s", field))
1171
+	if c != nil {
1172
+		c.Assert(err, check.IsNil)
1173
+	}
1174
+	return out
1175
+}
1176
+
1177
+func inspectFieldMap(c *check.C, name, path, field string) string {
1178
+	out, err := inspectFilter(name, fmt.Sprintf("index .%s %q", path, field))
1179
+	if c != nil {
1180
+		c.Assert(err, check.IsNil)
1181
+	}
1182
+	return out
1167 1183
 }
1168 1184
 
1169 1185
 func inspectMountSourceField(name, destination string) (string, error) {
... ...
@@ -1175,7 +1190,7 @@ func inspectMountSourceField(name, destination string) (string, error) {
1175 1175
 }
1176 1176
 
1177 1177
 func inspectMountPoint(name, destination string) (types.MountPoint, error) {
1178
-	out, err := inspectFieldJSON(name, "Mounts")
1178
+	out, err := inspectFilter(name, "json .Mounts")
1179 1179
 	if err != nil {
1180 1180
 		return types.MountPoint{}, err
1181 1181
 	}
... ...
@@ -1207,7 +1222,7 @@ func inspectMountPointJSON(j, destination string) (types.MountPoint, error) {
1207 1207
 }
1208 1208
 
1209 1209
 func getIDByName(name string) (string, error) {
1210
-	return inspectField(name, "Id")
1210
+	return inspectFieldWithError(name, "Id")
1211 1211
 }
1212 1212
 
1213 1213
 // getContainerState returns the exit code of the container