From 2eda547dcd597a23ecc2311a7ceca46746a3026e Mon Sep 17 00:00:00 2001
From: Charlie Doern <cdoern@redhat.com>
Date: Tue, 21 Jun 2022 15:41:10 -0400
Subject: podman run/create -v relative filepath support

podman currently does not support relative volume paths. Add parsing for relative paths in specgen, converting
whatever volume was given to an absolute path.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
---
 test/e2e/run_volume_test.go | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

(limited to 'test')

diff --git a/test/e2e/run_volume_test.go b/test/e2e/run_volume_test.go
index f31e62e42..edb657695 100644
--- a/test/e2e/run_volume_test.go
+++ b/test/e2e/run_volume_test.go
@@ -953,4 +953,32 @@ USER testuser`, fedoraMinimal)
 		Expect(volMount).Should(Exit(0))
 		Expect(volMount.OutputToString()).To(Equal("1000:1000"))
 	})
+
+	It("podman run -v with a relative dir", func() {
+		mountPath := filepath.Join(podmanTest.TempDir, "vol")
+		err = os.Mkdir(mountPath, 0755)
+		Expect(err).ToNot(HaveOccurred())
+		defer func() {
+			err := os.RemoveAll(mountPath)
+			Expect(err).ToNot(HaveOccurred())
+		}()
+
+		f, err := os.CreateTemp(mountPath, "podman")
+		Expect(err).ToNot(HaveOccurred())
+
+		cwd, err := os.Getwd()
+		Expect(err).ToNot(HaveOccurred())
+
+		err = os.Chdir(mountPath)
+		Expect(err).ToNot(HaveOccurred())
+		defer func() {
+			err := os.Chdir(cwd)
+			Expect(err).ToNot(HaveOccurred())
+		}()
+
+		run := podmanTest.Podman([]string{"run", "-it", "--security-opt", "label=disable", "-v", "./:" + dest, ALPINE, "ls", dest})
+		run.WaitWithDefaultTimeout()
+		Expect(run).Should(Exit(0))
+		Expect(run.OutputToString()).Should(ContainSubstring(strings.TrimLeft("/vol/", f.Name())))
+	})
 })
-- 
cgit v1.2.3-54-g00ecf