diff options
author | Adrian Reber <areber@redhat.com> | 2021-12-21 16:01:53 +0000 |
---|---|---|
committer | Adrian Reber <areber@redhat.com> | 2021-12-23 09:51:38 +0000 |
commit | d669dbfb9fbb4bae56ba90ce9b58352c793eff6e (patch) | |
tree | 60b8c68575360fa10ebb390eea542ce3b2e5b4a7 /test/e2e/checkpoint_test.go | |
parent | b746b22564298463ebf322d630488236b7277074 (diff) | |
download | podman-d669dbfb9fbb4bae56ba90ce9b58352c793eff6e.tar.gz podman-d669dbfb9fbb4bae56ba90ce9b58352c793eff6e.tar.bz2 podman-d669dbfb9fbb4bae56ba90ce9b58352c793eff6e.zip |
Error out early if system does not support pre-copy checkpointing
CRIU's pre-copy migration support relies on the soft dirty page tracking
in the Linux kernel:
https://www.kernel.org/doc/Documentation/vm/soft-dirty.txt
This functionality is not implemented for all architectures and it can
also be turned off in the kernel.
CRIU can check if the combination of architecture/kernel/CRIU supports
the soft dirty page tracking and exports this feature checking
functionality in go-criu.
This commit adds an early check if the user selects pre-copy
checkpointing to error out if the system does not support it.
Signed-off-by: Adrian Reber <areber@redhat.com>
Diffstat (limited to 'test/e2e/checkpoint_test.go')
-rw-r--r-- | test/e2e/checkpoint_test.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/test/e2e/checkpoint_test.go b/test/e2e/checkpoint_test.go index e97503337..4771f8e58 100644 --- a/test/e2e/checkpoint_test.go +++ b/test/e2e/checkpoint_test.go @@ -939,6 +939,9 @@ var _ = Describe("Podman checkpoint", func() { }) It("podman checkpoint container with --pre-checkpoint", func() { + if !criu.MemTrack() { + Skip("system (architecture/kernel/CRIU) does not support memory tracking") + } if !strings.Contains(podmanTest.OCIRuntime, "runc") { Skip("Test only works on runc 1.0-rc3 or higher.") } @@ -972,6 +975,9 @@ var _ = Describe("Podman checkpoint", func() { It("podman checkpoint container with --pre-checkpoint and export (migration)", func() { SkipIfRemote("--import-previous is not yet supported on the remote client") + if !criu.MemTrack() { + Skip("system (architecture/kernel/CRIU) does not support memory tracking") + } if !strings.Contains(podmanTest.OCIRuntime, "runc") { Skip("Test only works on runc 1.0-rc3 or higher.") } |