tests: Generalize has_gpgme, has_sign_ed25519 into has_ostree_feature

Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
Simon McVittie 2024-02-19 15:57:51 +00:00
parent 695a52ae21
commit a84e56d603
21 changed files with 39 additions and 61 deletions

View File

@ -696,18 +696,20 @@ skip_without_fuse () {
[ -e /etc/mtab ] || skip "no /etc/mtab"
}
has_gpgme () {
local ret
has_ostree_feature () {
local ret=0
# Note that this needs to write to a file and then grep the file, to
# avoid ostree --version being killed with SIGPIPE and exiting with a
# nonzero status under `set -o pipefail`.
${CMD_PREFIX} ostree --version > version.txt
grep -q -e '- gpgme' version.txt
ret=$?
grep -q -e "- $1\$" version.txt || ret=$?
rm -f version.txt
return ${ret}
}
skip_without_gpgme() {
if ! has_gpgme; then
skip "no gpg support compiled in"
skip_without_ostree_feature () {
if ! has_ostree_feature "$1"; then
skip "no $1 support compiled in"
fi
}
@ -750,21 +752,6 @@ libtest_cleanup_gpg () {
}
libtest_exit_cmds+=(libtest_cleanup_gpg)
has_sign_ed25519 () {
local ret
${CMD_PREFIX} ostree --version > version.txt
grep -q -e '- sign-ed25519' version.txt
ret=$?
rm -f version.txt
return ${ret}
}
skip_without_sign_ed25519() {
if ! has_sign_ed25519; then
skip "no ed25519 support compiled in"
fi
}
# Keys for ed25519 signing tests
ED25519PUBLIC=
ED25519SEED=

View File

@ -54,7 +54,7 @@ function verify_initial_contents() {
n_base_tests=35
gpg_tests=3
if has_gpgme; then
if has_ostree_feature gpgme; then
echo "1..$(($n_base_tests+$gpg_tests))"
else
echo "1..$((n_base_tests))"
@ -633,7 +633,7 @@ fi
assert_file_has_content err.txt "404"
echo "ok pull repo 404"
if has_gpgme; then
if has_ostree_feature gpgme; then
cd ${test_tmpdir}
repo_init --set=gpg-verify=true
if ${CMD_PREFIX} ostree --repo=repo --depth=0 pull origin main 2>err.txt; then
@ -653,7 +653,7 @@ assert_file_has_content err.txt "404"
find ostree-srv/gnomerepo/objects -name '*.dirtree.orig' | while read f; do mv ${f} $(dirname $f)/$(basename ${f} .orig); done
echo "ok pull repo 404 on dirtree object"
if has_gpgme; then
if has_ostree_feature gpgme; then
cd ${test_tmpdir}
repo_init --set=gpg-verify=true
${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} \

View File

@ -21,10 +21,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh
if ! has_gpgme; then
echo "1..0 #SKIP no gpg support compiled in"
exit 0
fi
skip_without_ostree_feature gpgme
if test -z "${OSTREE_HTTPD}"; then
echo "1..0 #SKIP no ostree-trivial-httpd"

View File

@ -24,7 +24,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh
skip_without_gpgme
skip_without_ostree_feature gpgme
echo "1..5"

View File

@ -23,7 +23,7 @@ set -euo pipefail
skip_without_user_xattrs
skip_without_sign_ed25519
skip_without_ostree_feature sign-ed25519
bindatafiles="bash true ostree"

View File

@ -21,7 +21,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh
skip_without_gpgme
skip_without_ostree_feature gpgme
echo '1..1'

View File

@ -22,10 +22,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh
if ! has_gpgme; then
echo "1..0 #SKIP no gpgme support compiled in"
exit 0
fi
skip_without_ostree_feature gpgme
num_tests=1

View File

@ -61,7 +61,7 @@ cmp checkout1.files checkout2.files
cmp checkout1.files checkout3.files
echo "ok checkouts same"
if has_gpgme; then
if has_ostree_feature gpgme; then
# These tests are needed GPG support
mkdir repo4
ostree_repo_init repo4 --mode="archive"

View File

@ -23,7 +23,7 @@ set -euo pipefail
skip_without_user_xattrs
skip_without_gpgme
skip_without_ostree_feature gpgme
echo '1..2'

View File

@ -23,7 +23,7 @@ set -euo pipefail
echo "1..1"
if ! has_sign_ed25519; then
if ! has_ostree_feature sign-ed25519; then
echo "ok pre-signed pull # SKIP due ed25519 unavailability"
exit 0
fi

View File

@ -33,7 +33,7 @@ do_commit() {
mkdir -p files
pushd files
local GPG_ARGS=""
if has_gpgme; then
if has_ostree_feature gpgme; then
GPG_ARGS="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
fi
${CMD_PREFIX} ostree --repo="../${repo}" commit -s "Test ${repo} commit for branch ${branch}" -b "${branch}" ${GPG_ARGS} "$@" > "../${branch}-checksum"
@ -45,7 +45,7 @@ do_summary() {
shift 1
local GPG_ARGS=""
if has_gpgme; then
if has_ostree_feature gpgme; then
GPG_ARGS="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
fi
${CMD_PREFIX} ostree "--repo=${repo}" summary --update ${GPG_ARGS}
@ -103,7 +103,7 @@ do_remote_add() {
shift 2
local GPG_ARGS=""
if has_gpgme; then
if has_ostree_feature gpgme; then
GPG_ARGS="--gpg-import=${test_tmpdir}/gpghome/key1.asc"
fi
${CMD_PREFIX} ostree "--repo=${repo}" remote add "${remote_repo}-remote" "file://$(pwd)/${remote_repo}" "$@" ${GPG_ARGS}

View File

@ -29,7 +29,7 @@ fi
echo "1..2"
COMMIT_SIGN=""
if has_gpgme; then
if has_ostree_feature gpgme; then
COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
fi
@ -47,7 +47,7 @@ cp -a ${test_tmpdir}/ostree-srv ostree
# delete all the meta stuff from here
rm ostree/gnomerepo/summary
if has_gpgme; then
if has_ostree_feature gpgme; then
rm ostree/gnomerepo/summary.sig
find ostree/gnomerepo/objects -name '*.commitmeta' | xargs rm
fi
@ -63,7 +63,7 @@ echo "http://127.0.0.1:${content_port}" > ${test_tmpdir}/httpd-content-address
cd ${test_tmpdir}
mkdir repo
ostree_repo_init repo
if has_gpgme; then VERIFY=true; else VERIFY=false; fi
if has_ostree_feature gpgme; then VERIFY=true; else VERIFY=false; fi
${CMD_PREFIX} ostree --repo=repo remote add origin \
--set=gpg-verify=$VERIFY --set=gpg-verify-summary=$VERIFY \
--contenturl=$(cat httpd-content-address)/ostree/gnomerepo \
@ -72,7 +72,7 @@ ${CMD_PREFIX} ostree --repo=repo pull origin:main
echo "ok pull objects from contenturl"
if ! has_gpgme; then
if ! has_ostree_feature gpgme; then
echo "ok don't pull sigs from contenturl # SKIP not compiled with gpgme"
else
echo "ok don't pull sigs from contenturl"

View File

@ -22,7 +22,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh
COMMIT_SIGN=""
if has_gpgme; then
if has_ostree_feature gpgme; then
COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
echo "1..5"
else
@ -67,7 +67,7 @@ find repo/objects -name '*.filez' | while read name; do
done
echo "ok pull mirror summary"
if ! has_gpgme; then
if ! has_ostree_feature gpgme; then
exit 0;
fi

View File

@ -22,7 +22,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh
COMMIT_SIGN=""
if has_gpgme; then
if has_ostree_feature gpgme; then
COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
fi

View File

@ -24,10 +24,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh
if ! has_gpgme; then
echo "1..0 #SKIP no gpg support compiled in"
exit 0
fi
skip_without_ostree_feature gpgme
# Ensure repo caching is in use.
unset OSTREE_SKIP_CACHE

View File

@ -25,7 +25,7 @@ set -euo pipefail
unset OSTREE_SKIP_CACHE
COMMIT_SIGN=""
if has_gpgme; then
if has_ostree_feature gpgme; then
COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
echo "1..10"
else
@ -63,7 +63,7 @@ assert_file_has_content yet-another-copy/yet-another-hello-world "hello world ye
${CMD_PREFIX} ostree --repo=repo fsck
echo "ok pull mirror summary"
if ! has_gpgme; then
if ! has_ostree_feature gpgme; then
exit 0;
fi

View File

@ -61,7 +61,7 @@ assert_file_has_content_literal err.txt ' No valid signatures found'
echo "ok dummy sig requires env"
# tests below require libsodium support
if ! has_sign_ed25519; then
if ! has_ostree_feature sign-ed25519; then
echo "ok Detached ed25519 signature # SKIP due libsodium unavailability"
echo "ok ed25519 signature verified # SKIP due libsodium unavailability"
echo "ok multiple signing # SKIP due libsodium unavailability"

View File

@ -52,7 +52,7 @@ do
PUBLIC_KEY="dummysign"
;;
ed25519)
if ! has_sign_ed25519; then
if ! has_ostree_feature sign-ed25519; then
echo "ok ${engine} pull mirror summary # SKIP due libsodium unavailability"
echo "ok ${engine} pull with signed summary # SKIP due libsodium unavailability"
echo "ok ${engine} prune summary cache # SKIP due libsodium unavailability"
@ -174,7 +174,7 @@ do
done
if ! has_sign_ed25519; then
if ! has_ostree_feature sign-ed25519; then
echo "ok ${engine} pull with signed summary remote old summary # SKIP due libsodium unavailability"
echo "ok ${engine} pull with signed summary broken cache # SKIP due libsodium unavailability"
exit 0

View File

@ -140,7 +140,7 @@ fi
assert_file_has_content err.txt 'Invalid key reference'
echo "ok remote add errs"
if ! has_sign_ed25519; then
if ! has_ostree_feature sign-ed25519; then
echo "ok ed25519-key pull signed commit # SKIP due libsodium unavailability"
echo "ok ed25519-key re-pull signature for stored commit # SKIP due libsodium unavailability"
echo "ok ed25519-key+file pull signed commit # SKIP due libsodium unavailability"

View File

@ -27,7 +27,7 @@ set -euo pipefail
echo "1..2"
COMMIT_SIGN=""
if has_gpgme; then
if has_ostree_feature gpgme; then
COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
fi

View File

@ -27,7 +27,7 @@ set -euo pipefail
echo "1..2"
COMMIT_SIGN=""
if has_gpgme; then
if has_ostree_feature gpgme; then
COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
fi