github.com/opencontainers/runtime-tools@v0.9.0/validation/util/linux_resources_memory.go (about) 1 package util 2 3 import ( 4 "github.com/mndrix/tap-go" 5 rspec "github.com/opencontainers/runtime-spec/specs-go" 6 "github.com/opencontainers/runtime-tools/cgroups" 7 ) 8 9 // ValidateLinuxResourcesMemory validates linux.resources.memory. 10 func ValidateLinuxResourcesMemory(config *rspec.Spec, t *tap.T, state *rspec.State) error { 11 cg, err := cgroups.FindCgroup() 12 t.Ok((err == nil), "find memory cgroup") 13 if err != nil { 14 t.Diagnostic(err.Error()) 15 return nil 16 } 17 18 lm, err := cg.GetMemoryData(state.Pid, config.Linux.CgroupsPath) 19 t.Ok((err == nil), "get memory cgroup data") 20 if err != nil { 21 t.Diagnostic(err.Error()) 22 return nil 23 } 24 25 t.Ok(*lm.Limit == *config.Linux.Resources.Memory.Limit, "memory limit is set correctly") 26 t.Diagnosticf("expect: %d, actual: %d", *config.Linux.Resources.Memory.Limit, *lm.Limit) 27 28 t.Ok(*lm.Reservation == *config.Linux.Resources.Memory.Reservation, "memory reservation is set correctly") 29 t.Diagnosticf("expect: %d, actual: %d", *config.Linux.Resources.Memory.Reservation, *lm.Reservation) 30 31 t.Ok(*lm.Swap == *config.Linux.Resources.Memory.Swap, "memory swap is set correctly") 32 t.Diagnosticf("expect: %d, actual: %d", *config.Linux.Resources.Memory.Swap, *lm.Reservation) 33 34 t.Ok(*lm.Kernel == *config.Linux.Resources.Memory.Kernel, "memory kernel is set correctly") 35 t.Diagnosticf("expect: %d, actual: %d", *config.Linux.Resources.Memory.Kernel, *lm.Kernel) 36 37 t.Ok(*lm.KernelTCP == *config.Linux.Resources.Memory.KernelTCP, "memory kernelTCP is set correctly") 38 t.Diagnosticf("expect: %d, actual: %d", *config.Linux.Resources.Memory.KernelTCP, *lm.Kernel) 39 40 t.Ok(*lm.Swappiness == *config.Linux.Resources.Memory.Swappiness, "memory swappiness is set correctly") 41 t.Diagnosticf("expect: %d, actual: %d", *config.Linux.Resources.Memory.Swappiness, *lm.Swappiness) 42 43 t.Ok(*lm.DisableOOMKiller == *config.Linux.Resources.Memory.DisableOOMKiller, "memory oom is set correctly") 44 t.Diagnosticf("expect: %t, actual: %t", *config.Linux.Resources.Memory.DisableOOMKiller, *lm.DisableOOMKiller) 45 46 return nil 47 }