2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-23 10:28:05 +00:00
Radostin Stoyanov 1800018bc1 test/other: add test for action-script
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>
2023-10-22 13:29:25 -07:00

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