github.com/containers/podman/v4@v4.9.4/test/e2e/init_test.go (about)

     1  package integration
     2  
     3  import (
     4  	. "github.com/containers/podman/v4/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  })