lxc-test-checkpoint-restore revision 735f2c6e504a541cbb2592a3f94858bf337a24ff
355b4669e025ff377602b6fc7caaf30dbc218371jacobs# Do an end to end checkpoint and restore with criu.
355b4669e025ff377602b6fc7caaf30dbc218371jacobs echo "ERROR: Must run as root."
355b4669e025ff377602b6fc7caaf30dbc218371jacobsif [ "$(criu --version | head -n1 | cut -d' ' -f 2)" != "1.3-rc2" ]; then
355b4669e025ff377602b6fc7caaf30dbc218371jacobs echo "SKIP: skipping test because no (or wrong) criu installed."
355b4669e025ff377602b6fc7caaf30dbc218371jacobslxc-create -t ubuntu -n $name || FAIL "creating container"
355b4669e025ff377602b6fc7caaf30dbc218371jacobs# hax for criu
355b4669e025ff377602b6fc7caaf30dbc218371jacobslxc.console = none
355b4669e025ff377602b6fc7caaf30dbc218371jacobslxc.cgroup.devices.deny = c 5:1 rwm
355b4669e025ff377602b6fc7caaf30dbc218371jacobslxc-wait -n $name -s RUNNING || FAIL "waiting for container to run"
355b4669e025ff377602b6fc7caaf30dbc218371jacobs# Let the container boot and get into a steady state.
355b4669e025ff377602b6fc7caaf30dbc218371jacobs# The first time this usually fails because CRIU cannot checkpoint things with
355b4669e025ff377602b6fc7caaf30dbc218371jacobs# data on a socket.
355b4669e025ff377602b6fc7caaf30dbc218371jacobslxc-checkpoint -n $name -v -s -D /tmp/checkpoint || FAIL "failed checkpointing"
355b4669e025ff377602b6fc7caaf30dbc218371jacobslxc-checkpoint -n $name -v -r -D /tmp/checkpoint || FAIL "failed restoring"