From 2052fc87747d3f0ebf00dd1a527169c3635abb01 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Mon, 12 Mar 2018 18:08:59 -0700 Subject: [PATCH] TestLinksEtcHostsContentMatch: use container.Exec() I am not quite sure why but this test is sometimes failing like this: > 15:21:41 --- FAIL: TestLinksEtcHostsContentMatch (0.53s) > 15:21:41 assertions.go:226: > > Error Trace: links_linux_test.go:46 > 15:21:41 > Error: Not equal: > 15:21:41 > expected: "127.0.0.1\tlocalhost\n::1\tlocalhost > ip6-localhost > ip6-loopback\nfe00::0\tip6-localnet\nff00::0\tip6-mcastprefix\nff02::1\tip6-allnodes\nff02::2\tip6-allrouters\n172.17.0.2\tf53feb6df161\n" > 15:21:41 > received: "" To eliminate some possible failures (like ignoring stderr from `cat` or its exit code), let's use container.Exec() to read a file from a container. Fixes: e6bd20edcbf ("Migrate some integration-cli test to api tests") Signed-off-by: Kir Kolyshkin Upstream-commit: ad2f88d8ccbd9dd0a8d9c4f96ece3956f60489df Component: engine --- .../integration/container/links_linux_test.go | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/components/engine/integration/container/links_linux_test.go b/components/engine/integration/container/links_linux_test.go index d230898ed0..c844c4916f 100644 --- a/components/engine/integration/container/links_linux_test.go +++ b/components/engine/integration/container/links_linux_test.go @@ -1,19 +1,15 @@ package container // import "github.com/docker/docker/integration/container" import ( - "bytes" "context" "io/ioutil" "os" "testing" - "time" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" - "github.com/docker/docker/pkg/stdcopy" - "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -29,21 +25,13 @@ func TestLinksEtcHostsContentMatch(t *testing.T) { client := request.NewAPIClient(t) ctx := context.Background() - cID := container.Run(t, ctx, client, container.WithCmd("cat", "/etc/hosts"), container.WithNetworkMode("host")) - - poll.WaitOn(t, container.IsStopped(ctx, client, cID), poll.WithDelay(100*time.Millisecond)) - - body, err := client.ContainerLogs(ctx, cID, types.ContainerLogsOptions{ - ShowStdout: true, - }) + cID := container.Run(t, ctx, client, container.WithNetworkMode("host")) + res, err := container.Exec(ctx, client, cID, []string{"cat", "/etc/hosts"}) require.NoError(t, err) - defer body.Close() + require.Empty(t, res.Stderr()) + require.Equal(t, 0, res.ExitCode) - var b bytes.Buffer - _, err = stdcopy.StdCopy(&b, ioutil.Discard, body) - require.NoError(t, err) - - assert.Equal(t, string(hosts), b.String()) + assert.Equal(t, string(hosts), res.Stdout()) } func TestLinksContainerNames(t *testing.T) {