Browse code

Test that paused containers show up filtering by status.

Signed-off-by: David Calavera <david.calavera@gmail.com>

David Calavera authored on 2015/11/12 02:51:36
Showing 1 changed files
... ...
@@ -168,14 +168,12 @@ func (s *DockerSuite) TestPsListContainersSize(c *check.C) {
168 168
 
169 169
 func (s *DockerSuite) TestPsListContainersFilterStatus(c *check.C) {
170 170
 	testRequires(c, DaemonIsLinux)
171
-	// FIXME: this should test paused, but it makes things hang and its wonky
172
-	// this is because paused containers can't be controlled by signals
173 171
 
174 172
 	// start exited container
175 173
 	out, _ := dockerCmd(c, "run", "-d", "busybox")
176 174
 	firstID := strings.TrimSpace(out)
177 175
 
178
-	// make sure the exited cintainer is not running
176
+	// make sure the exited container is not running
179 177
 	dockerCmd(c, "wait", firstID)
180 178
 
181 179
 	// start running container
... ...
@@ -183,17 +181,27 @@ func (s *DockerSuite) TestPsListContainersFilterStatus(c *check.C) {
183 183
 	secondID := strings.TrimSpace(out)
184 184
 
185 185
 	// filter containers by exited
186
-	out, _ = dockerCmd(c, "ps", "-q", "--filter=status=exited")
186
+	out, _ = dockerCmd(c, "ps", "--no-trunc", "-q", "--filter=status=exited")
187 187
 	containerOut := strings.TrimSpace(out)
188
-	c.Assert(containerOut, checker.Equals, firstID[:12], check.Commentf("Expected id %s, got %s for exited filter, output: %q", firstID[:12], containerOut, out))
188
+	c.Assert(containerOut, checker.Equals, firstID)
189 189
 
190
-	out, _ = dockerCmd(c, "ps", "-a", "-q", "--filter=status=running")
190
+	out, _ = dockerCmd(c, "ps", "-a", "--no-trunc", "-q", "--filter=status=running")
191 191
 	containerOut = strings.TrimSpace(out)
192
-	c.Assert(containerOut, checker.Equals, secondID[:12], check.Commentf("Expected id %s, got %s for running filter, output: %q", secondID[:12], containerOut, out))
192
+	c.Assert(containerOut, checker.Equals, secondID)
193 193
 
194 194
 	out, _, _ = dockerCmdWithTimeout(time.Second*60, "ps", "-a", "-q", "--filter=status=rubbish")
195 195
 	c.Assert(out, checker.Contains, "Unrecognised filter value for status", check.Commentf("Expected error response due to invalid status filter output: %q", out))
196 196
 
197
+	// pause running container
198
+	out, _ = dockerCmd(c, "run", "-itd", "busybox")
199
+	pausedID := strings.TrimSpace(out)
200
+	dockerCmd(c, "pause", pausedID)
201
+	// make sure the container is unpaused to let the daemon stop it properly
202
+	defer func() { dockerCmd(c, "unpause", pausedID) }()
203
+
204
+	out, _ = dockerCmd(c, "ps", "--no-trunc", "-q", "--filter=status=paused")
205
+	containerOut = strings.TrimSpace(out)
206
+	c.Assert(containerOut, checker.Equals, pausedID)
197 207
 }
198 208
 
199 209
 func (s *DockerSuite) TestPsListContainersFilterID(c *check.C) {