New test: Build live-iso and boot with KVM

explicitly enables sshd for live-iso during testing

Related: rhbz#1653934
This commit is contained in:
Alexander Todorov 2019-02-27 15:01:28 +02:00 committed by Alexander Todorov
parent e78e0e610c
commit 82492a54bc
3 changed files with 70 additions and 1 deletions

View File

@ -51,7 +51,8 @@ test_images:
sudo -E ./tests/test_cli.sh tests/cli/test_compose_ext4-filesystem.sh \
tests/cli/test_compose_partitioned-disk.sh \
tests/cli/test_compose_tar.sh \
tests/cli/test_compose_qcow2.sh
tests/cli/test_compose_qcow2.sh \
tests/cli/test_compose_live-iso.sh
test_aws:
sudo -E ./tests/test_cli.sh tests/cli/test_build_and_deploy_aws.sh

View File

@ -0,0 +1,64 @@
#!/bin/bash
# Note: execute this file from the project root directory
#####
#
# Builds live-iso image and test it with QEMU-KVM
#
#####
. /usr/share/beakerlib/beakerlib.sh
CLI="./src/bin/composer-cli"
QEMU="/usr/libexec/qemu-kvm"
rlJournalStart
rlPhaseStartSetup
rlAssertExists $QEMU
rlPhaseEnd
rlPhaseStartTest "compose start"
rlAssertEquals "SELinux operates in enforcing mode" "$(getenforce)" "Enforcing"
# NOTE: live-iso.ks explicitly disables sshd but test_cli.sh enables it
UUID=`$CLI compose start example-http-server live-iso`
rlAssertEquals "exit code should be zero" $? 0
UUID=`echo $UUID | cut -f 2 -d' '`
rlPhaseEnd
rlPhaseStartTest "compose finished"
if [ -n "$UUID" ]; then
until $CLI compose info $UUID | grep FINISHED; do
sleep 20
rlLogInfo "Waiting for compose to finish ..."
done;
else
rlFail "Compose UUID is empty!"
fi
rlRun -t -c "$CLI compose image $UUID"
IMAGE="$UUID-live.iso"
rlPhaseEnd
rlPhaseStartTest "Start VM instance"
rlRun -t -c "$QEMU -m 2048 -boot c -cdrom $IMAGE -nographic \
-net user,id=nic0,hostfwd=tcp::2222-:22 -net nic &"
# 60 seconds timeout at boot menu screen
# then media check + boot ~ 30 seconds
sleep 120
rlPhaseEnd
rlPhaseStartTest "Verify VM instance"
# verify we can login into that instance *WITHOUT* a password
rlRun -t -c "ssh -oStrictHostKeyChecking=no -p 2222 root@localhost 'cat /etc/redhat-release'"
rlPhaseEnd
rlPhaseStartCleanup
rlRun -t -c "killall -9 qemu-kvm"
rlRun -t -c "$CLI compose delete $UUID"
rlRun -t -c "rm -rf $IMAGE"
rlPhaseEnd
rlJournalEnd
rlJournalPrintText

View File

@ -13,6 +13,10 @@ SHARE_DIR=`mktemp -d '/tmp/composer-share.XXXXX'`
cp -R ./share/* $SHARE_DIR
chmod a+rx -R $SHARE_DIR
# explicitly enable sshd for live-iso b/c it is disabled by default
# due to security concerns (no root password required)
sed -i 's/^services.*/services --disabled="network" --enabled="NetworkManager,sshd"/' $SHARE_DIR/composer/live-iso.ks
# start the lorax-composer daemon
./src/sbin/lorax-composer --sharedir $SHARE_DIR $BLUEPRINTS_DIR &