2018-09-19 12:00:25 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# Note: execute this file from the project root directory
|
2019-10-23 09:32:13 +00:00
|
|
|
# Note: Use test/check-cli && test/check-cloud if you want to
|
|
|
|
# execute test scenarios by hand!
|
2018-09-19 12:00:25 +00:00
|
|
|
|
2019-06-02 13:20:42 +00:00
|
|
|
set -eu
|
|
|
|
|
2019-08-23 15:16:40 +00:00
|
|
|
. $(dirname $0)/cli/lib/lib.sh
|
|
|
|
|
2019-06-06 09:41:31 +00:00
|
|
|
CLI="${CLI:-}"
|
2018-09-19 12:00:25 +00:00
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
function setup_tests {
|
2019-11-27 11:43:14 +00:00
|
|
|
[ "$BACKEND" == "osbuild-composer" ] && return 0
|
|
|
|
|
2019-06-02 17:47:02 +00:00
|
|
|
local share_dir=$1
|
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
# explicitly enable sshd for live-iso b/c it is disabled by default
|
|
|
|
# due to security concerns (no root password required)
|
2019-06-02 17:47:02 +00:00
|
|
|
sed -i.orig 's/^services.*/services --disabled="network" --enabled="NetworkManager,sshd"/' $share_dir/composer/live-iso.ks
|
2019-10-30 18:39:16 +00:00
|
|
|
|
|
|
|
# Make the live-iso boot more quickly (isolinux.cfg)
|
|
|
|
for cfg in "$share_dir"/templates.d/99-generic/live/config_files/*/isolinux.cfg; do
|
|
|
|
sed -i.orig 's/^timeout.*/timeout 20/' "$cfg"
|
|
|
|
done
|
|
|
|
|
|
|
|
# Make the live-iso boot more quickly (grub.cfg)
|
|
|
|
for cfg in "$share_dir"/templates.d/99-generic/live/config_files/*/grub.conf; do
|
|
|
|
sed -i.orig 's/^timeout.*/timeout 2/' "$cfg"
|
|
|
|
done
|
|
|
|
|
|
|
|
# Make the live-iso boot more quickly (grub2-efi.cfg)
|
|
|
|
for cfg in "$share_dir"/templates.d/99-generic/live/config_files/*/grub2-efi.cfg; do
|
|
|
|
sed -i.orig 's/^set timeout.*/set timeout=2/' "$cfg"
|
|
|
|
done
|
|
|
|
|
2019-02-28 15:31:05 +00:00
|
|
|
# explicitly enable logging in with empty passwords via ssh, because
|
|
|
|
# the default sshd setting for PermitEmptyPasswords is 'no'
|
|
|
|
awk -i inplace "
|
|
|
|
/%post/ && FLAG != 2 {FLAG=1}
|
|
|
|
/%end/ && FLAG == 1 {print \"sed -i 's/.*PermitEmptyPasswords.*/PermitEmptyPasswords yes/' /etc/ssh/sshd_config\"; FLAG=2}
|
|
|
|
{print}" \
|
2019-06-02 17:47:02 +00:00
|
|
|
$share_dir/composer/live-iso.ks
|
2019-03-08 10:29:11 +00:00
|
|
|
}
|
2018-11-22 13:40:27 +00:00
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
function teardown_tests {
|
2019-11-27 11:43:14 +00:00
|
|
|
[ "$BACKEND" == "osbuild-composer" ] && return 0
|
|
|
|
|
2019-06-05 13:16:19 +00:00
|
|
|
local share_dir=$1
|
|
|
|
|
|
|
|
mv $share_dir/composer/live-iso.ks.orig $share_dir/composer/live-iso.ks
|
2019-10-30 18:39:16 +00:00
|
|
|
|
|
|
|
# Restore all the configuration files
|
|
|
|
for cfg in "$share_dir"/templates.d/99-generic/live/config_files/*/*.orig; do
|
|
|
|
mv "$cfg" "${cfg%%.orig}"
|
|
|
|
done
|
2019-03-08 10:29:11 +00:00
|
|
|
}
|
2018-11-27 13:33:35 +00:00
|
|
|
|
2019-05-28 11:06:31 +00:00
|
|
|
# cloud credentials
|
|
|
|
if [ -f "~/.config/lorax-test-env" ]; then
|
|
|
|
. ~/.config/lorax-test-env
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f "/var/tmp/lorax-test-env" ]; then
|
|
|
|
. /var/tmp/lorax-test-env
|
|
|
|
fi
|
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
if [ -z "$CLI" ]; then
|
|
|
|
export top_srcdir=`pwd`
|
|
|
|
. ./tests/testenv.sh
|
|
|
|
|
2019-08-23 15:16:40 +00:00
|
|
|
export BLUEPRINTS_DIR=`mktemp -d '/tmp/composer-blueprints.XXXXX'`
|
2019-03-08 10:29:11 +00:00
|
|
|
cp ./tests/pylorax/blueprints/*.toml $BLUEPRINTS_DIR
|
|
|
|
|
2019-08-23 15:16:40 +00:00
|
|
|
export SHARE_DIR=`mktemp -d '/tmp/composer-share.XXXXX'`
|
2019-03-08 10:29:11 +00:00
|
|
|
cp -R ./share/* $SHARE_DIR
|
|
|
|
chmod a+rx -R $SHARE_DIR
|
|
|
|
|
2019-11-29 12:23:28 +00:00
|
|
|
setup_tests $SHARE_DIR
|
2019-11-27 11:43:14 +00:00
|
|
|
# start the backend daemon
|
2019-08-23 15:16:40 +00:00
|
|
|
composer_start
|
2019-03-08 10:29:11 +00:00
|
|
|
else
|
2019-05-28 11:17:25 +00:00
|
|
|
export PACKAGE="composer-cli"
|
2019-08-20 08:52:50 +00:00
|
|
|
export BLUEPRINTS_DIR="/var/lib/lorax/composer/blueprints"
|
2019-08-23 15:16:40 +00:00
|
|
|
composer_stop
|
2019-11-29 12:23:28 +00:00
|
|
|
setup_tests /usr/share/lorax
|
2019-08-23 15:16:40 +00:00
|
|
|
composer_start
|
2019-03-08 10:29:11 +00:00
|
|
|
fi
|
2019-02-27 13:01:28 +00:00
|
|
|
|
2019-10-15 23:48:13 +00:00
|
|
|
# Clean out the test-results directory
|
|
|
|
if [ -e "/var/tmp/test-results" ]; then
|
|
|
|
rm -rf "/var/tmp/test-results"
|
|
|
|
fi
|
2018-09-19 12:00:25 +00:00
|
|
|
|
2019-10-22 11:59:21 +00:00
|
|
|
setup_beakerlib_env
|
2018-11-21 13:09:01 +00:00
|
|
|
|
2019-10-22 11:59:21 +00:00
|
|
|
run_beakerlib_tests "$@"
|
2018-09-19 12:00:25 +00:00
|
|
|
|
2019-03-08 10:29:11 +00:00
|
|
|
if [ -z "$CLI" ]; then
|
2019-11-27 11:43:14 +00:00
|
|
|
# stop backend and remove /run/weldr/api.socket
|
2019-03-08 10:29:11 +00:00
|
|
|
# only if running against source
|
2019-08-23 15:16:40 +00:00
|
|
|
composer_stop
|
2019-11-29 12:23:28 +00:00
|
|
|
teardown_tests $SHARE_DIR
|
2019-03-08 10:29:11 +00:00
|
|
|
else
|
2019-08-23 15:16:40 +00:00
|
|
|
composer_stop
|
2019-11-29 12:23:28 +00:00
|
|
|
teardown_tests /usr/share/lorax
|
2019-11-27 11:43:14 +00:00
|
|
|
# start backend again so we can continue with manual or other kinds
|
2019-03-08 10:29:11 +00:00
|
|
|
# of testing on the same system
|
2019-08-23 15:16:40 +00:00
|
|
|
composer_start
|
2019-03-08 10:29:11 +00:00
|
|
|
fi
|
2018-10-02 23:23:42 +00:00
|
|
|
|
2019-10-22 11:59:21 +00:00
|
|
|
parse_beakerlib_results
|