59 lines
2.0 KiB
Bash
59 lines
2.0 KiB
Bash
|
#!/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
|