dcd92cf8c0
These use beakerlib to download a Fedora boot.iso and run mkksiso on it. It currently does not try to boot the resulting iso, it mounts it and checks that the expected config files have been modified and the extra files have been added.
59 lines
2.0 KiB
Bash
Executable File
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
|