github.com/yp-engineering/docker@v1.8.1/integration-cli/requirements_unix.go (about)

     1  // +build !windows
     2  
     3  package main
     4  
     5  import (
     6  	"io/ioutil"
     7  	"path"
     8  
     9  	"github.com/opencontainers/runc/libcontainer/cgroups"
    10  )
    11  
    12  var (
    13  	cpuCfsPeriod = testRequirement{
    14  		func() bool {
    15  			cgroupCPUMountpoint, err := cgroups.FindCgroupMountpoint("cpu")
    16  			if err != nil {
    17  				return false
    18  			}
    19  			if _, err := ioutil.ReadFile(path.Join(cgroupCPUMountpoint, "cpu.cfs_period_us")); err != nil {
    20  				return false
    21  			}
    22  			return true
    23  		},
    24  		"Test requires an environment that supports cgroup cfs period.",
    25  	}
    26  	cpuCfsQuota = testRequirement{
    27  		func() bool {
    28  			cgroupCPUMountpoint, err := cgroups.FindCgroupMountpoint("cpu")
    29  			if err != nil {
    30  				return false
    31  			}
    32  			if _, err := ioutil.ReadFile(path.Join(cgroupCPUMountpoint, "cpu.cfs_quota_us")); err != nil {
    33  				return false
    34  			}
    35  			return true
    36  		},
    37  		"Test requires an environment that supports cgroup cfs quota.",
    38  	}
    39  	oomControl = testRequirement{
    40  		func() bool {
    41  			cgroupMemoryMountpoint, err := cgroups.FindCgroupMountpoint("memory")
    42  			if err != nil {
    43  				return false
    44  			}
    45  			if _, err := ioutil.ReadFile(path.Join(cgroupMemoryMountpoint, "memory.memsw.limit_in_bytes")); err != nil {
    46  				return false
    47  			}
    48  
    49  			if _, err = ioutil.ReadFile(path.Join(cgroupMemoryMountpoint, "memory.oom_control")); err != nil {
    50  				return false
    51  			}
    52  			return true
    53  
    54  		},
    55  		"Test requires Oom control enabled.",
    56  	}
    57  )