зеркало из https://github.com/microsoft/docker.git
Merge pull request #28203 from shaynewang/27687-fix-tail-flag-returning-more-lines
Fixes #27687 docker logs --tails returns less lines than expected
This commit is contained in:
Коммит
28094357ed
|
@ -117,22 +117,28 @@ func (s *DockerSuite) TestLogsTail(c *check.C) {
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
dockerCmd(c, "wait", id)
|
dockerCmd(c, "wait", id)
|
||||||
|
|
||||||
out, _ = dockerCmd(c, "logs", "--tail", "5", id)
|
out, _ = dockerCmd(c, "logs", "--tail", "0", id)
|
||||||
|
|
||||||
lines := strings.Split(out, "\n")
|
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)
|
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")
|
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)
|
c.Assert(lines, checker.HasLen, testLen+1)
|
||||||
|
|
||||||
out, _, _ = dockerCmdWithStdoutStderr(c, "logs", "--tail", "random", id)
|
out, _, _ = dockerCmdWithStdoutStderr(c, "logs", "--tail", "random", id)
|
||||||
|
|
||||||
lines = strings.Split(out, "\n")
|
lines = strings.Split(out, "\n")
|
||||||
|
|
||||||
c.Assert(lines, checker.HasLen, testLen+1)
|
c.Assert(lines, checker.HasLen, testLen+1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ func TailFile(f io.ReadSeeker, n int) ([][]byte, error) {
|
||||||
break
|
break
|
||||||
} else {
|
} else {
|
||||||
b = make([]byte, blockSize)
|
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
|
return nil, err
|
||||||
}
|
}
|
||||||
if _, err := f.Read(b); err != nil {
|
if _, err := f.Read(b); err != nil {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче