github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/test/e2e/wait_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 wait", 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 wait on bogus container", func() {
    36  		session := podmanTest.Podman([]string{"wait", "1234"})
    37  		session.WaitWithDefaultTimeout()
    38  		Expect(session).Should(Exit(125))
    39  
    40  	})
    41  
    42  	It("podman wait on a stopped container", func() {
    43  		session := podmanTest.Podman([]string{"run", "-d", ALPINE, "ls"})
    44  		session.Wait(10)
    45  		cid := session.OutputToString()
    46  		Expect(session).Should(Exit(0))
    47  		session = podmanTest.Podman([]string{"wait", cid})
    48  		session.WaitWithDefaultTimeout()
    49  		Expect(session).Should(Exit(0))
    50  	})
    51  
    52  	It("podman wait on a sleeping container", func() {
    53  		session := podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
    54  		session.Wait(20)
    55  		cid := session.OutputToString()
    56  		Expect(session).Should(Exit(0))
    57  		session = podmanTest.Podman([]string{"wait", cid})
    58  		session.Wait(20)
    59  		Expect(session).Should(Exit(0))
    60  	})
    61  
    62  	It("podman wait on latest container", func() {
    63  		session := podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
    64  		session.Wait(20)
    65  		Expect(session).Should(Exit(0))
    66  		if IsRemote() {
    67  			session = podmanTest.Podman([]string{"wait", session.OutputToString()})
    68  		} else {
    69  			session = podmanTest.Podman([]string{"wait", "-l"})
    70  		}
    71  		session.WaitWithDefaultTimeout()
    72  		Expect(session).Should(Exit(0))
    73  	})
    74  
    75  	It("podman container wait on latest container", func() {
    76  		session := podmanTest.Podman([]string{"container", "run", "-d", ALPINE, "sleep", "1"})
    77  		session.Wait(20)
    78  		Expect(session).Should(Exit(0))
    79  		if IsRemote() {
    80  			session = podmanTest.Podman([]string{"container", "wait", session.OutputToString()})
    81  		} else {
    82  			session = podmanTest.Podman([]string{"container", "wait", "-l"})
    83  		}
    84  		session.WaitWithDefaultTimeout()
    85  		Expect(session).Should(Exit(0))
    86  	})
    87  
    88  	It("podman container wait on latest container with --interval flag", func() {
    89  		session := podmanTest.Podman([]string{"container", "run", "-d", ALPINE, "sleep", "1"})
    90  		session.Wait(20)
    91  		Expect(session).Should(Exit(0))
    92  		session = podmanTest.Podman([]string{"container", "wait", "-i", "5000", session.OutputToString()})
    93  		session.WaitWithDefaultTimeout()
    94  		Expect(session).Should(Exit(0))
    95  	})
    96  
    97  	It("podman container wait on latest container with --interval flag", func() {
    98  		session := podmanTest.Podman([]string{"container", "run", "-d", ALPINE, "sleep", "1"})
    99  		session.WaitWithDefaultTimeout()
   100  		Expect(session).Should(Exit(0))
   101  		session = podmanTest.Podman([]string{"container", "wait", "--interval", "1s", session.OutputToString()})
   102  		session.WaitWithDefaultTimeout()
   103  		Expect(session).Should(Exit(0))
   104  	})
   105  
   106  	It("podman container wait on container with bogus --interval", func() {
   107  		session := podmanTest.Podman([]string{"container", "run", "-d", ALPINE, "sleep", "1"})
   108  		session.WaitWithDefaultTimeout()
   109  		Expect(session).Should(Exit(0))
   110  		session = podmanTest.Podman([]string{"container", "wait", "--interval", "100days", session.OutputToString()})
   111  		session.WaitWithDefaultTimeout()
   112  		Expect(session).Should(Exit(125))
   113  	})
   114  
   115  	It("podman wait on three containers", func() {
   116  		session := podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
   117  		session.Wait(20)
   118  		Expect(session).Should(Exit(0))
   119  		cid1 := session.OutputToString()
   120  		session = podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
   121  		session.Wait(20)
   122  		Expect(session).Should(Exit(0))
   123  		cid2 := session.OutputToString()
   124  		session = podmanTest.Podman([]string{"run", "-d", ALPINE, "sleep", "1"})
   125  		session.Wait(20)
   126  		Expect(session).Should(Exit(0))
   127  		cid3 := session.OutputToString()
   128  		session = podmanTest.Podman([]string{"wait", cid1, cid2, cid3})
   129  		session.Wait(20)
   130  		Expect(session).Should(Exit(0))
   131  		Expect(session.OutputToStringArray()).To(Equal([]string{"0", "0", "0"}))
   132  	})
   133  })