4
. "github.com/containers/podman/v5/test/utils"
5
. "github.com/onsi/ginkgo/v2"
6
. "github.com/onsi/gomega"
9
var _ = Describe("Podman pod pause", func() {
10
pausedState := "Paused"
13
SkipIfRootlessCgroupsV1("Pause is not supported in cgroups v1")
16
It("podman pod pause bogus pod", func() {
17
session := podmanTest.Podman([]string{"pod", "pause", "foobar"})
18
session.WaitWithDefaultTimeout()
19
Expect(session).To(ExitWithError())
22
It("podman unpause bogus pod", func() {
23
session := podmanTest.Podman([]string{"pod", "unpause", "foobar"})
24
session.WaitWithDefaultTimeout()
25
Expect(session).To(ExitWithError())
28
It("podman pod pause a created pod by id", func() {
29
_, ec, podid := podmanTest.CreatePod(nil)
30
Expect(ec).To(Equal(0))
32
result := podmanTest.Podman([]string{"pod", "pause", podid})
33
result.WaitWithDefaultTimeout()
34
Expect(result).Should(ExitCleanly())
37
It("pause a running pod by id", func() {
38
_, ec, podid := podmanTest.CreatePod(nil)
39
Expect(ec).To(Equal(0))
41
session := podmanTest.RunTopContainerInPod("", podid)
42
session.WaitWithDefaultTimeout()
43
Expect(session).Should(ExitCleanly())
45
result := podmanTest.Podman([]string{"pod", "pause", podid})
46
result.WaitWithDefaultTimeout()
48
Expect(result).Should(ExitCleanly())
49
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
50
Expect(podmanTest.GetContainerStatus()).To(ContainSubstring(pausedState))
52
result = podmanTest.Podman([]string{"pod", "unpause", podid})
53
result.WaitWithDefaultTimeout()
54
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
57
It("unpause a paused pod by id", func() {
58
_, ec, podid := podmanTest.CreatePod(nil)
59
Expect(ec).To(Equal(0))
61
session := podmanTest.RunTopContainerInPod("", podid)
62
session.WaitWithDefaultTimeout()
63
Expect(session).Should(ExitCleanly())
65
result := podmanTest.Podman([]string{"pod", "pause", podid})
66
result.WaitWithDefaultTimeout()
67
Expect(result).Should(ExitCleanly())
68
Expect(result.OutputToStringArray()).Should(HaveLen(1))
69
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
70
Expect(podmanTest.GetContainerStatus()).To(Equal(pausedState))
72
result = podmanTest.Podman([]string{"pod", "unpause", podid})
73
result.WaitWithDefaultTimeout()
74
Expect(result).Should(ExitCleanly())
75
Expect(result.OutputToStringArray()).Should(HaveLen(1))
76
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
79
It("unpause a paused pod by name", func() {
80
_, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"test1"}})
81
Expect(ec).To(Equal(0))
83
session := podmanTest.RunTopContainerInPod("", "test1")
84
session.WaitWithDefaultTimeout()
85
Expect(session).Should(ExitCleanly())
87
result := podmanTest.Podman([]string{"pod", "pause", "test1"})
88
result.WaitWithDefaultTimeout()
89
Expect(result).Should(ExitCleanly())
90
Expect(result.OutputToStringArray()).Should(HaveLen(1))
91
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
92
Expect(podmanTest.GetContainerStatus()).To(Equal(pausedState))
94
result = podmanTest.Podman([]string{"pod", "unpause", "test1"})
95
result.WaitWithDefaultTimeout()
96
Expect(result).Should(ExitCleanly())
97
Expect(result.OutputToStringArray()).Should(HaveLen(1))
98
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
101
It("unpause --all", func() {
102
_, ec, podid1 := podmanTest.CreatePod(nil)
103
Expect(ec).To(Equal(0))
104
_, ec, podid2 := podmanTest.CreatePod(nil)
105
Expect(ec).To(Equal(0))
107
session := podmanTest.RunTopContainerInPod("", podid1)
108
session.WaitWithDefaultTimeout()
109
Expect(session).Should(ExitCleanly())
110
session = podmanTest.RunTopContainerInPod("", podid2)
111
session.WaitWithDefaultTimeout()
112
Expect(session).Should(ExitCleanly())
114
result := podmanTest.Podman([]string{"pod", "pause", podid1})
115
result.WaitWithDefaultTimeout()
116
Expect(result).Should(ExitCleanly())
117
Expect(result.OutputToStringArray()).Should(HaveLen(1))
118
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
119
Expect(podmanTest.GetContainerStatus()).To(ContainSubstring(pausedState))
121
result = podmanTest.Podman([]string{"pod", "unpause", "--all"})
122
result.WaitWithDefaultTimeout()
123
Expect(result).Should(ExitCleanly())
124
Expect(result.OutputToStringArray()).Should(HaveLen(1))
125
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(2))