github.com/containers/podman/v5@v5.1.0-rc1/test/e2e/init_test.go (about) 1 package integration 2 3 import ( 4 . "github.com/containers/podman/v5/test/utils" 5 . "github.com/onsi/ginkgo/v2" 6 . "github.com/onsi/gomega" 7 . "github.com/onsi/gomega/gexec" 8 ) 9 10 var _ = Describe("Podman init", func() { 11 12 It("podman init bogus container", func() { 13 session := podmanTest.Podman([]string{"start", "123456"}) 14 session.WaitWithDefaultTimeout() 15 Expect(session).Should(Exit(125)) 16 }) 17 18 It("podman init with no arguments", func() { 19 session := podmanTest.Podman([]string{"start"}) 20 session.WaitWithDefaultTimeout() 21 Expect(session).Should(Exit(125)) 22 }) 23 24 It("podman init single container by ID", func() { 25 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 26 session.WaitWithDefaultTimeout() 27 Expect(session).Should(ExitCleanly()) 28 cid := session.OutputToString() 29 init := podmanTest.Podman([]string{"init", cid}) 30 init.WaitWithDefaultTimeout() 31 Expect(init).Should(ExitCleanly()) 32 Expect(init.OutputToString()).To(Equal(cid)) 33 result := podmanTest.Podman([]string{"inspect", cid}) 34 result.WaitWithDefaultTimeout() 35 Expect(result).Should(ExitCleanly()) 36 conData := result.InspectContainerToJSON() 37 Expect(conData[0].State).To(HaveField("Status", "initialized")) 38 }) 39 40 It("podman init single container by name", func() { 41 name := "test1" 42 session := podmanTest.Podman([]string{"create", "--name", name, ALPINE, "ls"}) 43 session.WaitWithDefaultTimeout() 44 Expect(session).Should(ExitCleanly()) 45 init := podmanTest.Podman([]string{"init", name}) 46 init.WaitWithDefaultTimeout() 47 Expect(init).Should(ExitCleanly()) 48 Expect(init.OutputToString()).To(Equal(name)) 49 result := podmanTest.Podman([]string{"inspect", name}) 50 result.WaitWithDefaultTimeout() 51 Expect(result).Should(ExitCleanly()) 52 conData := result.InspectContainerToJSON() 53 Expect(conData[0].State).To(HaveField("Status", "initialized")) 54 }) 55 56 It("podman init latest container", func() { 57 SkipIfRemote("--latest flag n/a") 58 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 59 session.WaitWithDefaultTimeout() 60 Expect(session).Should(ExitCleanly()) 61 cid := session.OutputToString() 62 init := podmanTest.Podman([]string{"init", "--latest"}) 63 init.WaitWithDefaultTimeout() 64 Expect(init).Should(ExitCleanly()) 65 Expect(init.OutputToString()).To(Equal(cid)) 66 result := podmanTest.Podman([]string{"inspect", "--latest"}) 67 result.WaitWithDefaultTimeout() 68 Expect(result).Should(ExitCleanly()) 69 conData := result.InspectContainerToJSON() 70 Expect(conData[0].State).To(HaveField("Status", "initialized")) 71 }) 72 73 It("podman init all three containers, one running", func() { 74 session := podmanTest.Podman([]string{"create", "--name", "test1", ALPINE, "ls"}) 75 session.WaitWithDefaultTimeout() 76 Expect(session).Should(ExitCleanly()) 77 cid := session.OutputToString() 78 session2 := podmanTest.Podman([]string{"create", "--name", "test2", ALPINE, "ls"}) 79 session2.WaitWithDefaultTimeout() 80 Expect(session2).Should(ExitCleanly()) 81 cid2 := session2.OutputToString() 82 session3 := podmanTest.Podman([]string{"run", "--name", "test3", "-d", ALPINE, "top"}) 83 session3.WaitWithDefaultTimeout() 84 Expect(session3).Should(ExitCleanly()) 85 cid3 := session3.OutputToString() 86 init := podmanTest.Podman([]string{"init", "--all"}) 87 init.WaitWithDefaultTimeout() 88 Expect(init).Should(ExitCleanly()) 89 Expect(init.OutputToString()).To(ContainSubstring(cid)) 90 Expect(init.OutputToString()).To(ContainSubstring(cid2)) 91 Expect(init.OutputToString()).To(ContainSubstring(cid3)) 92 result := podmanTest.Podman([]string{"inspect", "test1"}) 93 result.WaitWithDefaultTimeout() 94 Expect(result).Should(ExitCleanly()) 95 conData := result.InspectContainerToJSON() 96 Expect(conData[0].State).To(HaveField("Status", "initialized")) 97 result2 := podmanTest.Podman([]string{"inspect", "test2"}) 98 result2.WaitWithDefaultTimeout() 99 Expect(result2).Should(ExitCleanly()) 100 conData2 := result2.InspectContainerToJSON() 101 Expect(conData2[0].State).To(HaveField("Status", "initialized")) 102 result3 := podmanTest.Podman([]string{"inspect", "test3"}) 103 result3.WaitWithDefaultTimeout() 104 Expect(result3).Should(ExitCleanly()) 105 conData3 := result3.InspectContainerToJSON() 106 Expect(conData3[0].State).To(HaveField("Status", "running")) 107 }) 108 109 It("podman init running container errors", func() { 110 session := podmanTest.Podman([]string{"run", "--name", "init_test", "-d", ALPINE, "top"}) 111 session.WaitWithDefaultTimeout() 112 Expect(session).Should(ExitCleanly()) 113 init := podmanTest.Podman([]string{"init", "init_test"}) 114 init.WaitWithDefaultTimeout() 115 Expect(init).Should(Exit(125)) 116 }) 117 })