github.com/nf/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 )