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  })