From 5322664432631f61af831d1eef5f400ffb65b3f9 Mon Sep 17 00:00:00 2001 From: Jiri Kortus Date: Fri, 23 Aug 2019 17:20:06 +0200 Subject: [PATCH] Add test for running composer with --no-system-repos option --- test/check-cli | 4 ++ test/run | 1 + tests/cli/test_repos_sanity.sh | 105 +++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100755 tests/cli/test_repos_sanity.sh diff --git a/test/check-cli b/test/check-cli index af9dda7d..5ddd4aa7 100755 --- a/test/check-cli +++ b/test/check-cli @@ -36,6 +36,10 @@ class TestLiveIso(composertest.ComposerTestCase): def test_live_iso(self): self.runCliTest("/tests/cli/test_compose_live-iso.sh") +class TestRepos(composertest.ComposerTestCase): + def test_repos_sanity(self): + self.runCliTest("/tests/cli/test_repos_sanity.sh") + class TestTar(composertest.ComposerTestCase): def test_tar(self): diff --git a/test/run b/test/run index 48161ca8..fe9d9cf4 100755 --- a/test/run +++ b/test/run @@ -17,4 +17,5 @@ if [ -n "$TEST_SCENARIO" ]; then else test/check-cli TestImages test/check-api + test/check-cli TestRepos fi diff --git a/tests/cli/test_repos_sanity.sh b/tests/cli/test_repos_sanity.sh new file mode 100755 index 00000000..beef7eba --- /dev/null +++ b/tests/cli/test_repos_sanity.sh @@ -0,0 +1,105 @@ +#!/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 + rlPhaseStartSetup + repodir_backup=$(mktemp -d composerrepos-XXXXX) + composer_stop + rlRun -t -c "mv /var/lib/lorax/composer/repos.d/* $repodir_backup" + rlPhaseEnd + + rlPhaseStartTest "Run lorax-composer with --no-system-repos option and empty repos.d" + composer_start --no-system-repos + + # check that there are no composer repos available + rlRun -t -c "$CLI sources list | grep -v '^$' | wc -l | grep '^0$'" + present_repos=$(ls /var/lib/lorax/composer/repos.d) + if [ -z "$present_repos" ]; then + rlPass "No repos found in repos.d" + else + rlFail "The following repos were found in repos.d: $present_repos" + fi + + # starting a compose without available repos should fail due to a depsolving error + rlRun -t -c "tmp_output='$($CLI compose start example-http-server partitioned-disk 2>&1)'" + rlRun -t -c "echo '$tmp_output' | grep -q 'Problem depsolving example-http-server:'" + MANUAL=1 composer_stop + rlPhaseEnd + + rlPhaseStartTest "Run lorax-composer with --no-system-repos and manually created content in repos.d" + echo '[fedora] +name=Fedora $releasever - $basearch +failovermethod=priority +metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch +enabled=1 +metadata_expire=7d +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch +skip_if_unavailable=False + +[fedora-modular] +name=Fedora Modular $releasever - $basearch +failovermethod=priority +metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-$releasever&arch=$basearch +enabled=1 +metadata_expire=7d +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch +skip_if_unavailable=False + +[updates] +name=Fedora $releasever - $basearch - Updates +failovermethod=priority +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch +enabled=1 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +metadata_expire=6h +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch +skip_if_unavailable=False + +[updates-modular] +name=Fedora Modular $releasever - $basearch - Updates +failovermethod=priority +metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-f$releasever&arch=$basearch +enabled=1 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +metadata_expire=6h +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch +skip_if_unavailable=False +' > /var/lib/lorax/composer/repos.d/test.repo + + composer_start --no-system-repos + present_repos=$(ls /var/lib/lorax/composer/repos.d/) + rlAssertEquals "Only test.repo found in repos.d" "$present_repos" "test.repo" + + UUID=$(composer-cli compose start example-http-server partitioned-disk) + rlAssertEquals "exit code should be zero" $? 0 + UUID=$(echo $UUID | cut -f 2 -d' ') + + wait_for_compose $UUID + rlPhaseEnd + + rlPhaseStartCleanup + $CLI compose delete $UUID + MANUAL=1 composer_stop + rlRun -t -c "rm -rf /var/lib/lorax/composer/repos.d" + rlRun -t -c "mv $repodir_backup /var/lib/lorax/composer/repos.d" + composer_start + rlPhaseEnd +rlJournalEnd +rlJournalPrintText