docker_cli_oom_killed_test.go 1006 B

1234567891011121314151617181920212223242526272829303132
  1. // +build !windows
  2. package main
  3. import (
  4. "github.com/docker/docker/pkg/integration/checker"
  5. "github.com/go-check/check"
  6. )
  7. func (s *DockerSuite) TestInspectOomKilledTrue(c *check.C) {
  8. testRequires(c, DaemonIsLinux, memoryLimitSupport)
  9. name := "testoomkilled"
  10. _, exitCode, _ := dockerCmdWithError("run", "--name", name, "--memory", "32MB", "busybox", "sh", "-c", "x=a; while true; do x=$x$x$x$x; done")
  11. c.Assert(exitCode, checker.Equals, 137, check.Commentf("OOM exit should be 137"))
  12. oomKilled, err := inspectField(name, "State.OOMKilled")
  13. c.Assert(oomKilled, checker.Equals, "true")
  14. c.Assert(err, checker.IsNil)
  15. }
  16. func (s *DockerSuite) TestInspectOomKilledFalse(c *check.C) {
  17. testRequires(c, DaemonIsLinux, memoryLimitSupport)
  18. name := "testoomkilled"
  19. dockerCmd(c, "run", "--name", name, "--memory", "32MB", "busybox", "sh", "-c", "echo hello world")
  20. oomKilled, err := inspectField(name, "State.OOMKilled")
  21. c.Assert(oomKilled, checker.Equals, "false")
  22. c.Assert(err, checker.IsNil)
  23. }