From e1443fe05d146def61a5bb882ed0aafea5730d64 Mon Sep 17 00:00:00 2001 From: Matthew Heon Date: Wed, 3 Apr 2019 14:51:21 -0400 Subject: Add a test for restart policy Signed-off-by: Matthew Heon --- test/e2e/run_test.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'test') diff --git a/test/e2e/run_test.go b/test/e2e/run_test.go index fe95db016..0c1cda0a2 100644 --- a/test/e2e/run_test.go +++ b/test/e2e/run_test.go @@ -9,6 +9,7 @@ import ( "os" "path/filepath" "strings" + "time" . "github.com/containers/libpod/test/utils" "github.com/mrunalp/fileutils" @@ -720,4 +721,44 @@ USER mail` Expect(session.ExitCode()).To(Equal(1)) os.Unsetenv("http_proxy") }) + + It("podman run with restart-policy always restarts containers", func() { + podmanTest.RestoreArtifact(fedoraMinimal) + + aliveFile := filepath.Join(podmanTest.RunRoot, "running") + file, err := os.Create(aliveFile) + Expect(err).To(BeNil()) + file.Close() + + session := podmanTest.Podman([]string{"run", "-dt", "--restart", "always", "-v", fmt.Sprintf("%s:/tmp/runroot", podmanTest.RunRoot), fedoraMinimal, "bash", "-c", "date +%N > /tmp/runroot/ran && while test -r /tmp/runroot/running; do sleep 0.1s; done"}) + + found := false + testFile := filepath.Join(podmanTest.RunRoot, "ran") + for i := 0; i < 10; i++ { + time.Sleep(1 * time.Second) + if _, err := os.Stat(testFile); err == nil { + found = true + err = os.Remove(testFile) + Expect(err).To(BeNil()) + break + } + } + Expect(found).To(BeTrue()) + + err = os.Remove(aliveFile) + Expect(err).To(BeNil()) + + session.WaitWithDefaultTimeout() + + // 10 seconds to restart the container + found = false + for i := 0; i < 10; i++ { + time.Sleep(1 * time.Second) + if _, err := os.Stat(testFile); err == nil { + found = true + break + } + } + Expect(found).To(BeTrue()) + }) }) -- cgit v1.2.3-54-g00ecf