github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/test/e2e/pod_restart_test.go (about)

     1  package integration
     2  
     3  import (
     4  	"os"
     5  
     6  	. "github.com/containers/libpod/test/utils"
     7  	. "github.com/onsi/ginkgo"
     8  	. "github.com/onsi/gomega"
     9  )
    10  
    11  var _ = Describe("Podman pod restart", func() {
    12  	var (
    13  		tempdir    string
    14  		err        error
    15  		podmanTest *PodmanTestIntegration
    16  	)
    17  
    18  	BeforeEach(func() {
    19  		tempdir, err = CreateTempDirInTempDir()
    20  		if err != nil {
    21  			os.Exit(1)
    22  		}
    23  		podmanTest = PodmanTestCreate(tempdir)
    24  		podmanTest.Setup()
    25  		podmanTest.SeedImages()
    26  	})
    27  
    28  	AfterEach(func() {
    29  		podmanTest.CleanupPod()
    30  		f := CurrentGinkgoTestDescription()
    31  		processTestResult(f)
    32  
    33  	})
    34  
    35  	It("podman pod restart bogus pod", func() {
    36  		session := podmanTest.Podman([]string{"pod", "restart", "123"})
    37  		session.WaitWithDefaultTimeout()
    38  		Expect(session.ExitCode()).To(Equal(125))
    39  	})
    40  
    41  	It("podman pod restart single empty pod", func() {
    42  		_, ec, podid := podmanTest.CreatePod("")
    43  		Expect(ec).To(Equal(0))
    44  
    45  		session := podmanTest.Podman([]string{"pod", "restart", podid})
    46  		session.WaitWithDefaultTimeout()
    47  		Expect(session.ExitCode()).To(Equal(125))
    48  	})
    49  
    50  	It("podman pod restart single pod by name", func() {
    51  		_, ec, _ := podmanTest.CreatePod("foobar99")
    52  		Expect(ec).To(Equal(0))
    53  
    54  		session := podmanTest.RunTopContainerInPod("test1", "foobar99")
    55  		session.WaitWithDefaultTimeout()
    56  		Expect(session.ExitCode()).To(Equal(0))
    57  
    58  		startTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1"})
    59  		startTime.WaitWithDefaultTimeout()
    60  
    61  		session = podmanTest.Podman([]string{"pod", "restart", "foobar99"})
    62  		session.WaitWithDefaultTimeout()
    63  		Expect(session.ExitCode()).To(Equal(0))
    64  
    65  		restartTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1"})
    66  		restartTime.WaitWithDefaultTimeout()
    67  		Expect(restartTime.OutputToString()).To(Not(Equal(startTime.OutputToString())))
    68  	})
    69  
    70  	It("podman pod restart multiple pods", func() {
    71  		_, ec, _ := podmanTest.CreatePod("foobar99")
    72  		Expect(ec).To(Equal(0))
    73  
    74  		session := podmanTest.RunTopContainerInPod("test1", "foobar99")
    75  		session.WaitWithDefaultTimeout()
    76  		Expect(session.ExitCode()).To(Equal(0))
    77  
    78  		_, ec, _ = podmanTest.CreatePod("foobar100")
    79  		Expect(ec).To(Equal(0))
    80  
    81  		session = podmanTest.RunTopContainerInPod("test2", "foobar100")
    82  		session.WaitWithDefaultTimeout()
    83  		Expect(session.ExitCode()).To(Equal(0))
    84  
    85  		session = podmanTest.RunTopContainerInPod("test3", "foobar100")
    86  		session.WaitWithDefaultTimeout()
    87  		Expect(session.ExitCode()).To(Equal(0))
    88  
    89  		session = podmanTest.RunTopContainerInPod("test4", "foobar100")
    90  		session.WaitWithDefaultTimeout()
    91  		Expect(session.ExitCode()).To(Equal(0))
    92  
    93  		startTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2", "test3", "test4"})
    94  		startTime.WaitWithDefaultTimeout()
    95  
    96  		session = podmanTest.Podman([]string{"pod", "restart", "foobar99", "foobar100"})
    97  		session.WaitWithDefaultTimeout()
    98  		Expect(session.ExitCode()).To(Equal(0))
    99  
   100  		restartTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2", "test3", "test4"})
   101  		restartTime.WaitWithDefaultTimeout()
   102  		Expect(restartTime.OutputToStringArray()[0]).To(Not(Equal(startTime.OutputToStringArray()[0])))
   103  		Expect(restartTime.OutputToStringArray()[1]).To(Not(Equal(startTime.OutputToStringArray()[1])))
   104  		Expect(restartTime.OutputToStringArray()[2]).To(Not(Equal(startTime.OutputToStringArray()[2])))
   105  		Expect(restartTime.OutputToStringArray()[3]).To(Not(Equal(startTime.OutputToStringArray()[3])))
   106  	})
   107  
   108  	It("podman pod restart all pods", func() {
   109  		_, ec, _ := podmanTest.CreatePod("foobar99")
   110  		Expect(ec).To(Equal(0))
   111  
   112  		session := podmanTest.RunTopContainerInPod("test1", "foobar99")
   113  		session.WaitWithDefaultTimeout()
   114  		Expect(session.ExitCode()).To(Equal(0))
   115  
   116  		_, ec, _ = podmanTest.CreatePod("foobar100")
   117  		Expect(ec).To(Equal(0))
   118  
   119  		session = podmanTest.RunTopContainerInPod("test2", "foobar100")
   120  		session.WaitWithDefaultTimeout()
   121  		Expect(session.ExitCode()).To(Equal(0))
   122  
   123  		startTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2"})
   124  		startTime.WaitWithDefaultTimeout()
   125  
   126  		session = podmanTest.Podman([]string{"pod", "restart", "-a"})
   127  		session.WaitWithDefaultTimeout()
   128  		Expect(session.ExitCode()).To(Equal(0))
   129  
   130  		restartTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2"})
   131  		restartTime.WaitWithDefaultTimeout()
   132  		Expect(restartTime.OutputToStringArray()[0]).To(Not(Equal(startTime.OutputToStringArray()[0])))
   133  		Expect(restartTime.OutputToStringArray()[1]).To(Not(Equal(startTime.OutputToStringArray()[1])))
   134  	})
   135  
   136  	It("podman pod restart latest pod", func() {
   137  		_, ec, _ := podmanTest.CreatePod("foobar99")
   138  		Expect(ec).To(Equal(0))
   139  
   140  		session := podmanTest.RunTopContainerInPod("test1", "foobar99")
   141  		session.WaitWithDefaultTimeout()
   142  		Expect(session.ExitCode()).To(Equal(0))
   143  
   144  		_, ec, _ = podmanTest.CreatePod("foobar100")
   145  		Expect(ec).To(Equal(0))
   146  
   147  		session = podmanTest.RunTopContainerInPod("test2", "foobar100")
   148  		session.WaitWithDefaultTimeout()
   149  		Expect(session.ExitCode()).To(Equal(0))
   150  
   151  		startTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2"})
   152  		startTime.WaitWithDefaultTimeout()
   153  
   154  		session = podmanTest.Podman([]string{"pod", "restart", "-l"})
   155  		session.WaitWithDefaultTimeout()
   156  		Expect(session.ExitCode()).To(Equal(0))
   157  
   158  		restartTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2"})
   159  		restartTime.WaitWithDefaultTimeout()
   160  		Expect(restartTime.OutputToStringArray()[0]).To(Equal(startTime.OutputToStringArray()[0]))
   161  		Expect(restartTime.OutputToStringArray()[1]).To(Not(Equal(startTime.OutputToStringArray()[1])))
   162  	})
   163  
   164  	It("podman pod restart multiple pods with bogus", func() {
   165  		_, ec, podid1 := podmanTest.CreatePod("foobar99")
   166  		Expect(ec).To(Equal(0))
   167  
   168  		session := podmanTest.RunTopContainerInPod("", "foobar99")
   169  		session.WaitWithDefaultTimeout()
   170  		Expect(session.ExitCode()).To(Equal(0))
   171  
   172  		session = podmanTest.Podman([]string{"pod", "restart", podid1, "doesnotexist"})
   173  		session.WaitWithDefaultTimeout()
   174  		Expect(session.ExitCode()).To(Equal(125))
   175  	})
   176  })