summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2020-09-29 10:05:53 -0400
committerDaniel J Walsh <dwalsh@redhat.com>2020-09-29 15:52:43 -0400
commit22474095abe39c14c902650b08002c0bc89e7e6a (patch)
treee601964f926bf5e6b6684d4dae796d7282974f56 /test
parent12f173f4732d50a85bf4875807597d2fd0e92cc0 (diff)
downloadpodman-22474095abe39c14c902650b08002c0bc89e7e6a.tar.gz
podman-22474095abe39c14c902650b08002c0bc89e7e6a.tar.bz2
podman-22474095abe39c14c902650b08002c0bc89e7e6a.zip
Fix handling of remove of bogus volumes, networks and Pods
In podman containers rm and podman images rm, the commands exit with error code 1 if the object does not exists. This PR implements similar functionality to volumes, networks, and Pods. Similarly if volumes or Networks are in use by other containers, and return exit code 2. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'test')
-rw-r--r--test/e2e/network_test.go10
-rw-r--r--test/e2e/pod_rm_test.go7
-rw-r--r--test/e2e/rm_test.go4
-rw-r--r--test/e2e/volume_rm_test.go8
-rw-r--r--test/system/500-networking.bats2
5 files changed, 23 insertions, 8 deletions
diff --git a/test/e2e/network_test.go b/test/e2e/network_test.go
index 2ea8291fc..2beaf93dd 100644
--- a/test/e2e/network_test.go
+++ b/test/e2e/network_test.go
@@ -265,6 +265,12 @@ var _ = Describe("Podman network", func() {
Expect(rmAll.ExitCode()).To(BeZero())
})
+ It("podman network remove bogus", func() {
+ session := podmanTest.Podman([]string{"network", "rm", "bogus"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(1))
+ })
+
It("podman network remove --force with pod", func() {
netName := "testnet"
session := podmanTest.Podman([]string{"network", "create", netName})
@@ -280,6 +286,10 @@ var _ = Describe("Podman network", func() {
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(BeZero())
+ session = podmanTest.Podman([]string{"network", "rm", netName})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(2))
+
session = podmanTest.Podman([]string{"network", "rm", "--force", netName})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(BeZero())
diff --git a/test/e2e/pod_rm_test.go b/test/e2e/pod_rm_test.go
index cb9b93a15..24643e6b2 100644
--- a/test/e2e/pod_rm_test.go
+++ b/test/e2e/pod_rm_test.go
@@ -195,8 +195,7 @@ var _ = Describe("Podman pod rm", func() {
It("podman rm bogus pod", func() {
session := podmanTest.Podman([]string{"pod", "rm", "bogus"})
session.WaitWithDefaultTimeout()
- // TODO: `podman rm` returns 1 for a bogus container. Should the RC be consistent?
- Expect(session.ExitCode()).To(Equal(125))
+ Expect(session.ExitCode()).To(Equal(1))
})
It("podman rm bogus pod and a running pod", func() {
@@ -209,11 +208,11 @@ var _ = Describe("Podman pod rm", func() {
session = podmanTest.Podman([]string{"pod", "rm", "bogus", "test1"})
session.WaitWithDefaultTimeout()
- Expect(session.ExitCode()).To(Equal(125))
+ Expect(session.ExitCode()).To(Equal(1))
session = podmanTest.Podman([]string{"pod", "rm", "test1", "bogus"})
session.WaitWithDefaultTimeout()
- Expect(session.ExitCode()).To(Equal(125))
+ Expect(session.ExitCode()).To(Equal(1))
})
It("podman rm --ignore bogus pod and a running pod", func() {
diff --git a/test/e2e/rm_test.go b/test/e2e/rm_test.go
index cc2f7daf1..7eff8c6ed 100644
--- a/test/e2e/rm_test.go
+++ b/test/e2e/rm_test.go
@@ -228,11 +228,11 @@ var _ = Describe("Podman rm", func() {
session = podmanTest.Podman([]string{"rm", "bogus", "test1"})
session.WaitWithDefaultTimeout()
- Expect(session.ExitCode()).To(Equal(125))
+ Expect(session.ExitCode()).To(Equal(1))
session = podmanTest.Podman([]string{"rm", "test1", "bogus"})
session.WaitWithDefaultTimeout()
- Expect(session.ExitCode()).To(Equal(125))
+ Expect(session.ExitCode()).To(Equal(1))
})
It("podman rm --ignore bogus container and a running container", func() {
diff --git a/test/e2e/volume_rm_test.go b/test/e2e/volume_rm_test.go
index a072bc824..cdced1f13 100644
--- a/test/e2e/volume_rm_test.go
+++ b/test/e2e/volume_rm_test.go
@@ -55,7 +55,7 @@ var _ = Describe("Podman volume rm", func() {
session = podmanTest.Podman([]string{"volume", "rm", "myvol"})
session.WaitWithDefaultTimeout()
- Expect(session).To(ExitWithError())
+ Expect(session.ExitCode()).To(Equal(2))
Expect(session.ErrorToString()).To(ContainSubstring(cid))
session = podmanTest.Podman([]string{"volume", "rm", "-f", "myvol"})
@@ -70,6 +70,12 @@ var _ = Describe("Podman volume rm", func() {
podmanTest.Cleanup()
})
+ It("podman volume remove bogus", func() {
+ session := podmanTest.Podman([]string{"volume", "rm", "bogus"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(1))
+ })
+
It("podman rm with --all flag", func() {
session := podmanTest.Podman([]string{"volume", "create", "myvol"})
session.WaitWithDefaultTimeout()
diff --git a/test/system/500-networking.bats b/test/system/500-networking.bats
index d2454fbf4..150626ded 100644
--- a/test/system/500-networking.bats
+++ b/test/system/500-networking.bats
@@ -99,7 +99,7 @@ load helpers
"Trying to create an already-existing network"
run_podman network rm $mynetname
- run_podman 125 network rm $mynetname
+ run_podman 1 network rm $mynetname
# rootless CNI leaves behind an image pulled by SHA, hence with no tag.
# Remove it if present; we can only remove it by ID.