github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/test/e2e/unshare_test.go (about) 1 package integration 2 3 import ( 4 "os" 5 6 . "github.com/containers/libpod/test/utils" 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/gomega" 9 ) 10 11 var _ = Describe("Podman unshare", func() { 12 var ( 13 tempdir string 14 err error 15 podmanTest *PodmanTestIntegration 16 ) 17 BeforeEach(func() { 18 SkipIfRemote() 19 if _, err := os.Stat("/proc/self/uid_map"); err != nil { 20 Skip("User namespaces not supported.") 21 } 22 23 if os.Geteuid() == 0 { 24 Skip("Use unshare in rootless only") 25 } 26 27 tempdir, err = CreateTempDirInTempDir() 28 if err != nil { 29 os.Exit(1) 30 } 31 podmanTest = PodmanTestCreate(tempdir) 32 podmanTest.CgroupManager = "cgroupfs" 33 podmanTest.StorageOptions = ROOTLESS_STORAGE_OPTIONS 34 podmanTest.Setup() 35 podmanTest.SeedImages() 36 }) 37 38 AfterEach(func() { 39 podmanTest.Cleanup() 40 f := CurrentGinkgoTestDescription() 41 processTestResult(f) 42 }) 43 44 It("podman unshare", func() { 45 userNS, _ := os.Readlink("/proc/self/ns/user") 46 session := podmanTest.Podman([]string{"unshare", "readlink", "/proc/self/ns/user"}) 47 session.WaitWithDefaultTimeout() 48 Expect(session.ExitCode()).To(Equal(0)) 49 ok, _ := session.GrepString(userNS) 50 Expect(ok).To(BeFalse()) 51 }) 52 })