mirror of
https://github.com/containers/podman.git
synced 2025-06-22 18:08:11 +08:00
Distinguish userns vs containerized tests
The systemd test was inaccurately being skipped when a userns env. var. flag was set. At best this is confusing to new developers, and at worse it actively blocks an otherwise legitimate class of tests. Improve the accuracy of skip-logic by adding/using a purpose built set of functions. Signed-off-by: Chris Evich <cevich@redhat.com>
This commit is contained in:
@ -599,19 +599,21 @@ func (p *PodmanTestIntegration) CreateSeccompJson(in []byte) (string, error) {
|
||||
return jsonFile, nil
|
||||
}
|
||||
|
||||
func SkipIfRootlessCgroupsV1(reason string) {
|
||||
func checkReason(reason string) {
|
||||
if len(reason) < 5 {
|
||||
panic("SkipIfRootlessCgroupsV1 must specify a reason to skip")
|
||||
panic("Test must specify a reason to skip")
|
||||
}
|
||||
}
|
||||
|
||||
func SkipIfRootlessCgroupsV1(reason string) {
|
||||
checkReason(reason)
|
||||
if os.Geteuid() != 0 && !CGROUPSV2 {
|
||||
Skip("[rootless]: " + reason)
|
||||
}
|
||||
}
|
||||
|
||||
func SkipIfRootless(reason string) {
|
||||
if len(reason) < 5 {
|
||||
panic("SkipIfRootless must specify a reason to skip")
|
||||
}
|
||||
checkReason(reason)
|
||||
if os.Geteuid() != 0 {
|
||||
ginkgo.Skip("[rootless]: " + reason)
|
||||
}
|
||||
@ -629,23 +631,34 @@ func isRootless() bool {
|
||||
}
|
||||
|
||||
func SkipIfCgroupV1(reason string) {
|
||||
if len(reason) < 5 {
|
||||
panic("SkipIfCgroupV1 must specify a reason to skip")
|
||||
}
|
||||
checkReason(reason)
|
||||
if !CGROUPSV2 {
|
||||
Skip(reason)
|
||||
}
|
||||
}
|
||||
|
||||
func SkipIfCgroupV2(reason string) {
|
||||
if len(reason) < 5 {
|
||||
panic("SkipIfCgroupV2 must specify a reason to skip")
|
||||
}
|
||||
checkReason(reason)
|
||||
if CGROUPSV2 {
|
||||
Skip(reason)
|
||||
}
|
||||
}
|
||||
|
||||
func isContainerized() bool {
|
||||
// This is set to "podman" by podman automatically
|
||||
if os.Getenv("container") != "" {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func SkipIfContainerized(reason string) {
|
||||
checkReason(reason)
|
||||
if isContainerized() {
|
||||
Skip(reason)
|
||||
}
|
||||
}
|
||||
|
||||
// PodmanAsUser is the exec call to podman on the filesystem with the specified uid/gid and environment
|
||||
func (p *PodmanTestIntegration) PodmanAsUser(args []string, uid, gid uint32, cwd string, env []string) *PodmanSessionIntegration {
|
||||
podmanSession := p.PodmanAsUserBase(args, uid, gid, cwd, env, false, false, nil)
|
||||
|
@ -48,9 +48,7 @@ WantedBy=multi-user.target
|
||||
|
||||
It("podman start container by systemd", func() {
|
||||
SkipIfRootless("rootless can not write to /etc")
|
||||
if os.Getenv("SKIP_USERNS") != "" {
|
||||
Skip("Skip userns tests.")
|
||||
}
|
||||
SkipIfContainerized("test does not have systemd as pid 1")
|
||||
|
||||
sys_file := ioutil.WriteFile("/etc/systemd/system/redis.service", []byte(systemd_unit_file), 0644)
|
||||
Expect(sys_file).To(BeNil())
|
||||
|
Reference in New Issue
Block a user