lorax/tests/cli/test_compose_sanity.sh

91 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
# Note: execute this file from the project root directory
set -e
. /usr/share/beakerlib/beakerlib.sh
. $(dirname $0)/lib/lib.sh
CLI="${CLI:-./src/bin/composer-cli}"
rlJournalStart
rlPhaseStartTest "compose types"
if [ "$(uname -m)" == "x86_64" ]; then
rlAssertEquals "lists all supported types" \
"`$CLI compose types | xargs`" "alibaba ami ext4-filesystem google hyper-v live-iso liveimg-tar openstack partitioned-disk qcow2 tar vhd vmdk"
elif [ "$(uname -m)" == "aarch64" ]; then
# ami is supported on aarch64
rlAssertEquals "lists all supported types" \
"`$CLI compose types | xargs`" "ami ext4-filesystem live-iso liveimg-tar openstack partitioned-disk qcow2 tar"
else
# non-x86 architectures disable alibaba
rlAssertEquals "lists all supported types" \
"`$CLI compose types | xargs`" "ext4-filesystem live-iso liveimg-tar openstack partitioned-disk qcow2 tar"
fi
rlPhaseEnd
rlPhaseStartTest "compose start"
UUID=`$CLI compose start example-http-server ami`
rlAssertEquals "exit code should be zero" $? 0
UUID=`echo $UUID | cut -f 2 -d' '`
if [ -n "$UUID" ]; then
until $CLI compose info $UUID | grep 'RUNNING'; do
sleep 20
rlLogInfo "Waiting for compose to start running..."
if $CLI compose info $UUID | grep 'FAILED'; then
rlFail "Compose FAILED!"
break
fi
done;
else
rlFail "Compose UUID is empty!"
fi
# check if anaconda is really running
until ps -axo comm,pid | grep '^anaconda'; do
sleep 10
rlLogInfo "Waiting for anaconda to start running..."
done;
rlPhaseEnd
rlPhaseStartTest "cancel compose"
rlRun -t -c "$CLI compose cancel $UUID"
rlRun -t -c "$CLI compose info $UUID" 1 "compose is canceled"
rlAssertNotExists "/var/run/anaconda.pid"
rlPhaseEnd
rlPhaseStartTest "compose start again"
UUID=`$CLI compose start example-http-server tar`
rlAssertEquals "exit code should be zero" $? 0
UUID=`echo $UUID | cut -f 2 -d' '`
rlPhaseEnd
rlPhaseStartTest "compose info"
if [ -n "$UUID" ]; then
rlRun -t -c "$CLI compose info $UUID | egrep 'RUNNING|WAITING'"
else
rlFail "Compose UUID is empty!"
fi
rlPhaseEnd
rlPhaseStartTest "compose image"
wait_for_compose $UUID
if [ -n "$UUID" ]; then
check_compose_status "$UUID"
rlRun -t -c "$CLI compose image $UUID"
rlAssertExists "$UUID-root.tar.xz"
# because this path is listed in the documentation
rlAssertExists "/var/lib/lorax/composer/results/$UUID/"
rlAssertExists "/var/lib/lorax/composer/results/$UUID/root.tar.xz"
rlAssertNotDiffer "/var/lib/lorax/composer/results/$UUID/root.tar.xz" "$UUID-root.tar.xz"
fi
rlPhaseEnd
rlJournalEnd
rlJournalPrintText