mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-09-17 21:27:52 +00:00
Just like Cleanup() they should check the error codes. While doing this it was clear that some volume tests were calling Cleanup() twice so remove this. Instead make sure they call Cleanup() themselves so callers only need to do one call. This is required because we cannot use Expect().To() before doing all the cleanup. An error causes panic does results in an early return thus missing potentially important cleanup. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
129 lines
3.8 KiB
Go
129 lines
3.8 KiB
Go
package integration
|
|
|
|
import (
|
|
"os"
|
|
|
|
. "github.com/containers/podman/v4/test/utils"
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
. "github.com/onsi/gomega/gexec"
|
|
)
|
|
|
|
var _ = Describe("Podman volume rm", func() {
|
|
var (
|
|
tempdir string
|
|
err error
|
|
podmanTest *PodmanTestIntegration
|
|
)
|
|
|
|
BeforeEach(func() {
|
|
tempdir, err = CreateTempDirInTempDir()
|
|
if err != nil {
|
|
os.Exit(1)
|
|
}
|
|
podmanTest = PodmanTestCreate(tempdir)
|
|
podmanTest.Setup()
|
|
})
|
|
|
|
AfterEach(func() {
|
|
podmanTest.CleanupVolume()
|
|
f := CurrentSpecReport()
|
|
processTestResult(f)
|
|
|
|
})
|
|
|
|
It("podman volume rm", func() {
|
|
session := podmanTest.Podman([]string{"volume", "create", "myvol"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "rm", "myvol"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
Expect(session.OutputToStringArray()).To(BeEmpty())
|
|
})
|
|
|
|
It("podman volume rm with --force flag", func() {
|
|
session := podmanTest.Podman([]string{"create", "-v", "myvol:/myvol", ALPINE, "ls"})
|
|
cid := session.OutputToString()
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "rm", "myvol"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(2))
|
|
Expect(session.ErrorToString()).To(ContainSubstring(cid))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "rm", "-t", "0", "-f", "myvol"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
Expect(session.OutputToStringArray()).To(BeEmpty())
|
|
})
|
|
|
|
It("podman volume remove bogus", func() {
|
|
session := podmanTest.Podman([]string{"volume", "rm", "bogus"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(1))
|
|
})
|
|
|
|
It("podman rm with --all flag", func() {
|
|
session := podmanTest.Podman([]string{"volume", "create", "myvol"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "create"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "rm", "-a"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
Expect(session.OutputToStringArray()).To(BeEmpty())
|
|
})
|
|
|
|
It("podman volume rm by partial name", func() {
|
|
session := podmanTest.Podman([]string{"volume", "create", "myvol"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "rm", "myv"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
Expect(session.OutputToStringArray()).To(BeEmpty())
|
|
})
|
|
|
|
It("podman volume rm by nonunique partial name", func() {
|
|
session := podmanTest.Podman([]string{"volume", "create", "myvol1"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "create", "myvol2"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
|
|
session = podmanTest.Podman([]string{"volume", "rm", "myv"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).To(ExitWithError())
|
|
|
|
session = podmanTest.Podman([]string{"volume", "ls"})
|
|
session.WaitWithDefaultTimeout()
|
|
Expect(session).Should(Exit(0))
|
|
Expect(len(session.OutputToStringArray())).To(BeNumerically(">=", 2))
|
|
})
|
|
})
|