diff --git a/integration-cli/docker_cli_logs_test.go b/integration-cli/docker_cli_logs_test.go index 317cb202ec..d2dcad1052 100644 --- a/integration-cli/docker_cli_logs_test.go +++ b/integration-cli/docker_cli_logs_test.go @@ -117,22 +117,28 @@ func (s *DockerSuite) TestLogsTail(c *check.C) { id := strings.TrimSpace(out) dockerCmd(c, "wait", id) - out, _ = dockerCmd(c, "logs", "--tail", "5", id) - + out, _ = dockerCmd(c, "logs", "--tail", "0", id) lines := strings.Split(out, "\n") + c.Assert(lines, checker.HasLen, 1) + out, _ = dockerCmd(c, "logs", "--tail", "5", id) + lines = strings.Split(out, "\n") c.Assert(lines, checker.HasLen, 6) - out, _ = dockerCmd(c, "logs", "--tail", "all", id) - + out, _ = dockerCmd(c, "logs", "--tail", "99", id) lines = strings.Split(out, "\n") + c.Assert(lines, checker.HasLen, 100) + out, _ = dockerCmd(c, "logs", "--tail", "all", id) + lines = strings.Split(out, "\n") + c.Assert(lines, checker.HasLen, testLen+1) + + out, _ = dockerCmd(c, "logs", "--tail", "-1", id) + lines = strings.Split(out, "\n") c.Assert(lines, checker.HasLen, testLen+1) out, _, _ = dockerCmdWithStdoutStderr(c, "logs", "--tail", "random", id) - lines = strings.Split(out, "\n") - c.Assert(lines, checker.HasLen, testLen+1) } diff --git a/pkg/tailfile/tailfile.go b/pkg/tailfile/tailfile.go index d580584d61..09eb393ab7 100644 --- a/pkg/tailfile/tailfile.go +++ b/pkg/tailfile/tailfile.go @@ -44,7 +44,7 @@ func TailFile(f io.ReadSeeker, n int) ([][]byte, error) { break } else { b = make([]byte, blockSize) - if _, err := f.Seek(step, os.SEEK_END); err != nil { + if _, err := f.Seek(left, os.SEEK_SET); err != nil { return nil, err } if _, err := f.Read(b); err != nil {