diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2020-07-09 14:53:46 -0400 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2020-07-27 16:53:02 -0400 |
commit | 8f7ed50cb20c04bbbb7c4907a183c07912d4bffb (patch) | |
tree | 14001f06bc0a278d0e34c6e7312ffd08c3afe526 /test | |
parent | 2b7bc9b101887a789a9fc0282d448efad824404f (diff) | |
download | podman-8f7ed50cb20c04bbbb7c4907a183c07912d4bffb.tar.gz podman-8f7ed50cb20c04bbbb7c4907a183c07912d4bffb.tar.bz2 podman-8f7ed50cb20c04bbbb7c4907a183c07912d4bffb.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')
-rw-r--r-- | test/e2e/mount_rootless_test.go | 62 | ||||
-rw-r--r-- | test/e2e/mount_test.go | 5 |
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 36d1f856d..0b1667fd3 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)) |