github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/test/e2e/rm_test.go (about) 1 package integration 2 3 import ( 4 "io/ioutil" 5 "os" 6 7 . "github.com/hanks177/podman/v4/test/utils" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 . "github.com/onsi/gomega/gexec" 11 ) 12 13 var _ = Describe("Podman rm", 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 }) 28 29 AfterEach(func() { 30 podmanTest.Cleanup() 31 f := CurrentGinkgoTestDescription() 32 processTestResult(f) 33 34 }) 35 36 It("podman rm stopped container", func() { 37 _, ec, cid := podmanTest.RunLsContainer("") 38 Expect(ec).To(Equal(0)) 39 40 result := podmanTest.Podman([]string{"rm", cid}) 41 result.WaitWithDefaultTimeout() 42 Expect(result).Should(Exit(0)) 43 }) 44 45 It("podman rm refuse to remove a running container", func() { 46 session := podmanTest.RunTopContainer("") 47 session.WaitWithDefaultTimeout() 48 Expect(session).Should(Exit(0)) 49 cid := session.OutputToString() 50 51 result := podmanTest.Podman([]string{"rm", cid}) 52 result.WaitWithDefaultTimeout() 53 Expect(result).Should(Exit(2)) 54 }) 55 56 It("podman rm created container", func() { 57 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 58 session.WaitWithDefaultTimeout() 59 Expect(session).Should(Exit(0)) 60 cid := session.OutputToString() 61 62 result := podmanTest.Podman([]string{"rm", cid}) 63 result.WaitWithDefaultTimeout() 64 Expect(result).Should(Exit(0)) 65 }) 66 67 It("podman container rm created container", func() { 68 session := podmanTest.Podman([]string{"container", "create", ALPINE, "ls"}) 69 session.WaitWithDefaultTimeout() 70 Expect(session).Should(Exit(0)) 71 cid := session.OutputToString() 72 73 result := podmanTest.Podman([]string{"container", "rm", cid}) 74 result.WaitWithDefaultTimeout() 75 Expect(result).Should(Exit(0)) 76 }) 77 78 It("podman rm running container with -f", func() { 79 session := podmanTest.RunTopContainer("") 80 session.WaitWithDefaultTimeout() 81 Expect(session).Should(Exit(0)) 82 cid := session.OutputToString() 83 84 result := podmanTest.Podman([]string{"rm", "-t", "0", "-f", cid}) 85 result.WaitWithDefaultTimeout() 86 Expect(result).Should(Exit(0)) 87 }) 88 89 It("podman rm all containers", func() { 90 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 91 session.WaitWithDefaultTimeout() 92 Expect(session).Should(Exit(0)) 93 94 session = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 95 session.WaitWithDefaultTimeout() 96 Expect(session).Should(Exit(0)) 97 98 session = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 99 session.WaitWithDefaultTimeout() 100 Expect(session).Should(Exit(0)) 101 102 result := podmanTest.Podman([]string{"rm", "-a"}) 103 result.WaitWithDefaultTimeout() 104 Expect(result).Should(Exit(0)) 105 }) 106 107 It("podman rm all containers with one running and short options", func() { 108 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 109 session.WaitWithDefaultTimeout() 110 Expect(session).Should(Exit(0)) 111 112 session = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 113 session.WaitWithDefaultTimeout() 114 Expect(session).Should(Exit(0)) 115 116 session = podmanTest.RunTopContainer("") 117 session.WaitWithDefaultTimeout() 118 Expect(session).Should(Exit(0)) 119 120 result := podmanTest.Podman([]string{"rm", "-af"}) 121 result.WaitWithDefaultTimeout() 122 Expect(result).Should(Exit(0)) 123 }) 124 125 It("podman rm the latest container", func() { 126 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 127 session.WaitWithDefaultTimeout() 128 Expect(session).Should(Exit(0)) 129 130 _, ec, cid := podmanTest.RunLsContainer("test1") 131 Expect(ec).To(Equal(0)) 132 133 latest := "-l" 134 if IsRemote() { 135 latest = cid 136 } 137 result := podmanTest.Podman([]string{"rm", latest}) 138 result.WaitWithDefaultTimeout() 139 Expect(result).Should(Exit(0)) 140 output := result.OutputToString() 141 Expect(output).To(ContainSubstring(cid)) 142 Expect(podmanTest.NumberOfContainers()).To(Equal(1)) 143 144 }) 145 146 It("podman rm --cidfile", func() { 147 148 tmpDir, err := ioutil.TempDir("", "") 149 Expect(err).To(BeNil()) 150 tmpFile := tmpDir + "cid" 151 152 defer os.RemoveAll(tmpDir) 153 154 session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile, ALPINE, "ls"}) 155 session.WaitWithDefaultTimeout() 156 Expect(session).Should(Exit(0)) 157 cid := session.OutputToStringArray()[0] 158 Expect(podmanTest.NumberOfContainers()).To(Equal(1)) 159 160 result := podmanTest.Podman([]string{"rm", "--cidfile", tmpFile}) 161 result.WaitWithDefaultTimeout() 162 Expect(result).Should(Exit(0)) 163 output := result.OutputToString() 164 Expect(output).To(ContainSubstring(cid)) 165 Expect(podmanTest.NumberOfContainers()).To(Equal(0)) 166 }) 167 168 It("podman rm multiple --cidfile", func() { 169 170 tmpDir, err := ioutil.TempDir("", "") 171 Expect(err).To(BeNil()) 172 tmpFile1 := tmpDir + "cid-1" 173 tmpFile2 := tmpDir + "cid-2" 174 175 defer os.RemoveAll(tmpDir) 176 177 session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile1, ALPINE, "ls"}) 178 session.WaitWithDefaultTimeout() 179 Expect(session).Should(Exit(0)) 180 cid1 := session.OutputToStringArray()[0] 181 Expect(podmanTest.NumberOfContainers()).To(Equal(1)) 182 183 session = podmanTest.Podman([]string{"create", "--cidfile", tmpFile2, ALPINE, "ls"}) 184 session.WaitWithDefaultTimeout() 185 Expect(session).Should(Exit(0)) 186 cid2 := session.OutputToStringArray()[0] 187 Expect(podmanTest.NumberOfContainers()).To(Equal(2)) 188 189 result := podmanTest.Podman([]string{"rm", "--cidfile", tmpFile1, "--cidfile", tmpFile2}) 190 result.WaitWithDefaultTimeout() 191 Expect(result).Should(Exit(0)) 192 output := result.OutputToString() 193 Expect(output).To(ContainSubstring(cid1)) 194 Expect(output).To(ContainSubstring(cid2)) 195 Expect(podmanTest.NumberOfContainers()).To(Equal(0)) 196 }) 197 198 It("podman rm invalid --latest and --cidfile and --all", func() { 199 SkipIfRemote("Verifying --latest flag") 200 201 result := podmanTest.Podman([]string{"rm", "--cidfile", "foobar", "--latest"}) 202 result.WaitWithDefaultTimeout() 203 Expect(result).Should(Exit(125)) 204 205 result = podmanTest.Podman([]string{"rm", "--cidfile", "foobar", "--all"}) 206 result.WaitWithDefaultTimeout() 207 Expect(result).Should(Exit(125)) 208 209 result = podmanTest.Podman([]string{"rm", "--cidfile", "foobar", "--all", "--latest"}) 210 result.WaitWithDefaultTimeout() 211 Expect(result).Should(Exit(125)) 212 213 result = podmanTest.Podman([]string{"rm", "--latest", "--all"}) 214 result.WaitWithDefaultTimeout() 215 Expect(result).Should(Exit(125)) 216 }) 217 218 It("podman rm --all", func() { 219 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 220 session.WaitWithDefaultTimeout() 221 Expect(session).Should(Exit(0)) 222 Expect(podmanTest.NumberOfContainers()).To(Equal(1)) 223 224 session = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 225 session.WaitWithDefaultTimeout() 226 Expect(session).Should(Exit(0)) 227 Expect(podmanTest.NumberOfContainers()).To(Equal(2)) 228 229 session = podmanTest.Podman([]string{"rm", "--all"}) 230 session.WaitWithDefaultTimeout() 231 Expect(session).Should(Exit(0)) 232 Expect(podmanTest.NumberOfContainers()).To(Equal(0)) 233 }) 234 235 It("podman rm --ignore", func() { 236 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 237 session.WaitWithDefaultTimeout() 238 Expect(session).Should(Exit(0)) 239 cid := session.OutputToStringArray()[0] 240 Expect(podmanTest.NumberOfContainers()).To(Equal(1)) 241 242 session = podmanTest.Podman([]string{"rm", "bogus", cid}) 243 session.WaitWithDefaultTimeout() 244 Expect(session).Should(Exit(1)) 245 246 session = podmanTest.Podman([]string{"rm", "--ignore", "bogus", cid}) 247 session.WaitWithDefaultTimeout() 248 Expect(session).Should(Exit(0)) 249 Expect(podmanTest.NumberOfContainers()).To(Equal(0)) 250 }) 251 252 It("podman rm bogus container", func() { 253 session := podmanTest.Podman([]string{"rm", "bogus"}) 254 session.WaitWithDefaultTimeout() 255 Expect(session).Should(Exit(1)) 256 }) 257 258 It("podman rm bogus container and a running container", func() { 259 session := podmanTest.RunTopContainer("test1") 260 session.WaitWithDefaultTimeout() 261 Expect(session).Should(Exit(0)) 262 263 session = podmanTest.Podman([]string{"rm", "bogus", "test1"}) 264 session.WaitWithDefaultTimeout() 265 Expect(session).Should(Exit(1)) 266 267 session = podmanTest.Podman([]string{"rm", "test1", "bogus"}) 268 session.WaitWithDefaultTimeout() 269 Expect(session).Should(Exit(1)) 270 }) 271 272 It("podman rm --ignore bogus container and a running container", func() { 273 session := podmanTest.RunTopContainer("test1") 274 session.WaitWithDefaultTimeout() 275 Expect(session).Should(Exit(0)) 276 277 session = podmanTest.Podman([]string{"rm", "-t", "0", "--force", "--ignore", "bogus", "test1"}) 278 session.WaitWithDefaultTimeout() 279 Expect(session).Should(Exit(0)) 280 281 session = podmanTest.Podman([]string{"rm", "--ignore", "test1", "bogus"}) 282 session.WaitWithDefaultTimeout() 283 Expect(session).Should(Exit(0)) 284 }) 285 })