diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-04-09 01:36:53 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-09 01:36:53 -0700 |
commit | d744d9e3038aea2cf77ca83326be2f141da3b610 (patch) | |
tree | a407b434cdd1cc67a66f2983fbadbfe3e6dfcacd | |
parent | 0fdbf1d306a806520257e100bb9f306e516fd8f0 (diff) | |
parent | ce82e19a372571f296e8463727809ee76c725911 (diff) | |
download | podman-d744d9e3038aea2cf77ca83326be2f141da3b610.tar.gz podman-d744d9e3038aea2cf77ca83326be2f141da3b610.tar.bz2 podman-d744d9e3038aea2cf77ca83326be2f141da3b610.zip |
Merge pull request #2859 from giuseppe/enable-userns-tests-rootless
test: enable userns and remote e2e tests for rootless
-rwxr-xr-x | contrib/cirrus/rootless_test.sh | 3 | ||||
-rw-r--r-- | test/e2e/libpod_suite_remoteclient_test.go | 12 | ||||
-rw-r--r-- | test/e2e/run_ns_test.go | 2 | ||||
-rw-r--r-- | test/e2e/run_userns_test.go | 42 |
4 files changed, 20 insertions, 39 deletions
diff --git a/contrib/cirrus/rootless_test.sh b/contrib/cirrus/rootless_test.sh index 88b38f45b..09c57f993 100755 --- a/contrib/cirrus/rootless_test.sh +++ b/contrib/cirrus/rootless_test.sh @@ -18,6 +18,8 @@ then exit 1 fi +export PODMAN_VARLINK_ADDRESS=unix:/tmp/podman-$(id -u) + echo "." echo "Hello, my name is $USER and I live in $PWD can I be your friend?" @@ -28,5 +30,6 @@ make make varlink_generate make test-binaries make ginkgo +make ginkgo-remote record_timestamp "rootless test end" diff --git a/test/e2e/libpod_suite_remoteclient_test.go b/test/e2e/libpod_suite_remoteclient_test.go index 44c5edf07..a85d21a48 100644 --- a/test/e2e/libpod_suite_remoteclient_test.go +++ b/test/e2e/libpod_suite_remoteclient_test.go @@ -139,19 +139,21 @@ func (p *PodmanTestIntegration) CleanupVolume() { } func PodmanTestCreate(tempDir string) *PodmanTestIntegration { - if os.Geteuid() != 0 { - ginkgo.Skip("This function is not enabled for rootless podman") - } pti := PodmanTestCreateUtil(tempDir, true) pti.StartVarlink() return pti } func (p *PodmanTestIntegration) StartVarlink() { - if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) { + if os.Geteuid() == 0 { os.MkdirAll("/run/podman", 0755) } - args := []string{"varlink", "--timeout", "0", "unix:/run/podman/io.podman"} + varlinkEndpoint := "unix:/run/podman/io.podman" + if addr := os.Getenv("PODMAN_VARLINK_ADDRESS"); addr != "" { + varlinkEndpoint = addr + } + + args := []string{"varlink", "--timeout", "0", varlinkEndpoint} podmanOptions := getVarlinkOptions(p, args) command := exec.Command(p.PodmanBinary, podmanOptions...) fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " ")) diff --git a/test/e2e/run_ns_test.go b/test/e2e/run_ns_test.go index 5236e6584..51f921bce 100644 --- a/test/e2e/run_ns_test.go +++ b/test/e2e/run_ns_test.go @@ -63,7 +63,6 @@ var _ = Describe("Podman run ns", func() { }) It("podman run ipcns ipcmk host test", func() { - SkipIfRootless() setup := SystemExec("ipcmk", []string{"-M", "1024"}) Expect(setup.ExitCode()).To(Equal(0)) output := strings.Split(setup.OutputToString(), " ") @@ -77,7 +76,6 @@ var _ = Describe("Podman run ns", func() { }) It("podman run ipcns ipcmk container test", func() { - SkipIfRootless() setup := podmanTest.Podman([]string{"run", "-d", "--name", "test1", fedoraMinimal, "sleep", "999"}) setup.WaitWithDefaultTimeout() Expect(setup.ExitCode()).To(Equal(0)) diff --git a/test/e2e/run_userns_test.go b/test/e2e/run_userns_test.go index 5c38a8950..f7f0e1c9a 100644 --- a/test/e2e/run_userns_test.go +++ b/test/e2e/run_userns_test.go @@ -18,7 +18,12 @@ var _ = Describe("Podman UserNS support", func() { ) BeforeEach(func() { - SkipIfRootless() + if os.Getenv("SKIP_USERNS") != "" { + Skip("Skip userns tests.") + } + if _, err := os.Stat("/proc/self/uid_map"); err != nil { + Skip("User namespaces not supported.") + } tempdir, err = CreateTempDirInTempDir() if err != nil { os.Exit(1) @@ -36,14 +41,7 @@ var _ = Describe("Podman UserNS support", func() { }) It("podman uidmapping and gidmapping", func() { - if os.Getenv("SKIP_USERNS") != "" { - Skip("Skip userns tests.") - } - if _, err := os.Stat("/proc/self/uid_map"); err != nil { - Skip("User namespaces not supported.") - } - - session := podmanTest.Podman([]string{"run", "--uidmap=0:1:70000", "--gidmap=0:20000:70000", "busybox", "echo", "hello"}) + session := podmanTest.Podman([]string{"run", "--uidmap=0:100:5000", "--gidmap=0:200:5000", "alpine", "echo", "hello"}) session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(0)) ok, _ := session.GrepString("hello") @@ -55,14 +53,7 @@ var _ = Describe("Podman UserNS support", func() { // https://github.com/containers/libpod/pull/1066#issuecomment-403562116 // To avoid a potential future regression, use this as a test. It("podman uidmapping and gidmapping with short-opts", func() { - if os.Getenv("SKIP_USERNS") != "" { - Skip("Skip userns tests.") - } - if _, err := os.Stat("/proc/self/uid_map"); err != nil { - Skip("User namespaces not supported.") - } - - session := podmanTest.Podman([]string{"run", "--uidmap=0:1:70000", "--gidmap=0:20000:70000", "-it", "busybox", "echo", "hello"}) + session := podmanTest.Podman([]string{"run", "--uidmap=0:1:5000", "--gidmap=0:200:5000", "-it", "alpine", "echo", "hello"}) session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(0)) ok, _ := session.GrepString("hello") @@ -70,14 +61,7 @@ var _ = Describe("Podman UserNS support", func() { }) It("podman uidmapping and gidmapping with a volume", func() { - if os.Getenv("SKIP_USERNS") != "" { - Skip("Skip userns tests.") - } - if _, err := os.Stat("/proc/self/uid_map"); err != nil { - Skip("User namespaces not supported.") - } - - session := podmanTest.Podman([]string{"run", "--uidmap=0:1:70000", "--gidmap=0:20000:70000", "-v", "my-foo-volume:/foo:Z", "busybox", "echo", "hello"}) + session := podmanTest.Podman([]string{"run", "--uidmap=0:1:500", "--gidmap=0:200:5000", "-v", "my-foo-volume:/foo:Z", "alpine", "echo", "hello"}) session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(0)) ok, _ := session.GrepString("hello") @@ -85,13 +69,7 @@ var _ = Describe("Podman UserNS support", func() { }) It("podman uidmapping and gidmapping --net=host", func() { - if os.Getenv("SKIP_USERNS") != "" { - Skip("Skip userns tests.") - } - if _, err := os.Stat("/proc/self/uid_map"); err != nil { - Skip("User namespaces not supported.") - } - session := podmanTest.Podman([]string{"run", "--net=host", "--uidmap=0:1:70000", "--gidmap=0:20000:70000", "busybox", "echo", "hello"}) + session := podmanTest.Podman([]string{"run", "--net=host", "--uidmap=0:1:5000", "--gidmap=0:200:5000", "alpine", "echo", "hello"}) session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(0)) ok, _ := session.GrepString("hello") |