1package container // import "github.com/docker/docker/integration/container"
2
3import (
4	"context"
5	"io/ioutil"
6	"testing"
7
8	"github.com/docker/docker/api/types"
9	"github.com/docker/docker/integration/internal/container"
10	"github.com/docker/docker/pkg/stdcopy"
11	"gotest.tools/v3/assert"
12	"gotest.tools/v3/skip"
13)
14
15// Regression test for #35370
16// Makes sure that when following we don't get an EOF error when there are no logs
17func TestLogsFollowTailEmpty(t *testing.T) {
18	// FIXME(vdemeester) fails on a e2e run on linux...
19	skip.If(t, testEnv.IsRemoteDaemon)
20	defer setupTest(t)()
21	client := testEnv.APIClient()
22	ctx := context.Background()
23
24	id := container.Run(ctx, t, client, container.WithCmd("sleep", "100000"))
25
26	logs, err := client.ContainerLogs(ctx, id, types.ContainerLogsOptions{ShowStdout: true, Tail: "2"})
27	if logs != nil {
28		defer logs.Close()
29	}
30	assert.Check(t, err)
31
32	_, err = stdcopy.StdCopy(ioutil.Discard, ioutil.Discard, logs)
33	assert.Check(t, err)
34}
35