github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/test/e2e/volume_ls_test.go (about) 1 package integration 2 3 import ( 4 "fmt" 5 "os" 6 7 . "github.com/containers/podman/v2/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.ExitCode()).To(Equal(0)) 41 42 session = podmanTest.Podman([]string{"volume", "ls"}) 43 session.WaitWithDefaultTimeout() 44 Expect(session.ExitCode()).To(Equal(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.ExitCode()).To(Equal(0)) 52 53 session = podmanTest.Podman([]string{"volume", "ls", "--format", "json"}) 54 session.WaitWithDefaultTimeout() 55 Expect(session.ExitCode()).To(Equal(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.ExitCode()).To(Equal(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.ExitCode()).To(Equal(0)) 76 77 session = podmanTest.Podman([]string{"volume", "create"}) 78 session.WaitWithDefaultTimeout() 79 Expect(session.ExitCode()).To(Equal(0)) 80 81 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo"}) 82 session.WaitWithDefaultTimeout() 83 Expect(session.ExitCode()).To(Equal(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.ExitCode()).To(Equal(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.ExitCode()).To(Equal(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.ExitCode()).To(Equal(0)) 101 Expect(len(session.OutputToStringArray())).To(Equal(0)) 102 }) 103 104 It("podman volume ls with --filter dangling", func() { 105 volName1 := "volume1" 106 session := podmanTest.Podman([]string{"volume", "create", volName1}) 107 session.WaitWithDefaultTimeout() 108 Expect(session.ExitCode()).To(Equal(0)) 109 110 volName2 := "volume2" 111 session2 := podmanTest.Podman([]string{"volume", "create", volName2}) 112 session2.WaitWithDefaultTimeout() 113 Expect(session2.ExitCode()).To(Equal(0)) 114 115 ctr := podmanTest.Podman([]string{"create", "-v", fmt.Sprintf("%s:/test", volName2), ALPINE, "sh"}) 116 ctr.WaitWithDefaultTimeout() 117 Expect(ctr.ExitCode()).To(Equal(0)) 118 119 lsNoDangling := podmanTest.Podman([]string{"volume", "ls", "--filter", "dangling=false", "--quiet"}) 120 lsNoDangling.WaitWithDefaultTimeout() 121 Expect(lsNoDangling.ExitCode()).To(Equal(0)) 122 Expect(lsNoDangling.OutputToString()).To(ContainSubstring(volName2)) 123 124 lsDangling := podmanTest.Podman([]string{"volume", "ls", "--filter", "dangling=true", "--quiet"}) 125 lsDangling.WaitWithDefaultTimeout() 126 Expect(lsDangling.ExitCode()).To(Equal(0)) 127 Expect(lsDangling.OutputToString()).To(ContainSubstring(volName1)) 128 }) 129 It("podman ls volume with multiple --filter flag", func() { 130 session := podmanTest.Podman([]string{"volume", "create", "--label", "foo=bar", "myvol"}) 131 volName := session.OutputToString() 132 session.WaitWithDefaultTimeout() 133 Expect(session.ExitCode()).To(Equal(0)) 134 135 session = podmanTest.Podman([]string{"volume", "create", "--label", "foo2=bar2", "anothervol"}) 136 anotherVol := session.OutputToString() 137 session.WaitWithDefaultTimeout() 138 Expect(session.ExitCode()).To(Equal(0)) 139 140 session = podmanTest.Podman([]string{"volume", "create"}) 141 session.WaitWithDefaultTimeout() 142 Expect(session.ExitCode()).To(Equal(0)) 143 144 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo", "--filter", "label=foo2"}) 145 session.WaitWithDefaultTimeout() 146 Expect(session.ExitCode()).To(Equal(0)) 147 Expect(len(session.OutputToStringArray())).To(Equal(3)) 148 Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) 149 Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol)) 150 151 session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=bar", "--filter", "label=foo2=bar2"}) 152 session.WaitWithDefaultTimeout() 153 Expect(session.ExitCode()).To(Equal(0)) 154 Expect(len(session.OutputToStringArray())).To(Equal(3)) 155 Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName)) 156 Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol)) 157 }) 158 })