github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/test/e2e/rm_test.go (about) 1 package integration 2 3 import ( 4 "io/ioutil" 5 "os" 6 7 . "github.com/containers/libpod/test/utils" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("Podman rm", func() { 13 var ( 14 tempdir string 15 err error 16 podmanTest *PodmanTestIntegration 17 ) 18 19 BeforeEach(func() { 20 tempdir, err = CreateTempDirInTempDir() 21 if err != nil { 22 os.Exit(1) 23 } 24 podmanTest = PodmanTestCreate(tempdir) 25 podmanTest.Setup() 26 podmanTest.SeedImages() 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.ExitCode()).To(Equal(0)) 43 }) 44 45 It("podman rm refuse to remove a running container", func() { 46 session := podmanTest.RunTopContainer("") 47 session.WaitWithDefaultTimeout() 48 Expect(session.ExitCode()).To(Equal(0)) 49 cid := session.OutputToString() 50 51 result := podmanTest.Podman([]string{"rm", cid}) 52 result.WaitWithDefaultTimeout() 53 Expect(result.ExitCode()).To(Equal(2)) 54 }) 55 56 It("podman rm created container", func() { 57 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 58 session.WaitWithDefaultTimeout() 59 Expect(session.ExitCode()).To(Equal(0)) 60 cid := session.OutputToString() 61 62 result := podmanTest.Podman([]string{"rm", cid}) 63 result.WaitWithDefaultTimeout() 64 Expect(result.ExitCode()).To(Equal(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.ExitCode()).To(Equal(0)) 71 cid := session.OutputToString() 72 73 result := podmanTest.Podman([]string{"container", "rm", cid}) 74 result.WaitWithDefaultTimeout() 75 Expect(result.ExitCode()).To(Equal(0)) 76 }) 77 78 It("podman rm running container with -f", func() { 79 session := podmanTest.RunTopContainer("") 80 session.WaitWithDefaultTimeout() 81 Expect(session.ExitCode()).To(Equal(0)) 82 cid := session.OutputToString() 83 84 result := podmanTest.Podman([]string{"rm", "-f", cid}) 85 result.WaitWithDefaultTimeout() 86 Expect(result.ExitCode()).To(Equal(0)) 87 }) 88 89 It("podman rm all containers", func() { 90 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 91 session.WaitWithDefaultTimeout() 92 Expect(session.ExitCode()).To(Equal(0)) 93 94 session = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 95 session.WaitWithDefaultTimeout() 96 Expect(session.ExitCode()).To(Equal(0)) 97 98 session = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 99 session.WaitWithDefaultTimeout() 100 Expect(session.ExitCode()).To(Equal(0)) 101 102 result := podmanTest.Podman([]string{"rm", "-a"}) 103 result.WaitWithDefaultTimeout() 104 Expect(result.ExitCode()).To(Equal(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.ExitCode()).To(Equal(0)) 111 112 session = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 113 session.WaitWithDefaultTimeout() 114 Expect(session.ExitCode()).To(Equal(0)) 115 116 session = podmanTest.RunTopContainer("") 117 session.WaitWithDefaultTimeout() 118 Expect(session.ExitCode()).To(Equal(0)) 119 120 result := podmanTest.Podman([]string{"rm", "-af"}) 121 result.WaitWithDefaultTimeout() 122 Expect(result.ExitCode()).To(Equal(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.ExitCode()).To(Equal(0)) 129 130 _, ec, cid := podmanTest.RunLsContainer("") 131 Expect(ec).To(Equal(0)) 132 133 result := podmanTest.Podman([]string{"rm", "-l"}) 134 result.WaitWithDefaultTimeout() 135 Expect(result.ExitCode()).To(Equal(0)) 136 output := result.OutputToString() 137 Expect(output).To(ContainSubstring(cid)) 138 Expect(podmanTest.NumberOfContainers()).To(Equal(1)) 139 140 }) 141 142 It("podman rm --cidfile", func() { 143 SkipIfRemote() 144 145 tmpDir, err := ioutil.TempDir("", "") 146 Expect(err).To(BeNil()) 147 tmpFile := tmpDir + "cid" 148 149 defer os.RemoveAll(tmpDir) 150 151 session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile, ALPINE, "ls"}) 152 session.WaitWithDefaultTimeout() 153 Expect(session.ExitCode()).To(Equal(0)) 154 cid := session.OutputToStringArray()[0] 155 Expect(podmanTest.NumberOfContainers()).To(Equal(1)) 156 157 result := podmanTest.Podman([]string{"rm", "--cidfile", tmpFile}) 158 result.WaitWithDefaultTimeout() 159 Expect(result.ExitCode()).To(Equal(0)) 160 output := result.OutputToString() 161 Expect(output).To(ContainSubstring(cid)) 162 Expect(podmanTest.NumberOfContainers()).To(Equal(0)) 163 }) 164 165 It("podman rm multiple --cidfile", func() { 166 SkipIfRemote() 167 168 tmpDir, err := ioutil.TempDir("", "") 169 Expect(err).To(BeNil()) 170 tmpFile1 := tmpDir + "cid-1" 171 tmpFile2 := tmpDir + "cid-2" 172 173 defer os.RemoveAll(tmpDir) 174 175 session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile1, ALPINE, "ls"}) 176 session.WaitWithDefaultTimeout() 177 Expect(session.ExitCode()).To(Equal(0)) 178 cid1 := session.OutputToStringArray()[0] 179 Expect(podmanTest.NumberOfContainers()).To(Equal(1)) 180 181 session = podmanTest.Podman([]string{"create", "--cidfile", tmpFile2, ALPINE, "ls"}) 182 session.WaitWithDefaultTimeout() 183 Expect(session.ExitCode()).To(Equal(0)) 184 cid2 := session.OutputToStringArray()[0] 185 Expect(podmanTest.NumberOfContainers()).To(Equal(2)) 186 187 result := podmanTest.Podman([]string{"rm", "--cidfile", tmpFile1, "--cidfile", tmpFile2}) 188 result.WaitWithDefaultTimeout() 189 Expect(result.ExitCode()).To(Equal(0)) 190 output := result.OutputToString() 191 Expect(output).To(ContainSubstring(cid1)) 192 Expect(output).To(ContainSubstring(cid2)) 193 Expect(podmanTest.NumberOfContainers()).To(Equal(0)) 194 }) 195 196 It("podman rm invalid --latest and --cidfile and --all", func() { 197 SkipIfRemote() 198 199 result := podmanTest.Podman([]string{"rm", "--cidfile", "foobar", "--latest"}) 200 result.WaitWithDefaultTimeout() 201 Expect(result.ExitCode()).To(Equal(125)) 202 203 result = podmanTest.Podman([]string{"rm", "--cidfile", "foobar", "--all"}) 204 result.WaitWithDefaultTimeout() 205 Expect(result.ExitCode()).To(Equal(125)) 206 207 result = podmanTest.Podman([]string{"rm", "--cidfile", "foobar", "--all", "--latest"}) 208 result.WaitWithDefaultTimeout() 209 Expect(result.ExitCode()).To(Equal(125)) 210 211 result = podmanTest.Podman([]string{"rm", "--latest", "--all"}) 212 result.WaitWithDefaultTimeout() 213 Expect(result.ExitCode()).To(Equal(125)) 214 }) 215 216 It("podman rm bogus container", func() { 217 session := podmanTest.Podman([]string{"rm", "bogus"}) 218 session.WaitWithDefaultTimeout() 219 Expect(session.ExitCode()).To(Equal(1)) 220 }) 221 222 It("podman rm bogus container and a running container", func() { 223 session := podmanTest.RunTopContainer("test1") 224 session.WaitWithDefaultTimeout() 225 Expect(session.ExitCode()).To(Equal(0)) 226 227 session = podmanTest.Podman([]string{"rm", "bogus", "test1"}) 228 session.WaitWithDefaultTimeout() 229 Expect(session.ExitCode()).To(Equal(125)) 230 231 session = podmanTest.Podman([]string{"rm", "test1", "bogus"}) 232 session.WaitWithDefaultTimeout() 233 Expect(session.ExitCode()).To(Equal(125)) 234 }) 235 236 It("podman rm --ignore bogus container and a running container", func() { 237 SkipIfRemote() 238 239 session := podmanTest.RunTopContainer("test1") 240 session.WaitWithDefaultTimeout() 241 Expect(session.ExitCode()).To(Equal(0)) 242 243 session = podmanTest.Podman([]string{"rm", "--force", "--ignore", "bogus", "test1"}) 244 session.WaitWithDefaultTimeout() 245 Expect(session.ExitCode()).To(Equal(0)) 246 247 session = podmanTest.Podman([]string{"rm", "--ignore", "test1", "bogus"}) 248 session.WaitWithDefaultTimeout() 249 Expect(session.ExitCode()).To(Equal(0)) 250 }) 251 })