lorax/tests/mkksiso/test_liveimg.sh

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