kpatch/test/integration/vm-integration-run

86 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
KPATCH_SLOW=0
KPATCH_GIT=${KPATCH_GIT:-https://github.com/dynup/kpatch.git}
KPATCH_REV=${KPATCH_REV:-HEAD}
LOGDIR="/vagrant/logs"
usage()
{
echo "usage: $(basename "${0}") [options]" >&2
echo "-h, --help This message" >&2
echo "-s, --slow Run all of the tests" >&2
echo "-g, --git Git url to clone from" >&2
echo "-r, --revision Revision to use (HEAD by default)" >&2
}
options="$(getopt -o "shg:r:" -l "slow,help,git:,revision:" -- "$@")" || "getopt failed"
eval set -- "${options}"
while [[ $# -gt 0 ]]; do
case "$1" in
-s|--slow)
KPATCH_SLOW=1
shift
;;
-g|--git)
KPATCH_GIT="${2}"
shift 2
;;
-r|--revision)
KPATCH_REV="${2}"
shift 2
;;
-h|--help)
usage
exit 0
;;
--)
shift
break
;;
esac
done
git clone "${KPATCH_GIT}" || exit 1
cd kpatch || exit 1
git fetch origin +refs/pull/*:refs/pull/*
git reset --hard "${KPATCH_REV}" || exit 1
# shellcheck disable=SC1091
source test/integration/lib.sh
kpatch_dependencies
kpatch_separate_disk_cache /dev/vdb /mnt/build
kpatch_set_ccache_max_size 10G
# Check if we have predownloaded sources and move them to ~/.kpatch dir which
# is a symlink to a dir on a separate (bigger) volume, suitable for building.
if [[ -d "${HOME}/src" && -f "${HOME}/src/version" ]]; then
cp "${HOME}/src/version" "${HOME}/.kpatch/"
mv "${HOME}/src" "${HOME}/.kpatch/"
fi
# shellcheck disable=SC1091
source /etc/os-release
if [[ "${NAME}" == "Fedora" ]] && [[ "${VERSION_ID}" -lt 30 ]]; then
export BUILDMOD=yes
fi
if [ ${KPATCH_SLOW} -eq 1 ]; then
make integration-slow 2>&1
else
make integration-quick 2>&1
fi
rc=${PIPESTATUS[0]}
rm -rf "${LOGDIR}"
mkdir -p "${LOGDIR}"
cp ./test/integration/*.log "${LOGDIR}"
exit "${rc}"