summaryrefslogtreecommitdiff
path: root/test/e2e
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2020-07-09 14:53:46 -0400
committerDaniel J Walsh <dwalsh@redhat.com>2020-08-20 13:35:11 -0400
commit4e31c8136dffd2272e49715b83fba092621ffd2a (patch)
tree52070eed2d7619f1a33c40ff826c681fb6dc6e7f /test/e2e
parent386de7a1fbfef0c266e04f6471f9382a5d39a02f (diff)
downloadpodman-4e31c8136dffd2272e49715b83fba092621ffd2a.tar.gz
podman-4e31c8136dffd2272e49715b83fba092621ffd2a.tar.bz2
podman-4e31c8136dffd2272e49715b83fba092621ffd2a.zip
Cleanup handling of podman mount/unmount
We should default to the user name unmount rather then the internal name of umount. Also User namespace was not being handled correctly. We want to inform the user that if they do a mount when in rootless mode that they have to be first in the podman unshare state. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'test/e2e')
-rw-r--r--test/e2e/mount_rootless_test.go62
-rw-r--r--test/e2e/mount_test.go5
2 files changed, 67 insertions, 0 deletions
diff --git a/test/e2e/mount_rootless_test.go b/test/e2e/mount_rootless_test.go
new file mode 100644
index 000000000..986c11c16
--- /dev/null
+++ b/test/e2e/mount_rootless_test.go
@@ -0,0 +1,62 @@
+// +build !remote
+
+package integration
+
+import (
+ "os"
+
+ . "github.com/containers/libpod/v2/test/utils"
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+)
+
+var _ = Describe("Podman mount", func() {
+ var (
+ tempdir string
+ err error
+ podmanTest *PodmanTestIntegration
+ )
+
+ BeforeEach(func() {
+ if os.Geteuid() == 0 {
+ Skip("This function is not enabled for rootfull podman")
+ }
+ tempdir, err = CreateTempDirInTempDir()
+ if err != nil {
+ os.Exit(1)
+ }
+ podmanTest = PodmanTestCreate(tempdir)
+ podmanTest.Setup()
+ podmanTest.SeedImages()
+ })
+
+ AfterEach(func() {
+ podmanTest.Cleanup()
+ f := CurrentGinkgoTestDescription()
+ processTestResult(f)
+
+ })
+
+ It("podman mount", func() {
+ setup := podmanTest.Podman([]string{"create", ALPINE, "ls"})
+ setup.WaitWithDefaultTimeout()
+ Expect(setup.ExitCode()).To(Equal(0))
+ cid := setup.OutputToString()
+
+ mount := podmanTest.Podman([]string{"mount", cid})
+ mount.WaitWithDefaultTimeout()
+ Expect(mount.ExitCode()).ToNot(Equal(0))
+ Expect(mount.ErrorToString()).To(ContainSubstring("podman unshare"))
+ })
+
+ It("podman unshare podman mount", func() {
+ setup := podmanTest.Podman([]string{"create", ALPINE, "ls"})
+ setup.WaitWithDefaultTimeout()
+ Expect(setup.ExitCode()).To(Equal(0))
+ cid := setup.OutputToString()
+
+ session := podmanTest.Podman([]string{"unshare", PODMAN_BINARY, "mount", cid})
+ session.WaitWithDefaultTimeout()
+ Expect(setup.ExitCode()).To(Equal(0))
+ })
+})
diff --git a/test/e2e/mount_test.go b/test/e2e/mount_test.go
index 657daedef..d98999162 100644
--- a/test/e2e/mount_test.go
+++ b/test/e2e/mount_test.go
@@ -80,6 +80,11 @@ var _ = Describe("Podman mount", func() {
Expect(j.ExitCode()).To(Equal(0))
Expect(j.IsJSONOutputValid()).To(BeTrue())
+ j = podmanTest.Podman([]string{"mount", "--format='{{.foobar}}'"})
+ j.WaitWithDefaultTimeout()
+ Expect(j.ExitCode()).ToNot(Equal(0))
+ Expect(j.ErrorToString()).To(ContainSubstring("unknown --format"))
+
umount := podmanTest.Podman([]string{"umount", cid})
umount.WaitWithDefaultTimeout()
Expect(umount.ExitCode()).To(Equal(0))