github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/test/e2e/pod_pause_test.go (about)

     1  package integration
     2  
     3  import (
     4  	"os"
     5  
     6  	. "github.com/hanks177/podman/v4/test/utils"
     7  	. "github.com/onsi/ginkgo"
     8  	. "github.com/onsi/gomega"
     9  	. "github.com/onsi/gomega/gexec"
    10  )
    11  
    12  var _ = Describe("Podman pod pause", func() {
    13  	var (
    14  		tempdir    string
    15  		err        error
    16  		podmanTest *PodmanTestIntegration
    17  	)
    18  
    19  	pausedState := "Paused"
    20  
    21  	BeforeEach(func() {
    22  		SkipIfRootlessCgroupsV1("Pause is not supported in cgroups v1")
    23  		tempdir, err = CreateTempDirInTempDir()
    24  		if err != nil {
    25  			os.Exit(1)
    26  		}
    27  		podmanTest = PodmanTestCreate(tempdir)
    28  		podmanTest.Setup()
    29  	})
    30  
    31  	AfterEach(func() {
    32  		podmanTest.Cleanup()
    33  		f := CurrentGinkgoTestDescription()
    34  		processTestResult(f)
    35  
    36  	})
    37  
    38  	It("podman pod pause bogus pod", func() {
    39  		session := podmanTest.Podman([]string{"pod", "pause", "foobar"})
    40  		session.WaitWithDefaultTimeout()
    41  		Expect(session).To(ExitWithError())
    42  	})
    43  
    44  	It("podman unpause bogus pod", func() {
    45  		session := podmanTest.Podman([]string{"pod", "unpause", "foobar"})
    46  		session.WaitWithDefaultTimeout()
    47  		Expect(session).To(ExitWithError())
    48  	})
    49  
    50  	It("podman pod pause a created pod by id", func() {
    51  		_, ec, podid := podmanTest.CreatePod(nil)
    52  		Expect(ec).To(Equal(0))
    53  
    54  		result := podmanTest.Podman([]string{"pod", "pause", podid})
    55  		result.WaitWithDefaultTimeout()
    56  		Expect(result).Should(Exit(0))
    57  	})
    58  
    59  	It("podman pod pause a running pod by id", func() {
    60  		_, ec, podid := podmanTest.CreatePod(nil)
    61  		Expect(ec).To(Equal(0))
    62  
    63  		session := podmanTest.RunTopContainerInPod("", podid)
    64  		session.WaitWithDefaultTimeout()
    65  		Expect(session).Should(Exit(0))
    66  
    67  		result := podmanTest.Podman([]string{"pod", "pause", podid})
    68  		result.WaitWithDefaultTimeout()
    69  
    70  		Expect(result).Should(Exit(0))
    71  		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
    72  		Expect(podmanTest.GetContainerStatus()).To(ContainSubstring(pausedState))
    73  
    74  		result = podmanTest.Podman([]string{"pod", "unpause", podid})
    75  		result.WaitWithDefaultTimeout()
    76  
    77  		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
    78  	})
    79  
    80  	It("podman unpause a running pod by id", func() {
    81  		_, ec, podid := podmanTest.CreatePod(nil)
    82  		Expect(ec).To(Equal(0))
    83  
    84  		session := podmanTest.RunTopContainerInPod("", podid)
    85  		session.WaitWithDefaultTimeout()
    86  		Expect(session).Should(Exit(0))
    87  
    88  		result := podmanTest.Podman([]string{"pod", "unpause", podid})
    89  		result.WaitWithDefaultTimeout()
    90  
    91  		Expect(result).Should(Exit(0))
    92  		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
    93  	})
    94  
    95  	It("podman pod pause a running pod by name", func() {
    96  		_, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"test1"}})
    97  		Expect(ec).To(Equal(0))
    98  
    99  		session := podmanTest.RunTopContainerInPod("", "test1")
   100  		session.WaitWithDefaultTimeout()
   101  		Expect(session).Should(Exit(0))
   102  
   103  		result := podmanTest.Podman([]string{"pod", "pause", "test1"})
   104  		result.WaitWithDefaultTimeout()
   105  
   106  		Expect(result).Should(Exit(0))
   107  		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
   108  		Expect(podmanTest.GetContainerStatus()).To(Equal(pausedState))
   109  
   110  		result = podmanTest.Podman([]string{"pod", "unpause", "test1"})
   111  		result.WaitWithDefaultTimeout()
   112  		Expect(result).Should(Exit(0))
   113  	})
   114  })