Make all Skips specify a reason

Always use CGROUPV2 rather then reading from system all the time.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh
2020-09-28 09:17:27 -04:00
parent 453333a35c
commit b496802413
33 changed files with 126 additions and 154 deletions

View File

@ -27,7 +27,7 @@ var _ = Describe("Podman checkpoint", func() {
)
BeforeEach(func() {
SkipIfRootless() //checkpoint not supported in rootless mode
SkipIfRootless("checkpoint not supported in rootless mode")
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)

View File

@ -599,6 +599,24 @@ func (p *PodmanTestIntegration) CreateSeccompJson(in []byte) (string, error) {
return jsonFile, nil
}
func SkipIfRootlessCgroupsV1(reason string) {
if len(reason) < 5 {
panic("SkipIfRootlessCgroupsV1 must specify a reason to skip")
}
if os.Geteuid() != 0 && !CGROUPSV2 {
Skip("[rootless]: " + reason)
}
}
func SkipIfRootless(reason string) {
if len(reason) < 5 {
panic("SkipIfRootless must specify a reason to skip")
}
if os.Geteuid() != 0 {
ginkgo.Skip("[rootless]: " + reason)
}
}
func SkipIfNotFedora() {
info := GetHostDistributionInfo()
if info.Distribution != "fedora" {
@ -610,21 +628,21 @@ func isRootless() bool {
return os.Geteuid() != 0
}
func SkipIfCgroupV1() {
cgroupsv2, err := cgroups.IsCgroup2UnifiedMode()
Expect(err).To(BeNil())
if !cgroupsv2 {
Skip("Skip on systems with cgroup V1 systems")
func SkipIfCgroupV1(reason string) {
if len(reason) < 5 {
panic("SkipIfCgroupV1 must specify a reason to skip")
}
if !CGROUPSV2 {
Skip(reason)
}
}
func SkipIfCgroupV2() {
cgroupsv2, err := cgroups.IsCgroup2UnifiedMode()
Expect(err).To(BeNil())
if cgroupsv2 {
Skip("Skip on systems with cgroup V2 systems")
func SkipIfCgroupV2(reason string) {
if len(reason) < 5 {
panic("SkipIfCgroupV2 must specify a reason to skip")
}
if CGROUPSV2 {
Skip(reason)
}
}

View File

@ -23,8 +23,4 @@ var (
// This image has a bogus/invalid seccomp profile which should
// yield a json error when being read.
alpineBogusSeccomp = "docker.io/libpod/alpine-with-bogus-seccomp:label"
// v2fail is a temporary variable to help us track
// tests that fail in v2
v2fail = "does not pass integration tests with v2 podman"
)

View File

@ -41,7 +41,7 @@ var _ = Describe("Podman run", func() {
})
It("podman run limits test", func() {
SkipIfRootlessCgroupsV1()
SkipIfRootlessCgroupsV1("Setting limits not supported on cgroupv1 for rootless users")
//containers.conf is set to "nofile=500:500"
session := podmanTest.Podman([]string{"run", "--rm", fedoraMinimal, "ulimit", "-n"})
session.WaitWithDefaultTimeout()

View File

@ -49,7 +49,7 @@ var _ = Describe("Podman create with --ip flag", func() {
})
It("Podman create --ip with non-allocatable IP", func() {
SkipIfRootless() // --ip is not supported in rootless mode
SkipIfRootless("--ip is not supported in rootless mode")
result := podmanTest.Podman([]string{"create", "--name", "test", "--ip", "203.0.113.124", ALPINE, "ls"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
@ -81,7 +81,7 @@ var _ = Describe("Podman create with --ip flag", func() {
})
It("Podman create two containers with the same IP", func() {
SkipIfRootless() // --ip not supported in rootless mode
SkipIfRootless("--ip not supported in rootless mode")
ip := GetRandomIPAddress()
result := podmanTest.Podman([]string{"create", "--name", "test1", "--ip", ip, ALPINE, "sleep", "999"})
result.WaitWithDefaultTimeout()

View File

@ -552,7 +552,7 @@ var _ = Describe("Podman create", func() {
})
It("create container in pod with IP should fail", func() {
SkipIfRootless() //Setting IP not supported in rootless mode
SkipIfRootless("Setting IP not supported in rootless mode")
name := "createwithstaticip"
pod := podmanTest.RunTopContainerInPod("", "new:"+name)
pod.WaitWithDefaultTimeout()
@ -564,7 +564,7 @@ var _ = Describe("Podman create", func() {
})
It("create container in pod with mac should fail", func() {
SkipIfRootless() //Setting MAC Address not supported in rootless mode
SkipIfRootless("Setting MAC Address not supported in rootless mode")
name := "createwithstaticmac"
pod := podmanTest.RunTopContainerInPod("", "new:"+name)
pod.WaitWithDefaultTimeout()

View File

@ -24,16 +24,10 @@ func IsRemote() bool {
}
func SkipIfRemote(reason string) {
ginkgo.Skip("[remote]: " + reason)
}
func SkipIfRootlessCgroupsV1() {
}
func SkipIfRootless() {
if os.Geteuid() != 0 {
ginkgo.Skip("This function is not enabled for rootless podman")
if len(reason) < 5 {
panic("SkipIfRemote must specify a reason to skip")
}
ginkgo.Skip("[remote]: " + reason)
}
// Podman is the exec call to podman on the filesystem

View File

@ -8,8 +8,6 @@ import (
"os"
"path/filepath"
"strings"
. "github.com/onsi/ginkgo"
)
func IsRemote() bool {
@ -19,18 +17,6 @@ func IsRemote() bool {
func SkipIfRemote(string) {
}
func SkipIfRootlessCgroupsV1() {
if os.Geteuid() != 0 && !CGROUPSV2 {
Skip("Rooless requires cgroupsV2 to set limits")
}
}
func SkipIfRootless() {
if os.Geteuid() != 0 {
Skip("This function is not enabled for rootless podman")
}
}
// Podman is the exec call to podman on the filesystem
func (p *PodmanTestIntegration) Podman(args []string) *PodmanSessionIntegration {
podmanSession := p.PodmanBase(args, false, false)

View File

@ -23,19 +23,10 @@ func IsRemote() bool {
return true
}
func SkipIfRootlessCgroupsV1() {
}
func SkipIfRemote(reason string) {
ginkgo.Skip("[remote]: " + reason)
}
func SkipIfRootless() {
if os.Geteuid() != 0 {
ginkgo.Skip("This function is not enabled for rootless podman")
}
}
// Podman is the exec call to podman on the filesystem
func (p *PodmanTestIntegration) Podman(args []string) *PodmanSessionIntegration {
podmanSession := p.PodmanBase(args, false, false)

View File

@ -47,7 +47,7 @@ var _ = Describe("Podman login and logout", func() {
se := SystemExec("setenforce", []string{"0"})
se.WaitWithDefaultTimeout()
if se.ExitCode() != 0 {
Skip("Can not disable selinux, this may cause problem for reading cert files inside container.")
Skip("Cannot disable selinux, this may cause problem for reading cert files inside container.")
}
defer SystemExec("setenforce", []string{"1"})
}
@ -87,7 +87,7 @@ var _ = Describe("Podman login and logout", func() {
Expect(session.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
})
@ -116,8 +116,6 @@ var _ = Describe("Podman login and logout", func() {
})
It("podman login and logout without registry parameter", func() {
SkipIfRootless()
registriesConf, err := ioutil.TempFile("", "TestLoginWithoutParameter")
Expect(err).To(BeNil())
defer registriesConf.Close()
@ -231,7 +229,7 @@ var _ = Describe("Podman login and logout", func() {
Expect(session.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry1", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
session = podmanTest.Podman([]string{"login", "--username", "podmantest", "--password", "test", server})

View File

@ -18,7 +18,7 @@ var _ = Describe("Podman mount", func() {
)
BeforeEach(func() {
SkipIfRootless()
SkipIfRootless("Podman mount requires podman unshare first to work")
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
@ -189,7 +189,7 @@ var _ = Describe("Podman mount", func() {
})
It("podman list running container", func() {
SkipIfRootless() // FIXME: We need to do a podman unshare before executing this code.
SkipIfRootless("FIXME: We need to do a podman unshare before executing this code.")
setup := podmanTest.Podman([]string{"run", "-dt", ALPINE, "top"})
setup.WaitWithDefaultTimeout()
@ -212,7 +212,7 @@ var _ = Describe("Podman mount", func() {
})
It("podman list multiple mounted containers", func() {
SkipIfRootless() // FIXME: We need to do a podman unshare before executing this code.
SkipIfRootless("FIXME: We need to do a podman unshare before executing this code.")
setup := podmanTest.Podman([]string{"create", ALPINE, "ls"})
setup.WaitWithDefaultTimeout()
@ -257,7 +257,7 @@ var _ = Describe("Podman mount", func() {
})
It("podman list mounted container", func() {
SkipIfRootless() // FIXME: We need to do a podman unshare before executing this code.
SkipIfRootless("FIXME: We need to do a podman unshare before executing this code.")
setup := podmanTest.Podman([]string{"create", ALPINE, "ls"})
setup.WaitWithDefaultTimeout()

View File

@ -178,7 +178,7 @@ var _ = Describe("Podman network create", func() {
})
It("podman network create with name and IPv6 subnet", func() {
SkipIfRootless() // FIXME I believe this should work in rootlessmode
SkipIfRootless("FIXME I believe this should work in rootlessmode")
var (
results []network.NcList

View File

@ -135,7 +135,7 @@ var _ = Describe("Podman network", func() {
})
It("podman network rm", func() {
SkipIfRootless() // FIXME: This one is definitely broken in rootless mode
SkipIfRootless("FIXME: This one is definitely broken in rootless mode")
// Setup, use uuid to prevent conflict with other tests
uuid := stringid.GenerateNonCryptoID()
secondPath := filepath.Join(podmanTest.CNIConfigDir, fmt.Sprintf("%s.conflist", uuid))

View File

@ -7,7 +7,6 @@ import (
"path/filepath"
"strings"
"github.com/containers/podman/v2/pkg/cgroups"
. "github.com/containers/podman/v2/test/utils"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
@ -24,16 +23,13 @@ var _ = Describe("Podman pause", func() {
createdState := "created"
BeforeEach(func() {
SkipIfRootlessCgroupsV1() // Pause is not supported in cgroups v1
SkipIfRootlessCgroupsV1("Pause is not supported in cgroups v1")
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
}
cgroupsv2, err := cgroups.IsCgroup2UnifiedMode()
Expect(err).To(BeNil())
if cgroupsv2 {
if CGROUPSV2 {
b, err := ioutil.ReadFile("/proc/self/cgroup")
if err != nil {
Skip("cannot read self cgroup")

View File

@ -18,7 +18,7 @@ var _ = Describe("Podman pod pause", func() {
pausedState := "paused"
BeforeEach(func() {
SkipIfRootlessCgroupsV1() // Pause is not supported in cgroups v1
SkipIfRootlessCgroupsV1("Pause is not supported in cgroups v1")
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)

View File

@ -17,7 +17,7 @@ var _ = Describe("Podman pod stats", func() {
BeforeEach(func() {
if os.Geteuid() != 0 {
SkipIfCgroupV2()
SkipIfCgroupV2("--cgroup-manager=cgroupfs which doesn't work in rootless mode")
}
tempdir, err = CreateTempDirInTempDir()
@ -175,7 +175,7 @@ var _ = Describe("Podman pod stats", func() {
It("podman stats on net=host post", func() {
// --net=host not supported for rootless pods at present
SkipIfRootlessCgroupsV1() // Pause stats not supported in cgroups v1
SkipIfRootlessCgroupsV1("Pause stats not supported in cgroups v1")
podName := "testPod"
podCreate := podmanTest.Podman([]string{"pod", "create", "--net=host", "--name", podName})
podCreate.WaitWithDefaultTimeout()

View File

@ -206,7 +206,7 @@ var _ = Describe("Podman ps", func() {
})
It("podman ps namespace flag with go template format", func() {
Skip(v2fail)
Skip("FIXME: table still not supported in podman ps command")
_, ec, _ := podmanTest.RunLsContainer("test1")
Expect(ec).To(Equal(0))

View File

@ -70,7 +70,7 @@ var _ = Describe("Podman push", func() {
Expect(session.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
push := podmanTest.PodmanNoCache([]string{"push", "--tls-verify=false", "--remove-signatures", ALPINE, "localhost:5000/my-alpine"})
@ -87,7 +87,7 @@ var _ = Describe("Podman push", func() {
})
It("podman push to local registry with authorization", func() {
SkipIfRootless() // FIXME: Creating content in certs.d we use directories in homedir
SkipIfRootless("FIXME: Creating content in certs.d we use directories in homedir")
if podmanTest.Host.Arch == "ppc64le" {
Skip("No registry image for ppc64le")
}
@ -132,7 +132,7 @@ var _ = Describe("Podman push", func() {
Expect(session.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
session = podmanTest.PodmanNoCache([]string{"logs", "registry"})

View File

@ -18,7 +18,7 @@ var _ = Describe("Podman run with --cgroup-parent", func() {
)
BeforeEach(func() {
SkipIfRootlessCgroupsV1() // cgroup parent is not supported in cgroups v1
SkipIfRootlessCgroupsV1("cgroup parent is not supported in cgroups v1")
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
@ -48,7 +48,7 @@ var _ = Describe("Podman run with --cgroup-parent", func() {
})
Specify("no --cgroup-parent", func() {
SkipIfRootless() // FIXME This seems to be broken in rootless mode
SkipIfRootless("FIXME This seems to be broken in rootless mode")
cgroup := "/libpod_parent"
if !Containerized() && podmanTest.CgroupManager != "cgroupfs" {
cgroup = "/machine.slice"

View File

@ -34,7 +34,7 @@ var _ = Describe("Podman run exit", func() {
It("podman run -d mount cleanup test", func() {
SkipIfRemote("podman-remote does not support mount")
SkipIfRootless() // FIXME podman mount requires podman unshare first
SkipIfRootless("FIXME podman mount requires podman unshare first")
result := podmanTest.Podman([]string{"run", "-dt", ALPINE, "top"})
result.WaitWithDefaultTimeout()

View File

@ -4,7 +4,6 @@ import (
"io/ioutil"
"os"
"github.com/containers/podman/v2/pkg/cgroups"
. "github.com/containers/podman/v2/test/utils"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
@ -18,17 +17,14 @@ var _ = Describe("Podman run cpu", func() {
)
BeforeEach(func() {
SkipIfRootlessCgroupsV1()
SkipIfRootlessCgroupsV1("Setting CPU not supported on cgroupv1 for rootless users")
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
}
cgroupsv2, err := cgroups.IsCgroup2UnifiedMode()
Expect(err).To(BeNil())
if cgroupsv2 {
if CGROUPSV2 {
if err := ioutil.WriteFile("/sys/fs/cgroup/cgroup.subtree_control", []byte("+cpuset"), 0644); err != nil {
Skip("cpuset controller not available on the current kernel")
}

View File

@ -72,7 +72,7 @@ var _ = Describe("Podman run device", func() {
})
It("podman run device host device and container device parameter are directories", func() {
SkipIfRootless() // Can not create devices in /dev in rootless mode
SkipIfRootless("Cannot create devices in /dev in rootless mode")
Expect(os.MkdirAll("/dev/foodevdir", os.ModePerm)).To(BeNil())
defer os.RemoveAll("/dev/foodevdir")

View File

@ -3,7 +3,6 @@ package integration
import (
"os"
"github.com/containers/podman/v2/pkg/cgroups"
. "github.com/containers/podman/v2/test/utils"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
@ -17,9 +16,9 @@ var _ = Describe("Podman run memory", func() {
)
BeforeEach(func() {
SkipIfRootlessCgroupsV1()
SkipIfRootlessCgroupsV1("Setting Memory not supported on cgroupv1 for rootless users")
SkipIfRootless()
SkipIfRootless("FIXME: This should work on cgroups V2 systems")
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
@ -37,12 +36,9 @@ var _ = Describe("Podman run memory", func() {
})
It("podman run memory test", func() {
cgroupsv2, err := cgroups.IsCgroup2UnifiedMode()
Expect(err).To(BeNil())
var session *PodmanSessionIntegration
if cgroupsv2 {
if CGROUPSV2 {
session = podmanTest.Podman([]string{"run", "--memory=40m", ALPINE, "sh", "-c", "cat /sys/fs/cgroup/$(sed -e 's|0::||' < /proc/self/cgroup)/memory.max"})
} else {
session = podmanTest.Podman([]string{"run", "--memory=40m", ALPINE, "cat", "/sys/fs/cgroup/memory/memory.limit_in_bytes"})
@ -57,28 +53,21 @@ var _ = Describe("Podman run memory", func() {
Skip("Unable to perform test on Ubuntu distributions due to memory management")
}
cgroupsv2, err := cgroups.IsCgroup2UnifiedMode()
Expect(err).To(BeNil())
var session *PodmanSessionIntegration
if cgroupsv2 {
session = podmanTest.Podman([]string{"run", "--memory-reservation=40m", ALPINE, "sh", "-c", "cat /sys/fs/cgroup/$(sed -e 's|0::||' < /proc/self/cgroup)/memory.high"})
if CGROUPSV2 {
session = podmanTest.Podman([]string{"run", "--memory-reservation=40m", ALPINE, "sh", "-c", "cat /sys/fs/cgroup/$(sed -e 's|0::||' < /proc/self/cgroup)/memory.low"})
} else {
session = podmanTest.Podman([]string{"run", "--memory-reservation=40m", ALPINE, "cat", "/sys/fs/cgroup/memory/memory.soft_limit_in_bytes"})
}
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
if cgroupsv2 {
Expect(session.OutputToString()).To(Equal("max"))
} else {
Expect(session.OutputToString()).To(Equal("41943040"))
}
Expect(session.OutputToString()).To(Equal("41943040"))
})
It("podman run memory-swappiness test", func() {
SkipIfCgroupV2()
SkipIfCgroupV2("memory-swappiness not supported on cgroupV2")
session := podmanTest.Podman([]string{"run", "--memory-swappiness=15", ALPINE, "cat", "/sys/fs/cgroup/memory/memory.swappiness"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@ -86,8 +75,18 @@ var _ = Describe("Podman run memory", func() {
})
It("podman run kernel-memory test", func() {
SkipIfCgroupV2()
session := podmanTest.Podman([]string{"run", "--kernel-memory=40m", ALPINE, "cat", "/sys/fs/cgroup/memory/memory.kmem.limit_in_bytes"})
if podmanTest.Host.Distribution == "ubuntu" {
Skip("Unable to perform test on Ubuntu distributions due to memory management")
}
var session *PodmanSessionIntegration
if CGROUPSV2 {
session = podmanTest.Podman([]string{"run", "--memory-reservation=40m", ALPINE, "sh", "-c", "cat /sys/fs/cgroup/$(sed -e 's|0::||' < /proc/self/cgroup)/memory.low"})
} else {
session = podmanTest.Podman([]string{"run", "--memory-reservation=40m", ALPINE, "cat", "/sys/fs/cgroup/memory/memory.soft_limit_in_bytes"})
}
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
Expect(session.OutputToString()).To(Equal("41943040"))

View File

@ -55,7 +55,7 @@ var _ = Describe("Podman run networking", func() {
})
It("podman run network expose port 222", func() {
SkipIfRootless() // iptables is not supported for rootless users
SkipIfRootless("iptables is not supported for rootless users")
session := podmanTest.Podman([]string{"run", "-dt", "--expose", "222-223", "-P", ALPINE, "/bin/sh"})
session.Wait(30)
Expect(session.ExitCode()).To(Equal(0))
@ -252,7 +252,7 @@ var _ = Describe("Podman run networking", func() {
})
It("podman run network expose host port 80 to container port 8000", func() {
SkipIfRootless() // iptables is not supported for rootless users
SkipIfRootless("iptables is not supported for rootless users")
session := podmanTest.Podman([]string{"run", "-dt", "-p", "80:8000", ALPINE, "/bin/sh"})
session.Wait(30)
Expect(session.ExitCode()).To(Equal(0))
@ -367,7 +367,7 @@ var _ = Describe("Podman run networking", func() {
})
It("podman run network expose duplicate host port results in error", func() {
SkipIfRootless() // FIXME we should be able to run this test in rootless mode with different ports
SkipIfRootless("FIXME we should be able to run this test in rootless mode with different ports")
session := podmanTest.Podman([]string{"run", "--name", "test", "-dt", "-p", "80", ALPINE, "/bin/sh"})
session.WaitWithDefaultTimeout()
@ -478,9 +478,9 @@ var _ = Describe("Podman run networking", func() {
})
It("podman run network in user created network namespace", func() {
SkipIfRootless() // ip netns is not supported for rootless users
SkipIfRootless("ip netns is not supported for rootless users")
if Containerized() {
Skip("Can not be run within a container.")
Skip("Cannot be run within a container.")
}
addXXX := SystemExec("ip", []string{"netns", "add", "xxx"})
Expect(addXXX.ExitCode()).To(Equal(0))
@ -495,9 +495,9 @@ var _ = Describe("Podman run networking", func() {
})
It("podman run n user created network namespace with resolv.conf", func() {
SkipIfRootless() // ip netns is not supported for rootless users
SkipIfRootless("ip netns is not supported for rootless users")
if Containerized() {
Skip("Can not be run within a container.")
Skip("Cannot be run within a container.")
}
addXXX2 := SystemExec("ip", []string{"netns", "add", "xxx2"})
Expect(addXXX2.ExitCode()).To(Equal(0))
@ -527,7 +527,7 @@ var _ = Describe("Podman run networking", func() {
})
It("podman run in custom CNI network with --static-ip", func() {
SkipIfRootless() //Rootless mode does not support --ip
SkipIfRootless("Rootless mode does not support --ip")
netName := "podmantestnetwork"
ipAddr := "10.25.30.128"
create := podmanTest.Podman([]string{"network", "create", "--subnet", "10.25.30.0/24", netName})
@ -542,7 +542,7 @@ var _ = Describe("Podman run networking", func() {
})
It("podman run with new:pod and static-ip", func() {
SkipIfRootless() // Rootless does not support --ip
SkipIfRootless("Rootless does not support --ip")
netName := "podmantestnetwork2"
ipAddr := "10.25.40.128"
podname := "testpod"

View File

@ -106,7 +106,7 @@ var _ = Describe("Podman privileged container tests", func() {
})
It("podman privileged should inherit host devices", func() {
SkipIfRootless() // FIXME: This seems to be broken for rootless mode, /dev/ is close to the same
SkipIfRootless("FIXME: This seems to be broken for rootless mode, /dev/ is close to the same")
session := podmanTest.Podman([]string{"run", "--privileged", ALPINE, "ls", "-l", "/dev"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))

View File

@ -19,7 +19,7 @@ var _ = Describe("Podman run with --ip flag", func() {
)
BeforeEach(func() {
SkipIfRootless() //rootless does not support --ip
SkipIfRootless("rootless does not support --ip")
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)

View File

@ -309,7 +309,7 @@ USER bin`
})
It("podman run limits test", func() {
SkipIfRootlessCgroupsV1()
SkipIfRootlessCgroupsV1("Setting limits not supported on cgroupv1 for rootless users")
if !isRootless() {
session := podmanTest.Podman([]string{"run", "--rm", "--ulimit", "rtprio=99", "--cap-add=sys_nice", fedoraMinimal, "cat", "/proc/self/sched"})
@ -368,7 +368,7 @@ USER bin`
})
It("podman run sysctl test", func() {
SkipIfRootless() // Network sysclts are not avalable root rootless
SkipIfRootless("Network sysctls are not avalable root rootless")
session := podmanTest.Podman([]string{"run", "--rm", "--sysctl", "net.core.somaxconn=65535", ALPINE, "sysctl", "net.core.somaxconn"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@ -381,8 +381,8 @@ USER bin`
})
It("podman run blkio-weight test", func() {
SkipIfRootless() // FIXME: This is blowing up because of no /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control file
// SkipIfRootlessCgroupsV1()
SkipIfRootless("FIXME: This is blowing up because of no /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control file")
SkipIfRootlessCgroupsV1("Setting blkio-weight not supported on cgroupv1 for rootless users")
if !CGROUPSV2 {
if _, err := os.Stat("/sys/fs/cgroup/blkio/blkio.weight"); os.IsNotExist(err) {
Skip("Kernel does not support blkio.weight")
@ -404,8 +404,9 @@ USER bin`
})
It("podman run device-read-bps test", func() {
SkipIfRootless() // FIXME: Missing /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control
SkipIfRootlessCgroupsV1()
SkipIfRootless("FIXME: Missing /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control")
SkipIfRootlessCgroupsV1("Setting device-read-bps not supported on cgroupv1 for rootless users")
var session *PodmanSessionIntegration
if CGROUPSV2 {
@ -422,8 +423,9 @@ USER bin`
})
It("podman run device-write-bps test", func() {
SkipIfRootless() // FIXME /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control does not exist
SkipIfRootlessCgroupsV1()
SkipIfRootless("FIXME /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control does not exist")
SkipIfRootlessCgroupsV1("Setting device-write-bps not supported on cgroupv1 for rootless users")
var session *PodmanSessionIntegration
if CGROUPSV2 {
@ -439,8 +441,8 @@ USER bin`
})
It("podman run device-read-iops test", func() {
SkipIfRootless() // FIXME /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control does not exist
SkipIfRootlessCgroupsV1()
SkipIfRootless("FIXME /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control does not exist")
SkipIfRootlessCgroupsV1("Setting device-read-iops not supported on cgroupv1 for rootless users")
var session *PodmanSessionIntegration
if CGROUPSV2 {
@ -457,8 +459,8 @@ USER bin`
})
It("podman run device-write-iops test", func() {
SkipIfRootless() // FIXME /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control does not exist
SkipIfRootlessCgroupsV1()
SkipIfRootless("FIXME /sys/fs/cgroup/user.slice/user-14467.slice/user@14467.service/cgroup.subtree_control does not exist")
SkipIfRootlessCgroupsV1("Setting device-write-iops not supported on cgroupv1 for rootless users")
var session *PodmanSessionIntegration
if CGROUPSV2 {
@ -575,7 +577,7 @@ USER bin`
})
It("podman run with FIPS mode secrets", func() {
SkipIfRootless() // rootless can not manipulate system-fips file
SkipIfRootless("rootless can not manipulate system-fips file")
fipsFile := "/etc/system-fips"
err = ioutil.WriteFile(fipsFile, []byte{}, 0755)
Expect(err).To(BeNil())
@ -894,7 +896,7 @@ USER mail`
})
It("podman run --mount type=bind,bind-nonrecursive", func() {
SkipIfRootless() // rootless users are not allowed to mount bind-nonrecursive (Could this be a Kernel bug?
SkipIfRootless("FIXME: rootless users are not allowed to mount bind-nonrecursive (Could this be a Kernel bug?")
session := podmanTest.Podman([]string{"run", "--mount", "type=bind,bind-nonrecursive,slave,src=/,target=/host", fedoraMinimal, "findmnt", "-nR", "/host"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@ -1054,8 +1056,8 @@ USER mail`
})
It("podman run with cgroups=disabled runs without cgroups", func() {
SkipIfRootless() // FIXME: I believe this should work but need to fix this test
SkipIfRootlessCgroupsV1()
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")
@ -1087,7 +1089,7 @@ USER mail`
})
It("podman run with cgroups=enabled makes cgroups", func() {
SkipIfRootlessCgroupsV1()
SkipIfRootlessCgroupsV1("Enable cgroups not supported on cgroupv1 for rootless users")
// Only works on crun
if !strings.Contains(podmanTest.OCIRuntime, "crun") {
Skip("Test only works on crun")
@ -1130,7 +1132,7 @@ USER mail`
})
It("podman run --device-cgroup-rule", func() {
SkipIfRootless() // rootless users are not allowed to mknod
SkipIfRootless("rootless users are not allowed to mknod")
deviceCgroupRule := "c 42:* rwm"
session := podmanTest.Podman([]string{"run", "--name", "test", "-d", "--device-cgroup-rule", deviceCgroupRule, ALPINE, "top"})
session.WaitWithDefaultTimeout()
@ -1208,7 +1210,7 @@ USER mail`
})
It("podman run verify pids-limit", func() {
SkipIfCgroupV1()
SkipIfCgroupV1("pids-limit not supported on cgroup V1")
limit := "4321"
session := podmanTest.Podman([]string{"run", "--pids-limit", limit, "--rm", ALPINE, "cat", "/sys/fs/cgroup/pids.max"})
session.WaitWithDefaultTimeout()

View File

@ -227,7 +227,7 @@ var _ = Describe("Podman run with volumes", func() {
})
It("podman run with tmpfs named volume mounts and unmounts", func() {
SkipIfRootless() // FIXME: rootless podman mount requires you to be in a user namespace
SkipIfRootless("FIXME: rootless podman mount requires you to be in a user namespace")
SkipIfRemote("podman-remote does not support --volumes this test could be simplified to be tested on Remote.")
volName := "testvol"
mkVolume := podmanTest.Podman([]string{"volume", "create", "--opt", "type=tmpfs", "--opt", "device=tmpfs", "--opt", "o=nodev", "testvol"})

View File

@ -186,7 +186,7 @@ registries = ['{{.Host}}:{{.Port}}']`
Expect(fakereg.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
search := podmanTest.Podman([]string{"search",
@ -213,7 +213,7 @@ registries = ['{{.Host}}:{{.Port}}']`
Expect(registry.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry3", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
podmanTest.RestoreArtifact(ALPINE)
@ -250,7 +250,7 @@ registries = ['{{.Host}}:{{.Port}}']`
Expect(registry.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry4", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
podmanTest.RestoreArtifact(ALPINE)
@ -290,7 +290,7 @@ registries = ['{{.Host}}:{{.Port}}']`
Expect(registry.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry5", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
podmanTest.RestoreArtifact(ALPINE)
@ -329,7 +329,7 @@ registries = ['{{.Host}}:{{.Port}}']`
Expect(registry.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry6", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
podmanTest.RestoreArtifact(ALPINE)
@ -371,7 +371,7 @@ registries = ['{{.Host}}:{{.Port}}']`
Expect(registryLocal.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry7", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
registryLocal = podmanTest.Podman([]string{"run", "-d", "-p", "6000:5000", "--name", "registry8", registry})
@ -379,7 +379,7 @@ registries = ['{{.Host}}:{{.Port}}']`
Expect(registryLocal.ExitCode()).To(Equal(0))
if !WaitContainerReady(podmanTest, "registry8", "listening on", 20, 1) {
Skip("Can not start docker registry.")
Skip("Cannot start docker registry.")
}
podmanTest.RestoreArtifact(ALPINE)

View File

@ -21,9 +21,7 @@ var _ = Describe("Podman stats", func() {
)
BeforeEach(func() {
if os.Geteuid() != 0 {
SkipIfCgroupV1()
}
SkipIfRootlessCgroupsV1("stats not supported on cgroupv1 for rootless users")
var err error
tempdir, err = CreateTempDirInTempDir()
if err != nil {

View File

@ -47,7 +47,7 @@ WantedBy=multi-user.target
})
It("podman start container by systemd", func() {
SkipIfRootless() // rootless can not write to /etc
SkipIfRootless("rootless can not write to /etc")
if os.Getenv("SKIP_USERNS") != "" {
Skip("Skip userns tests.")
}

View File

@ -34,9 +34,7 @@ var _ = Describe("Podman image tree", func() {
})
It("podman image tree", func() {
if podmanTest.RemoteTest {
Skip("Does not work on remote client")
}
SkipIfRemote("Does not work on remote client")
dockerfile := `FROM docker.io/library/busybox:latest
RUN mkdir hello
RUN touch test.txt

View File

@ -56,7 +56,7 @@ var _ = Describe("Podman volume ls", func() {
})
It("podman ls volume with Go template", func() {
Skip(v2fail)
Skip("FIXME: table still not supported in podman volume command")
session := podmanTest.Podman([]string{"volume", "create", "myvol"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))