Merge pull request #9302 from giuseppe/cgroup-split-v1

utils: takes the longest path on cgroup v1
This commit is contained in:
OpenShift Merge Robot
2021-02-11 17:46:37 -05:00
committed by GitHub
3 changed files with 49 additions and 10 deletions

View File

@ -619,6 +619,13 @@ func SkipIfNotRootless(reason string) {
}
}
func SkipIfNotSystemd(manager, reason string) {
checkReason(reason)
if manager != "systemd" {
ginkgo.Skip("[notSystemd]: " + reason)
}
}
func SkipIfNotFedora() {
info := GetHostDistributionInfo()
if info.Distribution != "fedora" {

View File

@ -1191,6 +1191,37 @@ USER mail`
Expect(found).To(BeTrue())
})
It("podman run with cgroups=split", func() {
SkipIfNotSystemd(podmanTest.CgroupManager, "do not test --cgroups=split if not running on systemd")
SkipIfRootlessCgroupsV1("Disable cgroups not supported on cgroupv1 for rootless users")
SkipIfRemote("--cgroups=split cannot be used in remote mode")
container := podmanTest.Podman([]string{"run", "--rm", "--cgroups=split", ALPINE, "cat", "/proc/self/cgroup"})
container.WaitWithDefaultTimeout()
Expect(container.ExitCode()).To(Equal(0))
lines := container.OutputToStringArray()
cgroup := ""
for _, line := range lines {
parts := strings.SplitN(line, ":", 3)
if !CGROUPSV2 {
// ignore unified on cgroup v1
// both runc and crun do not set it.
if parts[1] == "" {
continue
}
}
if parts[2] == "/" {
continue
}
if cgroup == "" {
cgroup = parts[2]
continue
}
Expect(cgroup).To(Equal(parts[2]))
}
})
It("podman run with cgroups=disabled runs without cgroups", func() {
SkipIfRootless("FIXME: I believe this should work but need to fix this test")
SkipIfRootlessCgroupsV1("Disable cgroups not supported on cgroupv1 for rootless users")