github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/test/e2e/pod_pause_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 pod pause", func() { 13 var ( 14 tempdir string 15 err error 16 podmanTest *PodmanTestIntegration 17 ) 18 19 pausedState := "Paused" 20 21 BeforeEach(func() { 22 SkipIfRootlessCgroupsV1("Pause is not supported in cgroups v1") 23 tempdir, err = CreateTempDirInTempDir() 24 if err != nil { 25 os.Exit(1) 26 } 27 podmanTest = PodmanTestCreate(tempdir) 28 podmanTest.Setup() 29 }) 30 31 AfterEach(func() { 32 podmanTest.Cleanup() 33 f := CurrentGinkgoTestDescription() 34 processTestResult(f) 35 36 }) 37 38 It("podman pod pause bogus pod", func() { 39 session := podmanTest.Podman([]string{"pod", "pause", "foobar"}) 40 session.WaitWithDefaultTimeout() 41 Expect(session).To(ExitWithError()) 42 }) 43 44 It("podman unpause bogus pod", func() { 45 session := podmanTest.Podman([]string{"pod", "unpause", "foobar"}) 46 session.WaitWithDefaultTimeout() 47 Expect(session).To(ExitWithError()) 48 }) 49 50 It("podman pod pause a created pod by id", func() { 51 _, ec, podid := podmanTest.CreatePod(nil) 52 Expect(ec).To(Equal(0)) 53 54 result := podmanTest.Podman([]string{"pod", "pause", podid}) 55 result.WaitWithDefaultTimeout() 56 Expect(result).Should(Exit(0)) 57 }) 58 59 It("podman pod pause a running pod by id", func() { 60 _, ec, podid := podmanTest.CreatePod(nil) 61 Expect(ec).To(Equal(0)) 62 63 session := podmanTest.RunTopContainerInPod("", podid) 64 session.WaitWithDefaultTimeout() 65 Expect(session).Should(Exit(0)) 66 67 result := podmanTest.Podman([]string{"pod", "pause", podid}) 68 result.WaitWithDefaultTimeout() 69 70 Expect(result).Should(Exit(0)) 71 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 72 Expect(podmanTest.GetContainerStatus()).To(ContainSubstring(pausedState)) 73 74 result = podmanTest.Podman([]string{"pod", "unpause", podid}) 75 result.WaitWithDefaultTimeout() 76 77 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 78 }) 79 80 It("podman unpause a running pod by id", func() { 81 _, ec, podid := podmanTest.CreatePod(nil) 82 Expect(ec).To(Equal(0)) 83 84 session := podmanTest.RunTopContainerInPod("", podid) 85 session.WaitWithDefaultTimeout() 86 Expect(session).Should(Exit(0)) 87 88 result := podmanTest.Podman([]string{"pod", "unpause", podid}) 89 result.WaitWithDefaultTimeout() 90 91 Expect(result).Should(Exit(0)) 92 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 93 }) 94 95 It("podman pod pause a running pod by name", func() { 96 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"test1"}}) 97 Expect(ec).To(Equal(0)) 98 99 session := podmanTest.RunTopContainerInPod("", "test1") 100 session.WaitWithDefaultTimeout() 101 Expect(session).Should(Exit(0)) 102 103 result := podmanTest.Podman([]string{"pod", "pause", "test1"}) 104 result.WaitWithDefaultTimeout() 105 106 Expect(result).Should(Exit(0)) 107 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 108 Expect(podmanTest.GetContainerStatus()).To(Equal(pausedState)) 109 110 result = podmanTest.Podman([]string{"pod", "unpause", "test1"}) 111 result.WaitWithDefaultTimeout() 112 Expect(result).Should(Exit(0)) 113 }) 114 })