From afe4d17be83ccdd1292f3a63bc4d71fb0e5430b6 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Tue, 14 Sep 2021 09:57:37 +0200 Subject: tests: simplify --cgroups=disabled test read the cgroup directly from the container. Signed-off-by: Giuseppe Scrivano --- test/e2e/run_test.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/test/e2e/run_test.go b/test/e2e/run_test.go index 846da283d..cf1ce699e 100644 --- a/test/e2e/run_test.go +++ b/test/e2e/run_test.go @@ -1330,28 +1330,23 @@ USER mail`, BB) Skip("Test only works on crun") } + trim := func(i string) string { + return strings.TrimSuffix(i, "\n") + } + curCgroupsBytes, err := ioutil.ReadFile("/proc/self/cgroup") Expect(err).ShouldNot(HaveOccurred()) - var curCgroups = string(curCgroupsBytes) + curCgroups := trim(string(curCgroupsBytes)) fmt.Printf("Output:\n%s\n", curCgroups) Expect(curCgroups).ToNot(Equal("")) - ctrName := "testctr" - container := podmanTest.Podman([]string{"run", "--name", ctrName, "-d", "--cgroups=disabled", ALPINE, "top"}) + container := podmanTest.Podman([]string{"run", "--cgroupns=host", "--cgroups=disabled", ALPINE, "cat", "/proc/self/cgroup"}) container.WaitWithDefaultTimeout() Expect(container).Should(Exit(0)) - // Get PID and get cgroups of that PID - inspectOut := podmanTest.InspectContainer(ctrName) - Expect(len(inspectOut)).To(Equal(1)) - pid := inspectOut[0].State.Pid - Expect(pid).ToNot(Equal(0)) - Expect(inspectOut[0].HostConfig.CgroupParent).To(Equal("")) - - ctrCgroupsBytes, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/cgroup", pid)) - Expect(err).ShouldNot(HaveOccurred()) - var ctrCgroups = string(ctrCgroupsBytes) + ctrCgroups := trim(container.OutputToString()) fmt.Printf("Output\n:%s\n", ctrCgroups) + Expect(ctrCgroups).To(Equal(curCgroups)) }) -- cgit v1.2.3-54-g00ecf From 65f3b16c67d96aaf3d27da6df5c538057a9bb224 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Tue, 14 Sep 2021 10:22:49 +0200 Subject: tests: enable --cgroups=disabled test for rootless Signed-off-by: Giuseppe Scrivano --- test/e2e/run_test.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/e2e/run_test.go b/test/e2e/run_test.go index cf1ce699e..cb61aba21 100644 --- a/test/e2e/run_test.go +++ b/test/e2e/run_test.go @@ -11,6 +11,7 @@ import ( "syscall" "time" + "github.com/containers/podman/v3/pkg/cgroups" . "github.com/containers/podman/v3/test/utils" "github.com/containers/storage/pkg/stringid" "github.com/mrunalp/fileutils" @@ -1323,13 +1324,19 @@ USER mail`, BB) }) 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") // Only works on crun if !strings.Contains(podmanTest.OCIRuntime, "crun") { Skip("Test only works on crun") } + ownsCgroup, err := cgroups.UserOwnsCurrentSystemdCgroup() + Expect(err).ShouldNot(HaveOccurred()) + if !ownsCgroup { + // Podman moves itself to a new cgroup if it doesn't own the current cgroup + Skip("Test only works when Podman owns the current cgroup") + } + trim := func(i string) string { return strings.TrimSuffix(i, "\n") } -- cgit v1.2.3-54-g00ecf