diff --git a/.packit.yaml b/.packit.yaml index a2bc0d4..0588b34 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -10,6 +10,10 @@ files_to_sync: - .packit.yaml - gating.yaml - ci.fmf + - src: ./tests/smoke/* + dest: ./tests/smoke/ + - src: ./plans/* + dest: ./plans/ # Allow disgit reactions on packit and tdudlak commits and PRs allowed_pr_authors: diff --git a/mrack.spec b/mrack.spec index cde228d..d50e81a 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,6 +1,6 @@ Name: mrack Version: 1.12.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Multicloud use-case based multihost async provisioner License: Apache-2.0 @@ -177,6 +177,9 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* Tue Dec 13 2022 Tibor Dudlák - 1.12.3-4 +- chore: Add add tmt tests and plans and add them to sync (Tibor Dudlák) + * Tue Dec 13 2022 Tibor Dudlák - 1.12.3-3 - chore: Add fmf/version and allowed users to run packit (Tibor Dudlák) diff --git a/plans/tests.fmf b/plans/tests.fmf new file mode 100644 index 0000000..65199d8 --- /dev/null +++ b/plans/tests.fmf @@ -0,0 +1,9 @@ +summary: Smoke test for mrack +discover: + how: fmf +prepare: +- how: shell + script: + - dnf remove -y `rpm -qa | grep mrack` +execute: + how: tmt diff --git a/tests/smoke/main.fmf b/tests/smoke/main.fmf new file mode 100644 index 0000000..b465d57 --- /dev/null +++ b/tests/smoke/main.fmf @@ -0,0 +1,8 @@ +summary: Run Smoke tests +test: ./smoke-test.sh +enabled: true +path: /tests/smoke +require: +- which +framework: beakerlib +duration: 10m diff --git a/tests/smoke/smoke-test.sh b/tests/smoke/smoke-test.sh new file mode 100755 index 0000000..a06d73d --- /dev/null +++ b/tests/smoke/smoke-test.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Author: Tibor Dudlák + +. /usr/share/beakerlib/beakerlib.sh || ( echo "FAILED to source beakerlib" && exit 1 ) + +install_package () { + rlPhaseStartSetup "Installing $1" + rlRun "dnf install -y $1" + rlPhaseEnd +} + +print_and_remove_mrack_log(){ + rlPhaseStartTest "Print and remove mrack.log" + rlRun "cat mrack.log && rm -f mrack.log" + rlPhaseEnd +} + +rm_mracklog_run_mrack_up () { + rlPhaseStartTest "Remove mrack.log and run mrack up" + rlRun "rm -f mrack.log" + rlRun "mrack up 2>&1 | grep 'Installed providers:'" + rlPhaseEnd +} + +rlJournalStart + rlPhaseStartSetup "Check required packages and absence of mrack" + rlAssertRpm "which" + rlRun "dnf remove -y `rpm -qa | grep mrack` || true" + rlPhaseEnd + + rlPhaseStartTest "mrack should not be pre-installed on system" + rlRun "python3 -c \"import mrack\"" 1 + rlPhaseEnd + + install_package "python3-mracklib" + + rlPhaseStartTest "mrack command NOT present on system" + rlRun "which mrack 2>&1 | grep -i 'no' | grep 'mrack'" + rlPhaseEnd + + install_package "mrack-cli" + + rlPhaseStartTest "mrack command present on system" + rlRun "which mrack | grep 'bin/mrack'" + rlRun "mrack --version" + rlPhaseEnd + + install_package "python3-mrack-beaker" + + rm_mracklog_run_mrack_up + + install_package "mrack" + + rm_mracklog_run_mrack_up + + print_and_remove_mrack_log + + rlPhaseStartSetup "Reinstall mrack" + rlRun "dnf reinstall mrack -y" + rlPhaseEnd + + rm_mracklog_run_mrack_up + + print_and_remove_mrack_log + +rlJournalEnd