mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-23 10:28:05 +00:00
This commit is introducing a test for the action-script functionality of CRIU to verify that pre-dump, post-dump, pre-restore, pre-resume, post-restore, post-resume hooks are executed during dump/restore. Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
61 lines
1.1 KiB
Bash
Executable File
61 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -ebm
|
|
|
|
# shellcheck source=test/others/env.sh
|
|
source ../env.sh || exit 1
|
|
|
|
SELFDIR="$(dirname "$(readlink -f "$0")")"
|
|
SCRIPT="$SELFDIR/action-script.sh"
|
|
IMGDIR="$SELFDIR/img-dir-$$"
|
|
|
|
rm -rf "$IMGDIR"
|
|
mkdir "$IMGDIR"
|
|
|
|
trap "cleanup" QUIT TERM INT HUP EXIT
|
|
|
|
# shellcheck disable=SC2317
|
|
# https://github.com/koalaman/shellcheck/issues/2660
|
|
function cleanup()
|
|
{
|
|
if [[ -n "$PID" ]]; then
|
|
kill -9 "$PID"
|
|
fi
|
|
}
|
|
|
|
PID=$(../loop)
|
|
if ! $CRIU dump -v4 -o dump.log -t "$PID" -D "$IMGDIR" --action-script "$SCRIPT"; then
|
|
echo "Failed to checkpoint process $PID"
|
|
cat dump.log
|
|
kill -9 "$PID"
|
|
exit 1
|
|
fi
|
|
|
|
if ! $CRIU restore -v4 -o restore.log -D "$IMGDIR" -d --pidfile test.pidfile --action-script "$SCRIPT"; then
|
|
echo "CRIU restore failed"
|
|
echo FAIL
|
|
exit 1
|
|
fi
|
|
|
|
PID=$(cat "$IMGDIR"/test.pidfile)
|
|
|
|
found_missing_file=false
|
|
hooks=("pre-dump" "post-dump" "pre-restore" "pre-resume" "post-restore" "post-resume")
|
|
|
|
for hook in "${hooks[@]}"
|
|
do
|
|
if [ ! -e "$IMGDIR/action-hook-$hook" ]; then
|
|
echo "ERROR: action-hook-$hook does not exist"
|
|
found_missing_file=true
|
|
fi
|
|
done
|
|
|
|
if [ "$found_missing_file" = true ]; then
|
|
exit 1
|
|
fi
|
|
|
|
echo PASS
|
|
|
|
rm -rf "$IMGDIR"
|
|
exit 0
|