github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/test/e2e/start_test.go (about) 1 package integration 2 3 import ( 4 "os" 5 6 . "github.com/containers/libpod/test/utils" 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/gomega" 9 . "github.com/onsi/gomega/gexec" 10 ) 11 12 var _ = Describe("Podman start", 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 start bogus container", func() { 37 session := podmanTest.Podman([]string{"start", "123"}) 38 session.WaitWithDefaultTimeout() 39 Expect(session.ExitCode()).To(Equal(125)) 40 }) 41 42 It("podman start single container by id", func() { 43 session := podmanTest.Podman([]string{"create", "-d", ALPINE, "ls"}) 44 session.WaitWithDefaultTimeout() 45 Expect(session.ExitCode()).To(Equal(0)) 46 cid := session.OutputToString() 47 session = podmanTest.Podman([]string{"start", cid}) 48 session.WaitWithDefaultTimeout() 49 Expect(session.ExitCode()).To(Equal(0)) 50 }) 51 52 It("podman container start single container by id", func() { 53 session := podmanTest.Podman([]string{"container", "create", "-d", ALPINE, "ls"}) 54 session.WaitWithDefaultTimeout() 55 Expect(session.ExitCode()).To(Equal(0)) 56 cid := session.OutputToString() 57 session = podmanTest.Podman([]string{"container", "start", cid}) 58 session.WaitWithDefaultTimeout() 59 Expect(session.ExitCode()).To(Equal(0)) 60 Expect(session.OutputToString()).To(Equal(cid)) 61 }) 62 63 It("podman container start single container by short id", func() { 64 session := podmanTest.Podman([]string{"container", "create", "-d", ALPINE, "ls"}) 65 session.WaitWithDefaultTimeout() 66 Expect(session.ExitCode()).To(Equal(0)) 67 cid := session.OutputToString() 68 session = podmanTest.Podman([]string{"container", "start", cid[0:10]}) 69 session.WaitWithDefaultTimeout() 70 Expect(session.ExitCode()).To(Equal(0)) 71 Expect(session.OutputToString()).To(Equal(cid)) 72 }) 73 74 It("podman start single container by name", func() { 75 name := "foobar99" 76 session := podmanTest.Podman([]string{"create", "-d", "--name", name, ALPINE, "ls"}) 77 session.WaitWithDefaultTimeout() 78 Expect(session.ExitCode()).To(Equal(0)) 79 session = podmanTest.Podman([]string{"start", name}) 80 session.WaitWithDefaultTimeout() 81 Expect(session.ExitCode()).To(Equal(0)) 82 if podmanTest.RemoteTest { 83 Skip("Container-start name check doesn't work on remote client. It always returns the full ID.") 84 } 85 Expect(session.OutputToString()).To(Equal(name)) 86 }) 87 88 It("podman start multiple containers", func() { 89 session := podmanTest.Podman([]string{"create", "-d", "--name", "foobar99", ALPINE, "ls"}) 90 session.WaitWithDefaultTimeout() 91 cid1 := session.OutputToString() 92 session2 := podmanTest.Podman([]string{"create", "-d", "--name", "foobar100", ALPINE, "ls"}) 93 session2.WaitWithDefaultTimeout() 94 cid2 := session2.OutputToString() 95 session = podmanTest.Podman([]string{"start", cid1, cid2}) 96 session.WaitWithDefaultTimeout() 97 Expect(session.ExitCode()).To(Equal(0)) 98 }) 99 100 It("podman start multiple containers with bogus", func() { 101 session := podmanTest.Podman([]string{"create", "-d", "--name", "foobar99", ALPINE, "ls"}) 102 session.WaitWithDefaultTimeout() 103 cid1 := session.OutputToString() 104 session = podmanTest.Podman([]string{"start", cid1, "doesnotexist"}) 105 session.WaitWithDefaultTimeout() 106 Expect(session.ExitCode()).To(Equal(125)) 107 }) 108 109 It("podman multiple containers -- attach should fail", func() { 110 session := podmanTest.Podman([]string{"create", "--name", "foobar1", ALPINE, "ls"}) 111 session.WaitWithDefaultTimeout() 112 Expect(session.ExitCode()).To(Equal(0)) 113 session = podmanTest.Podman([]string{"create", "--name", "foobar2", ALPINE, "ls"}) 114 session.WaitWithDefaultTimeout() 115 Expect(session.ExitCode()).To(Equal(0)) 116 session = podmanTest.Podman([]string{"start", "-a", "foobar1", "foobar2"}) 117 session.WaitWithDefaultTimeout() 118 Expect(session.ExitCode()).To(Equal(125)) 119 }) 120 121 It("podman failed to start with --rm should delete the container", func() { 122 session := podmanTest.Podman([]string{"create", "-it", "--rm", ALPINE, "foo"}) 123 session.WaitWithDefaultTimeout() 124 Expect(session.ExitCode()).To(Equal(0)) 125 126 start := podmanTest.Podman([]string{"start", "-l"}) 127 start.WaitWithDefaultTimeout() 128 Expect(start).To(ExitWithError()) 129 130 Eventually(podmanTest.NumberOfContainers(), defaultWaitTimeout, 3.0).Should(BeZero()) 131 }) 132 133 It("podman failed to start without --rm should NOT delete the container", func() { 134 session := podmanTest.Podman([]string{"create", "-it", ALPINE, "foo"}) 135 session.WaitWithDefaultTimeout() 136 Expect(session).Should(Exit(0)) 137 138 start := podmanTest.Podman([]string{"start", "-l"}) 139 start.WaitWithDefaultTimeout() 140 Expect(start).To(ExitWithError()) 141 142 Eventually(podmanTest.NumberOfContainers(), defaultWaitTimeout, 3.0).Should(Equal(1)) 143 }) 144 145 It("podman start --sig-proxy should not work without --attach", func() { 146 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 147 session.WaitWithDefaultTimeout() 148 Expect(session).Should(Exit(0)) 149 150 session = podmanTest.Podman([]string{"start", "-l", "--sig-proxy"}) 151 session.WaitWithDefaultTimeout() 152 Expect(session).Should(Exit(125)) 153 }) 154 })