github.com/AbhinandanKurakure/podman/v3@v3.4.10/test/e2e/volume_ls_test.go (about) 1 package integration 2 3 import ( 4 "fmt" 5 "os" 6 7 . "github.com/containers/podman/v3/test/utils" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 . "github.com/onsi/gomega/gexec" 11 ) 12 13 var _ = Describe("Podman volume ls", func() { 14 var ( 15 tempdir string 16 err error 17 podmanTest *PodmanTestIntegration 18 ) 19 20 BeforeEach(func() { 21 tempdir, err = CreateTempDirInTempDir() 22 if err != nil { 23 os.Exit(1) 24 } 25 podmanTest = PodmanTestCreate(tempdir) 26 podmanTest.Setup() 27 podmanTest.SeedImages() 28 }) 29 30 AfterEach(func() { 31 podmanTest.CleanupVolume() 32 f := CurrentGinkgoTestDescription() 33 processTestResult(f) 34 35 }) 36 37 It("podman ls volume", func() { 38 session := podmanTest.Podman([]string{"volume", "create", "myvol"}) 39 session.WaitWithDefaultTimeout() 40 Expect(session).Should(Exit(0)) 41 42 session = podmanTest.Podman([]string{"volume", "ls"}) 43 session.WaitWithDefaultTimeout() 44 Expect(session).Should(Exit(0)) 45 Expect(len(session.OutputToStringArray())).To(Equal(2)) 46 }) 47 48 It("podman ls volume with JSON format", func() { 49 session := podmanTest.Podman([]string{"volume", "create", "myvol"}) 50 session.WaitWithDefaultTimeout() 51 Expect(session).Should(Exit(0)) 52 53 session = podmanTest.Podman([]string{"volume", "ls", "--format", "json"}) 54 session.WaitWithDefaultTimeout() 55 Expect(session).Should(Exit(0)) 56 Expect(session.IsJSONOutputValid()).To(BeTrue()) 57 }) 58 59 It("podman ls volume with Go template", func() { 60 session := podmanTest.Podman([]string{"volume", "create", "myvol"}) 61 session.WaitWithDefaultTimeout() 62 Expect(session).Should(Exit(0)) 63 64 session = podmanTest.Podman([]string{"volume", "ls", "--format", "table {{.Name}} {{.Driver}} {{.Scope}}"}) 65 session.WaitWithDefaultTimeout() 66 67 Expect(session).Should(Exit(0)) 68 Expect(len(session.OutputToStringArray())).To(Equal(1), session.OutputToString()) 69 }) 70 71 It("podman ls volume with --filter flag", func() { 72 session := podmanTest.Podman([]string{"volume", "create", "--label", "foo=bar", "myvol"}) 73 volName := session.OutputToString() 74 session.WaitWithDefaultTimeout() 75 Expect(session).Should(Exit(0)) 76 77 session = podmanTest.Podman([]string{"volume", "create"}) 78 session.WaitWithDefaultTimeout() 79 Expect(session).Should(Exit(0)) 80 81 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo"}) 82 session.WaitWithDefaultTimeout() 83 Expect(session).Should(Exit(0)) 84 Expect(len(session.OutputToStringArray())).To(Equal(2)) 85 Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) 86 87 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=foo"}) 88 session.WaitWithDefaultTimeout() 89 Expect(session).Should(Exit(0)) 90 Expect(len(session.OutputToStringArray())).To(Equal(0)) 91 92 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=bar"}) 93 session.WaitWithDefaultTimeout() 94 Expect(session).Should(Exit(0)) 95 Expect(len(session.OutputToStringArray())).To(Equal(2)) 96 Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) 97 98 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=baz"}) 99 session.WaitWithDefaultTimeout() 100 Expect(session).Should(Exit(0)) 101 Expect(len(session.OutputToStringArray())).To(Equal(0)) 102 }) 103 104 It("podman ls volume with --filter until flag", func() { 105 session := podmanTest.Podman([]string{"volume", "create"}) 106 session.WaitWithDefaultTimeout() 107 Expect(session).Should(Exit(0)) 108 109 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "until=5000000000"}) 110 session.WaitWithDefaultTimeout() 111 Expect(session).Should(Exit(0)) 112 Expect(len(session.OutputToStringArray())).To(Equal(2)) 113 114 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "until=50000"}) 115 session.WaitWithDefaultTimeout() 116 Expect(session).Should(Exit(0)) 117 Expect(len(session.OutputToStringArray())).To(Equal(0)) 118 }) 119 120 It("podman volume ls with --filter dangling", func() { 121 volName1 := "volume1" 122 session := podmanTest.Podman([]string{"volume", "create", volName1}) 123 session.WaitWithDefaultTimeout() 124 Expect(session).Should(Exit(0)) 125 126 volName2 := "volume2" 127 session2 := podmanTest.Podman([]string{"volume", "create", volName2}) 128 session2.WaitWithDefaultTimeout() 129 Expect(session2).Should(Exit(0)) 130 131 ctr := podmanTest.Podman([]string{"create", "-v", fmt.Sprintf("%s:/test", volName2), ALPINE, "sh"}) 132 ctr.WaitWithDefaultTimeout() 133 Expect(ctr).Should(Exit(0)) 134 135 lsNoDangling := podmanTest.Podman([]string{"volume", "ls", "--filter", "dangling=false", "--quiet"}) 136 lsNoDangling.WaitWithDefaultTimeout() 137 Expect(lsNoDangling).Should(Exit(0)) 138 Expect(lsNoDangling.OutputToString()).To(ContainSubstring(volName2)) 139 140 lsDangling := podmanTest.Podman([]string{"volume", "ls", "--filter", "dangling=true", "--quiet"}) 141 lsDangling.WaitWithDefaultTimeout() 142 Expect(lsDangling).Should(Exit(0)) 143 Expect(lsDangling.OutputToString()).To(ContainSubstring(volName1)) 144 }) 145 It("podman ls volume with multiple --filter flag", func() { 146 session := podmanTest.Podman([]string{"volume", "create", "--label", "foo=bar", "myvol"}) 147 volName := session.OutputToString() 148 session.WaitWithDefaultTimeout() 149 Expect(session).Should(Exit(0)) 150 151 session = podmanTest.Podman([]string{"volume", "create", "--label", "foo2=bar2", "anothervol"}) 152 anotherVol := session.OutputToString() 153 session.WaitWithDefaultTimeout() 154 Expect(session).Should(Exit(0)) 155 156 session = podmanTest.Podman([]string{"volume", "create"}) 157 session.WaitWithDefaultTimeout() 158 Expect(session).Should(Exit(0)) 159 160 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo", "--filter", "label=foo2"}) 161 session.WaitWithDefaultTimeout() 162 Expect(session).Should(Exit(0)) 163 Expect(len(session.OutputToStringArray())).To(Equal(3)) 164 Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) 165 Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol)) 166 167 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=bar", "--filter", "label=foo2=bar2"}) 168 session.WaitWithDefaultTimeout() 169 Expect(session).Should(Exit(0)) 170 Expect(len(session.OutputToStringArray())).To(Equal(3)) 171 Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) 172 Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol)) 173 }) 174 })