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 })