From 9c09b9b37ac8ca888c10d7b8845e6dafc92efc3c Mon Sep 17 00:00:00 2001 From: David Calavera Date: Wed, 11 Nov 2015 12:51:36 -0500 Subject: [PATCH] Test that paused containers show up filtering by status. Signed-off-by: David Calavera Upstream-commit: 2a07b19fd8fd402b4ec7b7814f85d099c8b8efca Component: engine --- .../integration-cli/docker_cli_ps_test.go | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/components/engine/integration-cli/docker_cli_ps_test.go b/components/engine/integration-cli/docker_cli_ps_test.go index 3c621511a1..906fcea4ef 100644 --- a/components/engine/integration-cli/docker_cli_ps_test.go +++ b/components/engine/integration-cli/docker_cli_ps_test.go @@ -168,14 +168,12 @@ func (s *DockerSuite) TestPsListContainersSize(c *check.C) { func (s *DockerSuite) TestPsListContainersFilterStatus(c *check.C) { testRequires(c, DaemonIsLinux) - // FIXME: this should test paused, but it makes things hang and its wonky - // this is because paused containers can't be controlled by signals // start exited container out, _ := dockerCmd(c, "run", "-d", "busybox") firstID := strings.TrimSpace(out) - // make sure the exited cintainer is not running + // make sure the exited container is not running dockerCmd(c, "wait", firstID) // start running container @@ -183,17 +181,27 @@ func (s *DockerSuite) TestPsListContainersFilterStatus(c *check.C) { secondID := strings.TrimSpace(out) // filter containers by exited - out, _ = dockerCmd(c, "ps", "-q", "--filter=status=exited") + out, _ = dockerCmd(c, "ps", "--no-trunc", "-q", "--filter=status=exited") containerOut := strings.TrimSpace(out) - c.Assert(containerOut, checker.Equals, firstID[:12], check.Commentf("Expected id %s, got %s for exited filter, output: %q", firstID[:12], containerOut, out)) + c.Assert(containerOut, checker.Equals, firstID) - out, _ = dockerCmd(c, "ps", "-a", "-q", "--filter=status=running") + out, _ = dockerCmd(c, "ps", "-a", "--no-trunc", "-q", "--filter=status=running") containerOut = strings.TrimSpace(out) - c.Assert(containerOut, checker.Equals, secondID[:12], check.Commentf("Expected id %s, got %s for running filter, output: %q", secondID[:12], containerOut, out)) + c.Assert(containerOut, checker.Equals, secondID) out, _, _ = dockerCmdWithTimeout(time.Second*60, "ps", "-a", "-q", "--filter=status=rubbish") c.Assert(out, checker.Contains, "Unrecognised filter value for status", check.Commentf("Expected error response due to invalid status filter output: %q", out)) + // pause running container + out, _ = dockerCmd(c, "run", "-itd", "busybox") + pausedID := strings.TrimSpace(out) + dockerCmd(c, "pause", pausedID) + // make sure the container is unpaused to let the daemon stop it properly + defer func() { dockerCmd(c, "unpause", pausedID) }() + + out, _ = dockerCmd(c, "ps", "--no-trunc", "-q", "--filter=status=paused") + containerOut = strings.TrimSpace(out) + c.Assert(containerOut, checker.Equals, pausedID) } func (s *DockerSuite) TestPsListContainersFilterID(c *check.C) {