github.com/containers/podman/v5@v5.1.0-rc1/test/e2e/wait_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 wait", func() {
    11  
    12  	It("podman wait on bogus container", func() {
    13  		session := podmanTest.Podman([]string{"wait", "1234"})
    14  		session.WaitWithDefaultTimeout()
    15  		Expect(session).Should(Exit(125))
    16  
    17  	})
    18  
    19  	It("podman wait on a stopped container", func() {
    20  		session := podmanTest.Podman([]string{"run", "-d", ALPINE, "ls"})
    21  		session.Wait(10)
    22  		cid := session.OutputToString()
    23  		Expect(session).Should(ExitCleanly())
    24  		session = podmanTest.Podman([]string{"wait", cid})
    25  		session.WaitWithDefaultTimeout()
    26  		Expect(session).Should(ExitCleanly())
    27  	})
    28  
    29  	It("podman wait on a sleeping container", func() {
    30  		session := podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
    31  		session.Wait(20)
    32  		cid := session.OutputToString()
    33  		Expect(session).Should(ExitCleanly())
    34  		session = podmanTest.Podman([]string{"wait", cid})
    35  		session.Wait(20)
    36  		Expect(session).Should(ExitCleanly())
    37  	})
    38  
    39  	It("podman wait on latest container", func() {
    40  		session := podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
    41  		session.Wait(20)
    42  		Expect(session).Should(ExitCleanly())
    43  		if IsRemote() {
    44  			session = podmanTest.Podman([]string{"wait", session.OutputToString()})
    45  		} else {
    46  			session = podmanTest.Podman([]string{"wait", "-l"})
    47  		}
    48  		session.WaitWithDefaultTimeout()
    49  		Expect(session).Should(ExitCleanly())
    50  	})
    51  
    52  	It("podman container wait on latest container", func() {
    53  		session := podmanTest.Podman([]string{"container", "run", "-d", ALPINE, "sleep", "1"})
    54  		session.Wait(20)
    55  		Expect(session).Should(ExitCleanly())
    56  		if IsRemote() {
    57  			session = podmanTest.Podman([]string{"container", "wait", session.OutputToString()})
    58  		} else {
    59  			session = podmanTest.Podman([]string{"container", "wait", "-l"})
    60  		}
    61  		session.WaitWithDefaultTimeout()
    62  		Expect(session).Should(ExitCleanly())
    63  	})
    64  
    65  	It("podman container wait on latest container with --interval flag", func() {
    66  		session := podmanTest.Podman([]string{"container", "run", "-d", ALPINE, "sleep", "1"})
    67  		session.Wait(20)
    68  		Expect(session).Should(ExitCleanly())
    69  		session = podmanTest.Podman([]string{"container", "wait", "-i", "5000", session.OutputToString()})
    70  		session.WaitWithDefaultTimeout()
    71  		Expect(session).Should(ExitCleanly())
    72  	})
    73  
    74  	It("podman container wait on latest container with --interval flag", func() {
    75  		session := podmanTest.Podman([]string{"container", "run", "-d", ALPINE, "sleep", "1"})
    76  		session.WaitWithDefaultTimeout()
    77  		Expect(session).Should(ExitCleanly())
    78  		session = podmanTest.Podman([]string{"container", "wait", "--interval", "1s", session.OutputToString()})
    79  		session.WaitWithDefaultTimeout()
    80  		Expect(session).Should(ExitCleanly())
    81  	})
    82  
    83  	It("podman container wait on container with bogus --interval", func() {
    84  		session := podmanTest.Podman([]string{"container", "run", "-d", ALPINE, "sleep", "1"})
    85  		session.WaitWithDefaultTimeout()
    86  		Expect(session).Should(ExitCleanly())
    87  		session = podmanTest.Podman([]string{"container", "wait", "--interval", "100days", session.OutputToString()})
    88  		session.WaitWithDefaultTimeout()
    89  		Expect(session).Should(Exit(125))
    90  	})
    91  
    92  	It("podman wait on three containers", func() {
    93  		session := podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
    94  		session.Wait(20)
    95  		Expect(session).Should(ExitCleanly())
    96  		cid1 := session.OutputToString()
    97  		session = podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
    98  		session.Wait(20)
    99  		Expect(session).Should(ExitCleanly())
   100  		cid2 := session.OutputToString()
   101  		session = podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
   102  		session.Wait(20)
   103  		Expect(session).Should(ExitCleanly())
   104  		cid3 := session.OutputToString()
   105  		session = podmanTest.Podman([]string{"wait", cid1, cid2, cid3})
   106  		session.Wait(20)
   107  		Expect(session).Should(ExitCleanly())
   108  		Expect(session.OutputToStringArray()).To(Equal([]string{"0", "0", "0"}))
   109  	})
   110  })