From 2c7c1d708b7870681a8ee6fbb9360eb11b74ed40 Mon Sep 17 00:00:00 2001 From: Dennis Chen Date: Thu, 24 May 2018 10:14:55 +0800 Subject: [PATCH 1/2] Alternative failure mitigation of `TestExecInteractiveStdinClose` Begin to copy the data until the command to exit and any coping to stdin or copy from stdout/stderr has completed. Also adding defense code to trim the possible '\x00' null value. Signed-off-by: Dennis Chen Upstream-commit: 386e0f36c42593ef434517448ccfac5262f958d6 Component: engine --- .../integration-cli/docker_cli_exec_unix_test.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/components/engine/integration-cli/docker_cli_exec_unix_test.go b/components/engine/integration-cli/docker_cli_exec_unix_test.go index 337a90b116..4c77df4f11 100644 --- a/components/engine/integration-cli/docker_cli_exec_unix_test.go +++ b/components/engine/integration-cli/docker_cli_exec_unix_test.go @@ -25,10 +25,6 @@ func (s *DockerSuite) TestExecInteractiveStdinClose(c *check.C) { c.Assert(err, checker.IsNil) b := bytes.NewBuffer(nil) - go func() { - io.Copy(b, p) - p.Close() - }() ch := make(chan error) go func() { ch <- cmd.Wait() }() @@ -36,9 +32,14 @@ func (s *DockerSuite) TestExecInteractiveStdinClose(c *check.C) { select { case err := <-ch: c.Assert(err, checker.IsNil) - output := b.String() + io.Copy(b, p) + p.Close() + bs := b.Bytes() + bs = bytes.Trim(bs, "\x00") + output := string(bs[:]) c.Assert(strings.TrimSpace(output), checker.Equals, "hello") case <-time.After(5 * time.Second): + p.Close() c.Fatal("timed out running docker exec") } } From 37672d40d5476e5f24cf442196ce653e4335c0e9 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Mon, 28 May 2018 22:57:52 +0000 Subject: [PATCH 2/2] Add `t.Name()` to tests so that service names are unique This fix adds `t.Name()` to tests in integration/network so that services created in those tests have unique names. Signed-off-by: Yong Tang Upstream-commit: 76195f8047eb9a6be710d53ec493ab97bcf86e20 Component: engine --- components/engine/integration/network/inspect_test.go | 2 +- components/engine/integration/network/service_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/engine/integration/network/inspect_test.go b/components/engine/integration/network/inspect_test.go index e88d739fd9..052642f980 100644 --- a/components/engine/integration/network/inspect_test.go +++ b/components/engine/integration/network/inspect_test.go @@ -34,7 +34,7 @@ func TestInspectNetwork(t *testing.T) { overlayID := netResp.ID var instances uint64 = 4 - serviceName := "TestService" + serviceName := "TestService" + t.Name() serviceID := swarm.CreateService(t, d, swarm.ServiceWithReplicas(instances), diff --git a/components/engine/integration/network/service_test.go b/components/engine/integration/network/service_test.go index 9b0c027598..8a92786fd8 100644 --- a/components/engine/integration/network/service_test.go +++ b/components/engine/integration/network/service_test.go @@ -207,7 +207,7 @@ func TestServiceWithPredefinedNetwork(t *testing.T) { hostName := "host" var instances uint64 = 1 - serviceName := "TestService" + serviceName := "TestService" + t.Name() serviceID := swarm.CreateService(t, d, swarm.ServiceWithReplicas(instances),