github.com/containers/podman/v4@v4.9.4/test/e2e/pod_kill_test.go (about) 1 package integration 2 3 import ( 4 . "github.com/containers/podman/v4/test/utils" 5 . "github.com/onsi/ginkgo/v2" 6 . "github.com/onsi/gomega" 7 . "github.com/onsi/gomega/gexec" 8 ) 9 10 var _ = Describe("Podman pod kill", func() { 11 12 It("podman pod kill bogus", func() { 13 session := podmanTest.Podman([]string{"pod", "kill", "foobar"}) 14 session.WaitWithDefaultTimeout() 15 Expect(session).To(ExitWithError()) 16 }) 17 18 It("podman pod kill a pod by id", func() { 19 _, ec, podid := podmanTest.CreatePod(nil) 20 Expect(ec).To(Equal(0)) 21 22 session := podmanTest.RunTopContainerInPod("", podid) 23 session.WaitWithDefaultTimeout() 24 Expect(session).Should(ExitCleanly()) 25 26 session = podmanTest.RunTopContainerInPod("", podid) 27 session.WaitWithDefaultTimeout() 28 Expect(session).Should(ExitCleanly()) 29 30 result := podmanTest.Podman([]string{"pod", "kill", podid}) 31 result.WaitWithDefaultTimeout() 32 Expect(result).Should(ExitCleanly()) 33 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 34 }) 35 36 It("podman pod kill a pod by id with TERM", func() { 37 _, ec, podid := podmanTest.CreatePod(nil) 38 Expect(ec).To(Equal(0)) 39 40 session := podmanTest.RunTopContainerInPod("", podid) 41 session.WaitWithDefaultTimeout() 42 Expect(session).Should(ExitCleanly()) 43 44 result := podmanTest.Podman([]string{"pod", "kill", "-s", "9", podid}) 45 result.WaitWithDefaultTimeout() 46 Expect(result).Should(ExitCleanly()) 47 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 48 }) 49 50 It("podman pod kill a pod by name", func() { 51 _, ec, podid := podmanTest.CreatePod(map[string][]string{"--name": {"test1"}}) 52 Expect(ec).To(Equal(0)) 53 54 session := podmanTest.RunTopContainerInPod("", podid) 55 session.WaitWithDefaultTimeout() 56 Expect(session).Should(ExitCleanly()) 57 58 result := podmanTest.Podman([]string{"pod", "kill", "test1"}) 59 result.WaitWithDefaultTimeout() 60 Expect(result).Should(ExitCleanly()) 61 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 62 }) 63 64 It("podman pod kill a pod by id with a bogus signal", func() { 65 _, ec, podid := podmanTest.CreatePod(map[string][]string{"--name": {"test1"}}) 66 Expect(ec).To(Equal(0)) 67 68 session := podmanTest.RunTopContainerInPod("", podid) 69 session.WaitWithDefaultTimeout() 70 Expect(session).Should(ExitCleanly()) 71 72 result := podmanTest.Podman([]string{"pod", "kill", "-s", "bogus", "test1"}) 73 result.WaitWithDefaultTimeout() 74 Expect(result).Should(Exit(125)) 75 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 76 }) 77 78 It("podman pod kill latest pod", func() { 79 _, ec, podid := podmanTest.CreatePod(nil) 80 Expect(ec).To(Equal(0)) 81 82 session := podmanTest.RunTopContainerInPod("", podid) 83 session.WaitWithDefaultTimeout() 84 Expect(session).Should(ExitCleanly()) 85 86 _, ec, podid2 := podmanTest.CreatePod(nil) 87 Expect(ec).To(Equal(0)) 88 89 session = podmanTest.RunTopContainerInPod("", podid2) 90 session.WaitWithDefaultTimeout() 91 Expect(session).Should(ExitCleanly()) 92 93 session = podmanTest.RunTopContainerInPod("", podid2) 94 session.WaitWithDefaultTimeout() 95 Expect(session).Should(ExitCleanly()) 96 if !IsRemote() { 97 podid2 = "-l" 98 } 99 result := podmanTest.Podman([]string{"pod", "kill", podid2}) 100 result.WaitWithDefaultTimeout() 101 Expect(result).Should(ExitCleanly()) 102 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 103 }) 104 105 It("podman pod kill all", func() { 106 SkipIfRootlessCgroupsV1("Not supported for rootless + CgroupsV1") 107 _, ec, podid := podmanTest.CreatePod(nil) 108 Expect(ec).To(Equal(0)) 109 110 session := podmanTest.RunTopContainerInPod("", podid) 111 session.WaitWithDefaultTimeout() 112 Expect(session).Should(ExitCleanly()) 113 114 session = podmanTest.RunTopContainerInPod("", podid) 115 session.WaitWithDefaultTimeout() 116 Expect(session).Should(ExitCleanly()) 117 118 _, ec, podid2 := podmanTest.CreatePod(nil) 119 Expect(ec).To(Equal(0)) 120 121 session = podmanTest.RunTopContainerInPod("", podid2) 122 session.WaitWithDefaultTimeout() 123 Expect(session).Should(ExitCleanly()) 124 125 result := podmanTest.Podman([]string{"pod", "kill", "-a"}) 126 result.WaitWithDefaultTimeout() 127 GinkgoWriter.Println(result.OutputToString(), result.ErrorToString()) 128 Expect(result).Should(ExitCleanly()) 129 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 130 }) 131 })