github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/test/e2e/rm_test.go (about) 1 package integration 2 3 import ( 4 "io/ioutil" 5 "os" 6 7 . "github.com/containers/podman/v2/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("test1") 131 Expect(ec).To(Equal(0)) 132 133 latest := "-l" 134 if IsRemote() { 135 latest = "test1" 136 } 137 result := podmanTest.Podman([]string{"rm", latest}) 138 result.WaitWithDefaultTimeout() 139 Expect(result.ExitCode()).To(Equal(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.ExitCode()).To(Equal(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.ExitCode()).To(Equal(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.ExitCode()).To(Equal(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.ExitCode()).To(Equal(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.ExitCode()).To(Equal(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.ExitCode()).To(Equal(125)) 204 205 result = podmanTest.Podman([]string{"rm", "--cidfile", "foobar", "--all"}) 206 result.WaitWithDefaultTimeout() 207 Expect(result.ExitCode()).To(Equal(125)) 208 209 result = podmanTest.Podman([]string{"rm", "--cidfile", "foobar", "--all", "--latest"}) 210 result.WaitWithDefaultTimeout() 211 Expect(result.ExitCode()).To(Equal(125)) 212 213 result = podmanTest.Podman([]string{"rm", "--latest", "--all"}) 214 result.WaitWithDefaultTimeout() 215 Expect(result.ExitCode()).To(Equal(125)) 216 }) 217 218 It("podman rm bogus container", func() { 219 session := podmanTest.Podman([]string{"rm", "bogus"}) 220 session.WaitWithDefaultTimeout() 221 Expect(session.ExitCode()).To(Equal(1)) 222 }) 223 224 It("podman rm bogus container and a running container", func() { 225 session := podmanTest.RunTopContainer("test1") 226 session.WaitWithDefaultTimeout() 227 Expect(session.ExitCode()).To(Equal(0)) 228 229 session = podmanTest.Podman([]string{"rm", "bogus", "test1"}) 230 session.WaitWithDefaultTimeout() 231 Expect(session.ExitCode()).To(Equal(1)) 232 233 session = podmanTest.Podman([]string{"rm", "test1", "bogus"}) 234 session.WaitWithDefaultTimeout() 235 Expect(session.ExitCode()).To(Equal(1)) 236 }) 237 238 It("podman rm --ignore bogus container and a running container", func() { 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 })