diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/integration.fmf b/plans/integration.fmf new file mode 100644 index 0000000..b2e3dbe --- /dev/null +++ b/plans/integration.fmf @@ -0,0 +1,12 @@ +summary: Integration tests for anaconda + +discover: + how: fmf + filter: 'tag: integration' + +execute: + how: tmt + +finish: + how: shell + script: command -v journalctl && journalctl -a || true diff --git a/tests/dirinstall/dirinstall.fmf b/tests/dirinstall/dirinstall.fmf new file mode 100644 index 0000000..e49bfe1 --- /dev/null +++ b/tests/dirinstall/dirinstall.fmf @@ -0,0 +1,22 @@ +summary: Dirinstall test on regular os +contact: Radek Vykydal +path: /tests/dirinstall +test: ./dirinstall.sh +duration: 1h +tag: [integration] + +/text: + summary: Dirinstall test on regular os - text UI + require: + - anaconda + environment: + ANACONDA_UI_MODE: text + +/vnc: + summary: Dirinstall test on regular os - vnc UI + enabled: false + require: + - anaconda + - gnome-kiosk + environment: + ANACONDA_UI_MODE: vnc diff --git a/tests/dirinstall/dirinstall.sh b/tests/dirinstall/dirinstall.sh new file mode 100755 index 0000000..9bbae66 --- /dev/null +++ b/tests/dirinstall/dirinstall.sh @@ -0,0 +1,42 @@ +#!/bin/sh -eux + + +# Prepare test work directory + +WORK_DIR=$(mktemp -d /var/tmp/dirinstall.XXXXXX) + + +# Create kickstart + +KICKSTART_PATH=${WORK_DIR}/ks.cfg +source ./repositories +TEST_KICKSTART=./ks.dirinstall.cfg + +# Dump URLs of installation repositories found in local repositories whose names are configured in 'repositories' file +echo "url --metalink=$(dnf repoinfo $BASE_REPO | grep ^Repo-metalink | cut -d: -f2- | sed 's/^ *//')" > ${KICKSTART_PATH} +for repo in $REPOS; do + echo "repo --name=$repo --metalink=$(dnf repoinfo $repo | grep ^Repo-metalink | cut -d: -f2- | sed 's/^ *//')" >> ${KICKSTART_PATH} +done + +cat ${TEST_KICKSTART} >> ${KICKSTART_PATH} + +# Log the kickstart +cat ${KICKSTART_PATH} + + +# Run dirinstall + +INSTALL_DIR=${WORK_DIR}/install_dir +mkdir ${INSTALL_DIR} + +anaconda --dirinstall ${INSTALL_DIR} --kickstart ${KICKSTART_PATH} --${ANACONDA_UI_MODE} --noninteractive 2>&1 + + +# Remove test work directory + +rm -rf ${WORK_DIR} + + +# Show and remove the logs for this anaconda run + +./show_logs.sh diff --git a/tests/dirinstall/ks.dirinstall.cfg b/tests/dirinstall/ks.dirinstall.cfg new file mode 100644 index 0000000..9b54293 --- /dev/null +++ b/tests/dirinstall/ks.dirinstall.cfg @@ -0,0 +1,12 @@ +# The repository configuration (url, repo) needs to be added here. +# It varies by the product and version we are running on / testing + +lang en_US.UTF-8 +keyboard --vckeymap=us --xlayouts='us' +rootpw --plaintext redhat +timezone --utc Europe/Prague + +shutdown + +%packages +%end diff --git a/tests/dirinstall/repositories b/tests/dirinstall/repositories new file mode 100644 index 0000000..9fee07a --- /dev/null +++ b/tests/dirinstall/repositories @@ -0,0 +1,4 @@ +# Names of local repositories whose urls will be used for installation +# Repositories for "Fedora X" release: +BASE_REPO="fedora" +REPOS="fedora-modular" diff --git a/tests/dirinstall/show_logs.sh b/tests/dirinstall/show_logs.sh new file mode 100755 index 0000000..486ed25 --- /dev/null +++ b/tests/dirinstall/show_logs.sh @@ -0,0 +1,21 @@ +#!/bin/sh -x + +ls /tmp + +LOG_DIR=/tmp + +cd ${LOG_DIR} +KS_SCRIPT_LOGS=$(ls ks-script-*.log) +cd - + +ANACONDA_LOGS="anaconda.log storage.log packaging.log program.log dbus.log dnf.librepo.log ${KS_SCRIPT_LOGS}" + +for log in ${ANACONDA_LOGS} ; do + LOG_PATH=${LOG_DIR}/${log} + if [ -f ${LOG_PATH} ]; then + echo "----------------------- Dumping log file $LOG_PATH:" + cat $LOG_PATH + # clear for the following test + rm $LOG_PATH + fi +done