lorax/tests/mkksiso/test_boot_repo.sh

59 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/bash
# Note: execute this file from the project root directory
set -e
[ -z "$1" ] && (echo "$0: Missing path to iso"; exit 1)
[ -z "$2" ] && (echo "$0: Missing kickstart"; exit 1)
[ "$(id -u)" -eq 0 ] || (echo "$0 must be run as root"; exit 1)
. /usr/share/beakerlib/beakerlib.sh
CLI="${CLI:-./src/sbin/mkksiso}"
rlJournalStart
rlPhaseStartSetup "Setup repo with fake rpm"
TMP_DIR=$(mktemp -d -p /var/tmp)
rlRun -t -c "mkdir $TMP_DIR/extra-repo/"
rlRun -t -c "$(dirname "$0")/mk-fake-rpm $TMP_DIR/extra-repo/ extra-package"
rlRun -t -c "createrepo_c $TMP_DIR/extra-repo/"
rlPhaseEnd
rlPhaseStartTest "Make new iso with kickstart and extra-repo"
rlRun -t -c "$CLI --add $TMP_DIR/extra-repo $2 $1 $TMP_DIR/ks-boot.iso"
rlAssertExists "$TMP_DIR/ks-boot.iso"
rlPhaseEnd
rlPhaseStartTest "Check the new ISO"
ISO_DIR="$TMP_DIR/mnt-iso/"
rlRun -t -c "mkdir $ISO_DIR"
rlRun "mount $TMP_DIR/ks-boot.iso $ISO_DIR"
fail=0
rlLogInfo "Checking for kickstart $(basename "$2")"
if [ ! -e "$ISO_DIR$(basename "$2")" ]; then
rlLogError "The kickstart is missing from the iso"
fail=1
fi
for cfg in isolinux/isolinux.cfg EFI/BOOT/grub.cfg EFI/BOOT/BOOT.conf \
boot/grub/grub.cfg images/generic.prm; do
if [ -e "$ISO_DIR$cfg" ]; then
rlLogInfo "Checking $cfg"
if ! grep -q "$(basename "$2")" "$ISO_DIR$cfg"; then
rlLogError "$cfg is missing the kickstart"
fail=1
fi
fi
done
rlLogInfo "Checking for /extra-repo/ on iso"
if [ ! -e "$TMP_DIR/extra-repo/" ]; then
rlLogError"The extra-repo directory is missing from the iso"
fail=1
fi
rlAssertEquals "All checks have passed" $fail 0
rlPhaseEnd
rlPhaseStartCleanup
rlRun -t -c "umount $ISO_DIR"
rlRun -t -c "rm -rf $TMP_DIR"
rlPhaseEnd
rlJournalEnd
rlJournalPrintText