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