summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAshley Cui <acui@redhat.com>2020-11-03 14:07:59 -0500
committerAshley Cui <acui@redhat.com>2020-11-03 14:35:01 -0500
commit532bce4ad434e302007c3d2adf9994b5a822cc19 (patch)
tree911b8a455999778ecf647fce6de50fd59530999b /test
parent8dfbdb561be5e2313dfa9f665e1f184089c8e967 (diff)
downloadpodman-532bce4ad434e302007c3d2adf9994b5a822cc19.tar.gz
podman-532bce4ad434e302007c3d2adf9994b5a822cc19.tar.bz2
podman-532bce4ad434e302007c3d2adf9994b5a822cc19.zip
Make volume filters inclusive
When using multiple filters, return a volume that matches any one of the used filters, rather than matching both of the filters. This is for compatibility with docker's cli, and more importantly, the apiv2 compat endpoint Closes #6765 Signed-off-by: Ashley Cui <acui@redhat.com>
Diffstat (limited to 'test')
-rw-r--r--test/apiv2/30-volumes.at2
-rw-r--r--test/e2e/volume_ls_test.go23
2 files changed, 25 insertions, 0 deletions
diff --git a/test/apiv2/30-volumes.at b/test/apiv2/30-volumes.at
index 2c38954b6..aa167a97a 100644
--- a/test/apiv2/30-volumes.at
+++ b/test/apiv2/30-volumes.at
@@ -35,6 +35,8 @@ t GET libpod/volumes/json 200 \
.[0].CreatedAt~[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}.*
# -G --data-urlencode 'filters={"name":["foo1"]}'
t GET libpod/volumes/json?filters=%7B%22name%22%3A%5B%22foo1%22%5D%7D 200 length=1 .[0].Name=foo1
+# -G --data-urlencode 'filters={"name":["foo1","foo2"]}'
+t GET libpod/volumes/json?filters=%7B%22name%22%3A%20%5B%22foo1%22%2C%20%22foo2%22%5D%7D 200 length=2 .[0].Name=foo1 .[1].Name=foo2
# -G --data-urlencode 'filters={"name":["notexist"]}'
t GET libpod/volumes/json?filters=%7B%22name%22%3A%5B%22notexists%22%5D%7D 200 length=0
diff --git a/test/e2e/volume_ls_test.go b/test/e2e/volume_ls_test.go
index 1cb6440aa..cda118bf1 100644
--- a/test/e2e/volume_ls_test.go
+++ b/test/e2e/volume_ls_test.go
@@ -110,4 +110,27 @@ var _ = Describe("Podman volume ls", func() {
Expect(lsDangling.ExitCode()).To(Equal(0))
Expect(lsDangling.OutputToString()).To(ContainSubstring(volName1))
})
+ It("podman ls volume with multiple --filter flag", func() {
+ session := podmanTest.Podman([]string{"volume", "create", "--label", "foo=bar", "myvol"})
+ volName := session.OutputToString()
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ session = podmanTest.Podman([]string{"volume", "create", "--label", "foo2=bar2", "anothervol"})
+ anotherVol := session.OutputToString()
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ session = podmanTest.Podman([]string{"volume", "create"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo", "--filter", "label=foo2"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ Expect(len(session.OutputToStringArray())).To(Equal(3))
+ Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName))
+ Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol))
+
+ })
})