lorax/tests/mkksiso/test_mkksiso.sh

55 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Note: execute this file from the project root directory
set -eu
[ "$(id -u)" -eq 0 ] || (echo "$0 must be run as root"; exit 1)
BEAKERLIB_DIR=$(mktemp -d /tmp/mkksiso-test.XXXXXX)
export BEAKERLIB_DIR
CLI="${CLI:-}"
# Override downloading the iso
TEST_ISO="${TEST_ISO:-}"
if [ -z "$CLI" ]; then
top_srcdir=$(pwd)
export top_srcdir
. ./tests/testenv.sh
fi
# Fetch the boot.iso for the current arch and return the path to a temporary directory
ISO_DIR=$(mktemp -d -p /var/tmp/)
function finish {
[ -n "$ISO_DIR" ] && rm -rf "$ISO_DIR"
}
trap finish EXIT
pushd "$ISO_DIR"
ARCH=$(uname -m)
if [ -z "$TEST_ISO" ]; then
# Use the Fedora mirrors to select the iso source
BASEURL=$(curl "https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-31&arch=$ARCH" | \
grep -v "^#" | head -n 1)
curl --remote-name-all "$BASEURL/images/boot.iso"
TEST_ISO="$ISO_DIR/boot.iso"
elif [ ! -e "$TEST_ISO" ]; then
echo "$TEST_ISO is missing."
exit 1
fi
popd
export BEAKERLIB_JOURNAL=0
./tests/mkksiso/test_boot_repo.sh "$TEST_ISO" ./tests/mkksiso/ks/extra-repo.ks
./tests/mkksiso/test_liveimg.sh "$TEST_ISO" ./tests/mkksiso/ks/liveimg.ks
. $BEAKERLIB_DIR/TestResults
if [ "$TESTRESULT_RESULT_ECODE" != 0 ]; then
echo "Test failed. Leaving log in $BEAKERLIB_DIR"
exit "$TESTRESULT_RESULT_ECODE"
fi
rm -rf "$BEAKERLIB_DIR"