Add test for checkpoint/restore with --file-locks

Signed-off-by: Radostin Stoyanov <radostin@redhat.com>
This commit is contained in:
Radostin Stoyanov
2021-11-17 22:17:21 +00:00
parent 6d23ea60d2
commit 7098463e78

View File

@ -1340,4 +1340,41 @@ var _ = Describe("Podman checkpoint", func() {
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
})
It("podman checkpoint and restore container with --file-locks", func() {
if !strings.Contains(podmanTest.OCIRuntime, "runc") {
// TODO: Enable test for crun when this feature has been released
// https://github.com/containers/crun/pull/783
Skip("FIXME: requires crun >= 1.4")
}
localRunString := getRunString([]string{"--name", "test_name", ALPINE, "flock", "test.lock", "sleep", "100"})
session := podmanTest.Podman(localRunString)
session.WaitWithDefaultTimeout()
Expect(session).Should(Exit(0))
// Checkpoint is expected to fail without --file-locks
result := podmanTest.Podman([]string{"container", "checkpoint", "test_name"})
result.WaitWithDefaultTimeout()
Expect(result).Should(Exit(125))
Expect(result.ErrorToString()).To(ContainSubstring("criu failed"))
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
// Checkpoint is expected to succeed with --file-locks
result = podmanTest.Podman([]string{"container", "checkpoint", "--file-locks", "test_name"})
result.WaitWithDefaultTimeout()
Expect(result).Should(Exit(0))
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
Expect(podmanTest.GetContainerStatus()).To(ContainSubstring("Exited"))
result = podmanTest.Podman([]string{"container", "restore", "--file-locks", "test_name"})
result.WaitWithDefaultTimeout()
Expect(result).Should(Exit(0))
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
Expect(podmanTest.GetContainerStatus()).To(ContainSubstring("Up"))
result = podmanTest.Podman([]string{"rm", "-t", "0", "-f", "test_name"})
result.WaitWithDefaultTimeout()
Expect(result).Should(Exit(0))
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
})
})