42 lines
1.2 KiB
Bash
42 lines
1.2 KiB
Bash
|
#!/bin/bash
|
||
|
set -xeuo pipefail
|
||
|
|
||
|
dn=$(cd "$(dirname "$0")" && pwd)
|
||
|
# shellcheck source=libcomposetest.sh
|
||
|
. "${dn}/libcomposetest.sh"
|
||
|
|
||
|
# Add a local rpm-md repo for recommends testing
|
||
|
treefile_append "repos" '["test-repo"]'
|
||
|
build_rpm foodep
|
||
|
build_rpm foobar recommends foobar-rec requires foodep
|
||
|
build_rpm foobar-rec
|
||
|
|
||
|
echo gpgcheck=0 >> yumrepo.repo
|
||
|
ln "$PWD/yumrepo.repo" config/yumrepo.repo
|
||
|
# the top-level manifest doesn't have any packages, so just set it
|
||
|
treefile_append "packages" '["foobar"]'
|
||
|
treefile_set 'recommends' "True"
|
||
|
|
||
|
runcompose --dry-run >log.txt
|
||
|
assert_file_has_content_literal log.txt 'foobar-1.0'
|
||
|
assert_file_has_content_literal log.txt 'foobar-rec-1.0'
|
||
|
rm -f log.txt
|
||
|
echo "ok no exclude"
|
||
|
|
||
|
# Test exclude
|
||
|
treefile_append "exclude-packages" '["foobar-rec"]'
|
||
|
|
||
|
runcompose --dry-run >log.txt
|
||
|
assert_file_has_content_literal log.txt 'foobar-1.0'
|
||
|
assert_not_file_has_content_literal log.txt 'foobar-rec-1.0'
|
||
|
rm -f log.txt
|
||
|
echo "ok exclude recommend"
|
||
|
|
||
|
treefile_append "exclude-packages" '["foodep"]'
|
||
|
|
||
|
if runcompose --dry-run &>err.txt; then
|
||
|
fatal "compose unexpectedly succeeded"
|
||
|
fi
|
||
|
assert_file_has_content err.txt 'package foodep.*is filtered out by exclude filtering'
|
||
|
echo "ok exclude included"
|