requirements_unix.go 1.3 KB

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