diff --git a/integration-cli/docker_cli_swarm_test.go b/integration-cli/docker_cli_swarm_test.go index 3fbf3099ef..0e6a5f49c8 100644 --- a/integration-cli/docker_cli_swarm_test.go +++ b/integration-cli/docker_cli_swarm_test.go @@ -287,6 +287,15 @@ func (s *DockerSwarmSuite) TestSwarmTaskListFilter(c *check.C) { filter := "name=redis-cluster" + checkNumTasks := func(*check.C) (interface{}, check.CommentInterface) { + out, err := d.Cmd("service", "ps", "--filter", filter, name) + c.Assert(err, checker.IsNil) + return len(strings.Split(out, "\n")) - 2, nil // includes header and nl in last line + } + + // wait until all tasks have been created + waitAndAssert(c, defaultReconciliationTimeout, checkNumTasks, checker.Equals, 3) + out, err = d.Cmd("service", "ps", "--filter", filter, name) c.Assert(err, checker.IsNil) c.Assert(out, checker.Contains, name+".1") @@ -310,6 +319,8 @@ func (s *DockerSwarmSuite) TestSwarmTaskListFilter(c *check.C) { c.Assert(err, checker.IsNil) c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "") + waitAndAssert(c, defaultReconciliationTimeout, checkNumTasks, checker.Equals, 1) + filter = "name=redis-cluster" out, err = d.Cmd("service", "ps", "--filter", filter, name) c.Assert(err, checker.IsNil)