瀏覽代碼

Merge pull request #13866 from brahmaroutu/runOOM_13766

RunOOM test should check to see if Oom Control is enabled
Michael Crosby 10 年之前
父節點
當前提交
a5283d2ff3
共有 2 個文件被更改,包括 21 次插入0 次删除
  1. 1 0
      integration-cli/docker_cli_run_test.go
  2. 20 0
      integration-cli/requirements.go

+ 1 - 0
integration-cli/docker_cli_run_test.go

@@ -2883,6 +2883,7 @@ func (s *DockerSuite) TestRunAllowPortRangeThroughPublish(c *check.C) {
 }
 
 func (s *DockerSuite) TestRunOOMExitCode(c *check.C) {
+	testRequires(c, OomControl)
 	errChan := make(chan error)
 	go func() {
 		defer close(errChan)

+ 20 - 0
integration-cli/requirements.go

@@ -7,9 +7,11 @@ import (
 	"log"
 	"net/http"
 	"os/exec"
+	"path"
 	"strings"
 	"time"
 
+	"github.com/docker/libcontainer/cgroups"
 	"github.com/go-check/check"
 )
 
@@ -119,6 +121,24 @@ var (
 		},
 		"Test requires support for IPv6",
 	}
+	OomControl = TestRequirement{
+		func() bool {
+			cgroupMemoryMountpoint, err := cgroups.FindCgroupMountpoint("memory")
+			if err != nil {
+				return false
+			}
+			if _, err := ioutil.ReadFile(path.Join(cgroupMemoryMountpoint, "memory.memsw.limit_in_bytes")); err != nil {
+				return false
+			}
+
+			if _, err = ioutil.ReadFile(path.Join(cgroupMemoryMountpoint, "memory.oom_control")); err != nil {
+				return false
+			}
+			return true
+
+		},
+		"Test requires Oom control enabled.",
+	}
 )
 
 // testRequires checks if the environment satisfies the requirements