github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/test/e2e/mount_test.go (about) 1 // +build !remoteclient 2 3 package integration 4 5 import ( 6 "os" 7 8 . "github.com/containers/libpod/test/utils" 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 ) 12 13 var _ = Describe("Podman mount", 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.Cleanup() 32 f := CurrentGinkgoTestDescription() 33 processTestResult(f) 34 35 }) 36 37 It("podman mount", func() { 38 setup := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 39 setup.WaitWithDefaultTimeout() 40 Expect(setup.ExitCode()).To(Equal(0)) 41 cid := setup.OutputToString() 42 43 mount := podmanTest.Podman([]string{"mount", cid}) 44 mount.WaitWithDefaultTimeout() 45 Expect(mount.ExitCode()).To(Equal(0)) 46 47 umount := podmanTest.Podman([]string{"umount", cid}) 48 umount.WaitWithDefaultTimeout() 49 Expect(umount.ExitCode()).To(Equal(0)) 50 }) 51 52 It("podman container mount", func() { 53 setup := podmanTest.Podman([]string{"container", "create", ALPINE, "ls"}) 54 setup.WaitWithDefaultTimeout() 55 Expect(setup.ExitCode()).To(Equal(0)) 56 cid := setup.OutputToString() 57 58 mount := podmanTest.Podman([]string{"container", "mount", cid}) 59 mount.WaitWithDefaultTimeout() 60 Expect(mount.ExitCode()).To(Equal(0)) 61 62 umount := podmanTest.Podman([]string{"container", "umount", cid}) 63 umount.WaitWithDefaultTimeout() 64 Expect(umount.ExitCode()).To(Equal(0)) 65 }) 66 67 It("podman mount with json format", func() { 68 setup := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 69 setup.WaitWithDefaultTimeout() 70 Expect(setup.ExitCode()).To(Equal(0)) 71 cid := setup.OutputToString() 72 73 mount := podmanTest.Podman([]string{"mount", cid}) 74 mount.WaitWithDefaultTimeout() 75 Expect(mount.ExitCode()).To(Equal(0)) 76 77 j := podmanTest.Podman([]string{"mount", "--format=json"}) 78 j.WaitWithDefaultTimeout() 79 Expect(j.ExitCode()).To(Equal(0)) 80 Expect(j.IsJSONOutputValid()).To(BeTrue()) 81 82 umount := podmanTest.Podman([]string{"umount", cid}) 83 umount.WaitWithDefaultTimeout() 84 Expect(umount.ExitCode()).To(Equal(0)) 85 }) 86 87 It("podman mount many", func() { 88 setup1 := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 89 setup1.WaitWithDefaultTimeout() 90 Expect(setup1.ExitCode()).To(Equal(0)) 91 cid1 := setup1.OutputToString() 92 93 setup2 := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 94 setup2.WaitWithDefaultTimeout() 95 Expect(setup2.ExitCode()).To(Equal(0)) 96 cid2 := setup2.OutputToString() 97 98 setup3 := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 99 setup3.WaitWithDefaultTimeout() 100 Expect(setup3.ExitCode()).To(Equal(0)) 101 cid3 := setup3.OutputToString() 102 103 mount1 := podmanTest.Podman([]string{"mount", cid1, cid2, cid3}) 104 mount1.WaitWithDefaultTimeout() 105 Expect(mount1.ExitCode()).To(Equal(0)) 106 107 umount := podmanTest.Podman([]string{"umount", cid1, cid2, cid3}) 108 umount.WaitWithDefaultTimeout() 109 Expect(umount.ExitCode()).To(Equal(0)) 110 }) 111 112 It("podman umount many", func() { 113 setup1 := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 114 setup1.WaitWithDefaultTimeout() 115 Expect(setup1.ExitCode()).To(Equal(0)) 116 cid1 := setup1.OutputToString() 117 118 setup2 := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 119 setup2.WaitWithDefaultTimeout() 120 Expect(setup2.ExitCode()).To(Equal(0)) 121 cid2 := setup2.OutputToString() 122 123 mount1 := podmanTest.Podman([]string{"mount", cid1}) 124 mount1.WaitWithDefaultTimeout() 125 Expect(mount1.ExitCode()).To(Equal(0)) 126 127 mount2 := podmanTest.Podman([]string{"mount", cid2}) 128 mount2.WaitWithDefaultTimeout() 129 Expect(mount2.ExitCode()).To(Equal(0)) 130 131 umount := podmanTest.Podman([]string{"umount", cid1, cid2}) 132 umount.WaitWithDefaultTimeout() 133 Expect(umount.ExitCode()).To(Equal(0)) 134 }) 135 136 It("podman umount all", func() { 137 setup1 := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 138 setup1.WaitWithDefaultTimeout() 139 Expect(setup1.ExitCode()).To(Equal(0)) 140 cid1 := setup1.OutputToString() 141 142 setup2 := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 143 setup2.WaitWithDefaultTimeout() 144 Expect(setup2.ExitCode()).To(Equal(0)) 145 cid2 := setup2.OutputToString() 146 147 mount1 := podmanTest.Podman([]string{"mount", cid1}) 148 mount1.WaitWithDefaultTimeout() 149 Expect(mount1.ExitCode()).To(Equal(0)) 150 151 mount2 := podmanTest.Podman([]string{"mount", cid2}) 152 mount2.WaitWithDefaultTimeout() 153 Expect(mount2.ExitCode()).To(Equal(0)) 154 155 umount := podmanTest.Podman([]string{"umount", "--all"}) 156 umount.WaitWithDefaultTimeout() 157 Expect(umount.ExitCode()).To(Equal(0)) 158 }) 159 160 It("podman list mounted container", func() { 161 setup := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 162 setup.WaitWithDefaultTimeout() 163 Expect(setup.ExitCode()).To(Equal(0)) 164 cid := setup.OutputToString() 165 166 lmount := podmanTest.Podman([]string{"mount", "--notruncate"}) 167 lmount.WaitWithDefaultTimeout() 168 Expect(lmount.ExitCode()).To(Equal(0)) 169 Expect(lmount.OutputToString()).To(Equal("")) 170 171 mount := podmanTest.Podman([]string{"mount", cid}) 172 mount.WaitWithDefaultTimeout() 173 Expect(mount.ExitCode()).To(Equal(0)) 174 175 lmount = podmanTest.Podman([]string{"mount", "--notruncate"}) 176 lmount.WaitWithDefaultTimeout() 177 Expect(lmount.ExitCode()).To(Equal(0)) 178 Expect(lmount.OutputToString()).To(ContainSubstring(cid)) 179 180 umount := podmanTest.Podman([]string{"umount", cid}) 181 umount.WaitWithDefaultTimeout() 182 Expect(umount.ExitCode()).To(Equal(0)) 183 }) 184 185 It("podman list running container", func() { 186 SkipIfRootless() 187 188 setup := podmanTest.Podman([]string{"run", "-dt", ALPINE, "top"}) 189 setup.WaitWithDefaultTimeout() 190 Expect(setup.ExitCode()).To(Equal(0)) 191 cid := setup.OutputToString() 192 193 lmount := podmanTest.Podman([]string{"mount", "--notruncate"}) 194 lmount.WaitWithDefaultTimeout() 195 Expect(lmount.ExitCode()).To(Equal(0)) 196 Expect(lmount.OutputToString()).To(ContainSubstring(cid)) 197 198 stop := podmanTest.Podman([]string{"stop", cid}) 199 stop.WaitWithDefaultTimeout() 200 Expect(stop.ExitCode()).To(Equal(0)) 201 202 lmount = podmanTest.Podman([]string{"mount", "--notruncate"}) 203 lmount.WaitWithDefaultTimeout() 204 Expect(lmount.ExitCode()).To(Equal(0)) 205 Expect(lmount.OutputToString()).To(Equal("")) 206 }) 207 208 It("podman list multiple mounted containers", func() { 209 SkipIfRootless() 210 211 setup := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 212 setup.WaitWithDefaultTimeout() 213 Expect(setup.ExitCode()).To(Equal(0)) 214 cid1 := setup.OutputToString() 215 216 setup = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 217 setup.WaitWithDefaultTimeout() 218 Expect(setup.ExitCode()).To(Equal(0)) 219 cid2 := setup.OutputToString() 220 221 setup = podmanTest.Podman([]string{"create", ALPINE, "ls"}) 222 setup.WaitWithDefaultTimeout() 223 Expect(setup.ExitCode()).To(Equal(0)) 224 cid3 := setup.OutputToString() 225 226 lmount := podmanTest.Podman([]string{"mount", "--notruncate"}) 227 lmount.WaitWithDefaultTimeout() 228 Expect(lmount.ExitCode()).To(Equal(0)) 229 Expect(lmount.OutputToString()).To(Equal("")) 230 231 mount := podmanTest.Podman([]string{"mount", cid1, cid3}) 232 mount.WaitWithDefaultTimeout() 233 Expect(mount.ExitCode()).To(Equal(0)) 234 235 lmount = podmanTest.Podman([]string{"mount", "--notruncate"}) 236 lmount.WaitWithDefaultTimeout() 237 Expect(lmount.ExitCode()).To(Equal(0)) 238 Expect(lmount.OutputToString()).To(ContainSubstring(cid1)) 239 Expect(lmount.OutputToString()).ToNot(ContainSubstring(cid2)) 240 Expect(lmount.OutputToString()).To(ContainSubstring(cid3)) 241 242 umount := podmanTest.Podman([]string{"umount", cid1, cid3}) 243 umount.WaitWithDefaultTimeout() 244 Expect(umount.ExitCode()).To(Equal(0)) 245 246 lmount = podmanTest.Podman([]string{"mount", "--notruncate"}) 247 lmount.WaitWithDefaultTimeout() 248 Expect(lmount.ExitCode()).To(Equal(0)) 249 Expect(lmount.OutputToString()).To(Equal("")) 250 251 }) 252 253 It("podman list mounted container", func() { 254 SkipIfRootless() 255 256 setup := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 257 setup.WaitWithDefaultTimeout() 258 Expect(setup.ExitCode()).To(Equal(0)) 259 cid := setup.OutputToString() 260 261 lmount := podmanTest.Podman([]string{"mount", "--notruncate"}) 262 lmount.WaitWithDefaultTimeout() 263 Expect(lmount.ExitCode()).To(Equal(0)) 264 Expect(lmount.OutputToString()).To(Equal("")) 265 266 mount := podmanTest.Podman([]string{"mount", cid}) 267 mount.WaitWithDefaultTimeout() 268 Expect(mount.ExitCode()).To(Equal(0)) 269 270 lmount = podmanTest.Podman([]string{"mount", "--notruncate"}) 271 lmount.WaitWithDefaultTimeout() 272 Expect(lmount.ExitCode()).To(Equal(0)) 273 Expect(lmount.OutputToString()).To(ContainSubstring(cid)) 274 275 umount := podmanTest.Podman([]string{"umount", cid}) 276 umount.WaitWithDefaultTimeout() 277 Expect(umount.ExitCode()).To(Equal(0)) 278 }) 279 })