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.1 KiB
Bash
Executable File
59 lines
2.1 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 a fake root image"
|
|
TMP_DIR=$(mktemp -d -p /var/tmp)
|
|
rlRun -t -c "mkdir -p $TMP_DIR/fake-root/etc"
|
|
rlRun -t -c "touch $TMP_DIR/fake-root/etc/passwd"
|
|
rlRun -t -c "tar -cvaf $TMP_DIR/root.tar.xz -C $TMP_DIR/fake-root/ ."
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartTest "Make a new iso with kickstart and root.tar.xz"
|
|
rlRun -t -c "$CLI --add $TMP_DIR/root.tar.xz $2 $1 $TMP_DIR/liveimg-boot.iso"
|
|
rlAssertExists "$TMP_DIR/liveimg-boot.iso"
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartTest "Check the new ISO"
|
|
ISO_DIR="$TMP_DIR/mnt-iso/"
|
|
rlRun -t -c "mkdir $ISO_DIR"
|
|
rlRun "mount $TMP_DIR/liveimg-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 root.tar.xz on iso"
|
|
if [ ! -e "$TMP_DIR/root.tar.xz" ]; then
|
|
rlLogError "The root.tar.xz file 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
|