github.com/containers/podman/v5@v5.1.0-rc1/test/e2e/pod_pause_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 ) 8 9 var _ = Describe("Podman pod pause", func() { 10 pausedState := "Paused" 11 12 BeforeEach(func() { 13 SkipIfRootlessCgroupsV1("Pause is not supported in cgroups v1") 14 }) 15 16 It("podman pod pause bogus pod", func() { 17 session := podmanTest.Podman([]string{"pod", "pause", "foobar"}) 18 session.WaitWithDefaultTimeout() 19 expect := "no pod with name or ID foobar found: no such pod" 20 if IsRemote() { 21 expect = `unable to find pod "foobar": no such pod` 22 } 23 Expect(session).To(ExitWithError(125, expect)) 24 }) 25 26 It("podman unpause bogus pod", func() { 27 session := podmanTest.Podman([]string{"pod", "unpause", "foobar"}) 28 session.WaitWithDefaultTimeout() 29 expect := "no pod with name or ID foobar found: no such pod" 30 if IsRemote() { 31 expect = `unable to find pod "foobar": no such pod` 32 } 33 Expect(session).To(ExitWithError(125, expect)) 34 }) 35 36 It("podman pod pause a created pod by id", func() { 37 _, ec, podid := podmanTest.CreatePod(nil) 38 Expect(ec).To(Equal(0)) 39 40 result := podmanTest.Podman([]string{"pod", "pause", podid}) 41 result.WaitWithDefaultTimeout() 42 Expect(result).Should(ExitCleanly()) 43 }) 44 45 It("pause a running pod by id", func() { 46 _, ec, podid := podmanTest.CreatePod(nil) 47 Expect(ec).To(Equal(0)) 48 49 session := podmanTest.RunTopContainerInPod("", podid) 50 session.WaitWithDefaultTimeout() 51 Expect(session).Should(ExitCleanly()) 52 53 result := podmanTest.Podman([]string{"pod", "pause", podid}) 54 result.WaitWithDefaultTimeout() 55 56 Expect(result).Should(ExitCleanly()) 57 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 58 Expect(podmanTest.GetContainerStatus()).To(ContainSubstring(pausedState)) 59 60 result = podmanTest.Podman([]string{"pod", "unpause", podid}) 61 result.WaitWithDefaultTimeout() 62 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 63 }) 64 65 It("unpause a paused pod by id", func() { 66 _, ec, podid := podmanTest.CreatePod(nil) 67 Expect(ec).To(Equal(0)) 68 69 session := podmanTest.RunTopContainerInPod("", podid) 70 session.WaitWithDefaultTimeout() 71 Expect(session).Should(ExitCleanly()) 72 73 result := podmanTest.Podman([]string{"pod", "pause", podid}) 74 result.WaitWithDefaultTimeout() 75 Expect(result).Should(ExitCleanly()) 76 Expect(result.OutputToStringArray()).Should(HaveLen(1)) 77 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 78 Expect(podmanTest.GetContainerStatus()).To(Equal(pausedState)) 79 80 result = podmanTest.Podman([]string{"pod", "unpause", podid}) 81 result.WaitWithDefaultTimeout() 82 Expect(result).Should(ExitCleanly()) 83 Expect(result.OutputToStringArray()).Should(HaveLen(1)) 84 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 85 }) 86 87 It("unpause a paused pod by name", func() { 88 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"test1"}}) 89 Expect(ec).To(Equal(0)) 90 91 session := podmanTest.RunTopContainerInPod("", "test1") 92 session.WaitWithDefaultTimeout() 93 Expect(session).Should(ExitCleanly()) 94 95 result := podmanTest.Podman([]string{"pod", "pause", "test1"}) 96 result.WaitWithDefaultTimeout() 97 Expect(result).Should(ExitCleanly()) 98 Expect(result.OutputToStringArray()).Should(HaveLen(1)) 99 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 100 Expect(podmanTest.GetContainerStatus()).To(Equal(pausedState)) 101 102 result = podmanTest.Podman([]string{"pod", "unpause", "test1"}) 103 result.WaitWithDefaultTimeout() 104 Expect(result).Should(ExitCleanly()) 105 Expect(result.OutputToStringArray()).Should(HaveLen(1)) 106 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 107 }) 108 109 It("unpause --all", func() { 110 _, ec, podid1 := podmanTest.CreatePod(nil) 111 Expect(ec).To(Equal(0)) 112 _, ec, podid2 := podmanTest.CreatePod(nil) 113 Expect(ec).To(Equal(0)) 114 115 session := podmanTest.RunTopContainerInPod("", podid1) 116 session.WaitWithDefaultTimeout() 117 Expect(session).Should(ExitCleanly()) 118 session = podmanTest.RunTopContainerInPod("", podid2) 119 session.WaitWithDefaultTimeout() 120 Expect(session).Should(ExitCleanly()) 121 122 result := podmanTest.Podman([]string{"pod", "pause", podid1}) 123 result.WaitWithDefaultTimeout() 124 Expect(result).Should(ExitCleanly()) 125 Expect(result.OutputToStringArray()).Should(HaveLen(1)) 126 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 127 Expect(podmanTest.GetContainerStatus()).To(ContainSubstring(pausedState)) 128 129 result = podmanTest.Podman([]string{"pod", "unpause", "--all"}) 130 result.WaitWithDefaultTimeout() 131 Expect(result).Should(ExitCleanly()) 132 Expect(result.OutputToStringArray()).Should(HaveLen(1)) 133 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(2)) 134 }) 135 })