github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/test/e2e/init_test.go (about)

     1  package integration
     2  
     3  import (
     4  	"os"
     5  
     6  	. "github.com/containers/podman/v2/test/utils"
     7  	. "github.com/onsi/ginkgo"
     8  	. "github.com/onsi/gomega"
     9  )
    10  
    11  var _ = Describe("Podman init", func() {
    12  	var (
    13  		tempdir    string
    14  		err        error
    15  		podmanTest *PodmanTestIntegration
    16  	)
    17  
    18  	BeforeEach(func() {
    19  		tempdir, err = CreateTempDirInTempDir()
    20  		if err != nil {
    21  			os.Exit(1)
    22  		}
    23  		podmanTest = PodmanTestCreate(tempdir)
    24  		podmanTest.Setup()
    25  		podmanTest.SeedImages()
    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.ExitCode()).To(Equal(125))
    39  	})
    40  
    41  	It("podman init with no arguments", func() {
    42  		session := podmanTest.Podman([]string{"start"})
    43  		session.WaitWithDefaultTimeout()
    44  		Expect(session.ExitCode()).To(Equal(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.ExitCode()).To(Equal(0))
    51  		cid := session.OutputToString()
    52  		init := podmanTest.Podman([]string{"init", cid})
    53  		init.WaitWithDefaultTimeout()
    54  		Expect(init.ExitCode()).To(Equal(0))
    55  		result := podmanTest.Podman([]string{"inspect", cid})
    56  		result.WaitWithDefaultTimeout()
    57  		Expect(result.ExitCode()).To(Equal(0))
    58  		conData := result.InspectContainerToJSON()
    59  		Expect(conData[0].State.Status).To(Equal("created"))
    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.ExitCode()).To(Equal(0))
    67  		init := podmanTest.Podman([]string{"init", name})
    68  		init.WaitWithDefaultTimeout()
    69  		Expect(init.ExitCode()).To(Equal(0))
    70  		result := podmanTest.Podman([]string{"inspect", name})
    71  		result.WaitWithDefaultTimeout()
    72  		Expect(result.ExitCode()).To(Equal(0))
    73  		conData := result.InspectContainerToJSON()
    74  		Expect(conData[0].State.Status).To(Equal("created"))
    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.ExitCode()).To(Equal(0))
    82  		init := podmanTest.Podman([]string{"init", "--latest"})
    83  		init.WaitWithDefaultTimeout()
    84  		Expect(init.ExitCode()).To(Equal(0))
    85  		result := podmanTest.Podman([]string{"inspect", "--latest"})
    86  		result.WaitWithDefaultTimeout()
    87  		Expect(result.ExitCode()).To(Equal(0))
    88  		conData := result.InspectContainerToJSON()
    89  		Expect(conData[0].State.Status).To(Equal("created"))
    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.ExitCode()).To(Equal(0))
    96  		session2 := podmanTest.Podman([]string{"create", "--name", "test2", ALPINE, "ls"})
    97  		session2.WaitWithDefaultTimeout()
    98  		Expect(session2.ExitCode()).To(Equal(0))
    99  		session3 := podmanTest.Podman([]string{"run", "--name", "test3", "-d", ALPINE, "top"})
   100  		session3.WaitWithDefaultTimeout()
   101  		Expect(session3.ExitCode()).To(Equal(0))
   102  		init := podmanTest.Podman([]string{"init", "--all"})
   103  		init.WaitWithDefaultTimeout()
   104  		Expect(init.ExitCode()).To(Equal(0))
   105  		result := podmanTest.Podman([]string{"inspect", "test1"})
   106  		result.WaitWithDefaultTimeout()
   107  		Expect(result.ExitCode()).To(Equal(0))
   108  		conData := result.InspectContainerToJSON()
   109  		Expect(conData[0].State.Status).To(Equal("created"))
   110  		result2 := podmanTest.Podman([]string{"inspect", "test2"})
   111  		result2.WaitWithDefaultTimeout()
   112  		Expect(result2.ExitCode()).To(Equal(0))
   113  		conData2 := result2.InspectContainerToJSON()
   114  		Expect(conData2[0].State.Status).To(Equal("created"))
   115  		result3 := podmanTest.Podman([]string{"inspect", "test3"})
   116  		result3.WaitWithDefaultTimeout()
   117  		Expect(result3.ExitCode()).To(Equal(0))
   118  		conData3 := result3.InspectContainerToJSON()
   119  		Expect(conData3[0].State.Status).To(Equal("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.ExitCode()).To(Equal(0))
   126  		init := podmanTest.Podman([]string{"init", "init_test"})
   127  		init.WaitWithDefaultTimeout()
   128  		Expect(init.ExitCode()).To(Equal(125))
   129  	})
   130  })