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