From cc8d5c080177489546e4aa4f752cf777e8a84d34 Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Wed, 30 Nov 2016 05:48:44 +0000 Subject: [PATCH] improve TestServiceLogs for the goroutine issue #28915 Signed-off-by: Akihiro Suda Upstream-commit: f8a93d0c9d157dddc4e4d4d9c43a6fe7c7c0c242 Component: engine --- ...cker_cli_service_logs_experimental_test.go | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/components/engine/integration-cli/docker_cli_service_logs_experimental_test.go b/components/engine/integration-cli/docker_cli_service_logs_experimental_test.go index e5003282e6..c2216543d7 100644 --- a/components/engine/integration-cli/docker_cli_service_logs_experimental_test.go +++ b/components/engine/integration-cli/docker_cli_service_logs_experimental_test.go @@ -23,19 +23,29 @@ func (s *DockerSwarmSuite) TestServiceLogs(c *check.C) { d := s.AddDaemon(c, true, true) - name := "TestServiceLogs" + // we have multiple services here for detecting the goroutine issue #28915 + services := map[string]string{ + "TestServiceLogs1": "hello1", + "TestServiceLogs2": "hello2", + } - out, err := d.Cmd("service", "create", "--name", name, "--restart-condition", "none", "busybox", "sh", "-c", "echo hello world") - c.Assert(err, checker.IsNil) - c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "") + for name, message := range services { + out, err := d.Cmd("service", "create", "--name", name, "busybox", + "sh", "-c", fmt.Sprintf("echo %s; tail -f /dev/null", message)) + c.Assert(err, checker.IsNil) + c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "") + } // make sure task has been deployed. - waitAndAssert(c, defaultReconciliationTimeout, d.checkActiveContainerCount, checker.Equals, 1) + waitAndAssert(c, defaultReconciliationTimeout, + d.checkActiveContainerCount, checker.Equals, len(services)) - out, err = d.Cmd("service", "logs", name) - fmt.Println(out) - c.Assert(err, checker.IsNil) - c.Assert(out, checker.Contains, "hello world") + for name, message := range services { + out, err := d.Cmd("service", "logs", name) + c.Assert(err, checker.IsNil) + c.Logf("log for %q: %q", name, out) + c.Assert(out, checker.Contains, message) + } } func (s *DockerSwarmSuite) TestServiceLogsFollow(c *check.C) {