github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/test/e2e/init_test.go (about) 1 package integration 2 3 import ( 4 "os" 5 6 . "github.com/hanks177/podman/v4/test/utils" 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/gomega" 9 . "github.com/onsi/gomega/gexec" 10 ) 11 12 var _ = Describe("Podman init", 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 }) 27 28 AfterEach(func() { 29 podmanTest.Cleanup() 30 f := CurrentGinkgoTestDescription() 31 processTestResult(f) 32 33 }) 34 35 It("podman init bogus container", func() { 36 session := podmanTest.Podman([]string{"start", "123456"}) 37 session.WaitWithDefaultTimeout() 38 Expect(session).Should(Exit(125)) 39 }) 40 41 It("podman init with no arguments", func() { 42 session := podmanTest.Podman([]string{"start"}) 43 session.WaitWithDefaultTimeout() 44 Expect(session).Should(Exit(125)) 45 }) 46 47 It("podman init single container by ID", func() { 48 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 49 session.WaitWithDefaultTimeout() 50 Expect(session).Should(Exit(0)) 51 cid := session.OutputToString() 52 init := podmanTest.Podman([]string{"init", cid}) 53 init.WaitWithDefaultTimeout() 54 Expect(init).Should(Exit(0)) 55 result := podmanTest.Podman([]string{"inspect", cid}) 56 result.WaitWithDefaultTimeout() 57 Expect(result).Should(Exit(0)) 58 conData := result.InspectContainerToJSON() 59 Expect(conData[0].State).To(HaveField("Status", "initialized")) 60 }) 61 62 It("podman init single container by name", func() { 63 name := "test1" 64 session := podmanTest.Podman([]string{"create", "--name", name, ALPINE, "ls"}) 65 session.WaitWithDefaultTimeout() 66 Expect(session).Should(Exit(0)) 67 init := podmanTest.Podman([]string{"init", name}) 68 init.WaitWithDefaultTimeout() 69 Expect(init).Should(Exit(0)) 70 result := podmanTest.Podman([]string{"inspect", name}) 71 result.WaitWithDefaultTimeout() 72 Expect(result).Should(Exit(0)) 73 conData := result.InspectContainerToJSON() 74 Expect(conData[0].State).To(HaveField("Status", "initialized")) 75 }) 76 77 It("podman init latest container", func() { 78 SkipIfRemote("--latest flag n/a") 79 session := podmanTest.Podman([]string{"create", ALPINE, "ls"}) 80 session.WaitWithDefaultTimeout() 81 Expect(session).Should(Exit(0)) 82 init := podmanTest.Podman([]string{"init", "--latest"}) 83 init.WaitWithDefaultTimeout() 84 Expect(init).Should(Exit(0)) 85 result := podmanTest.Podman([]string{"inspect", "--latest"}) 86 result.WaitWithDefaultTimeout() 87 Expect(result).Should(Exit(0)) 88 conData := result.InspectContainerToJSON() 89 Expect(conData[0].State).To(HaveField("Status", "initialized")) 90 }) 91 92 It("podman init all three containers, one running", func() { 93 session := podmanTest.Podman([]string{"create", "--name", "test1", ALPINE, "ls"}) 94 session.WaitWithDefaultTimeout() 95 Expect(session).Should(Exit(0)) 96 session2 := podmanTest.Podman([]string{"create", "--name", "test2", ALPINE, "ls"}) 97 session2.WaitWithDefaultTimeout() 98 Expect(session2).Should(Exit(0)) 99 session3 := podmanTest.Podman([]string{"run", "--name", "test3", "-d", ALPINE, "top"}) 100 session3.WaitWithDefaultTimeout() 101 Expect(session3).Should(Exit(0)) 102 init := podmanTest.Podman([]string{"init", "--all"}) 103 init.WaitWithDefaultTimeout() 104 Expect(init).Should(Exit(0)) 105 result := podmanTest.Podman([]string{"inspect", "test1"}) 106 result.WaitWithDefaultTimeout() 107 Expect(result).Should(Exit(0)) 108 conData := result.InspectContainerToJSON() 109 Expect(conData[0].State).To(HaveField("Status", "initialized")) 110 result2 := podmanTest.Podman([]string{"inspect", "test2"}) 111 result2.WaitWithDefaultTimeout() 112 Expect(result2).Should(Exit(0)) 113 conData2 := result2.InspectContainerToJSON() 114 Expect(conData2[0].State).To(HaveField("Status", "initialized")) 115 result3 := podmanTest.Podman([]string{"inspect", "test3"}) 116 result3.WaitWithDefaultTimeout() 117 Expect(result3).Should(Exit(0)) 118 conData3 := result3.InspectContainerToJSON() 119 Expect(conData3[0].State).To(HaveField("Status", "running")) 120 }) 121 122 It("podman init running container errors", func() { 123 session := podmanTest.Podman([]string{"run", "--name", "init_test", "-d", ALPINE, "top"}) 124 session.WaitWithDefaultTimeout() 125 Expect(session).Should(Exit(0)) 126 init := podmanTest.Podman([]string{"init", "init_test"}) 127 init.WaitWithDefaultTimeout() 128 Expect(init).Should(Exit(125)) 129 }) 130 })