+++ /dev/null
-From: Simon McVittie <smcv@collabora.com>
-Date: Mon, 19 Feb 2024 15:57:51 +0000
-Subject: tests: Generalize has_gpgme,
- has_sign_ed25519 into has_ostree_feature
-
-Signed-off-by: Simon McVittie <smcv@collabora.com>
-Forwarded: https://github.com/ostreedev/ostree/pull/3184
----
- tests/libtest.sh | 31 +++++++++----------------------
- tests/pull-test.sh | 6 +++---
- tests/test-commit-sign.sh | 5 +----
- tests/test-create-usb.sh | 2 +-
- tests/test-delta-ed25519.sh | 2 +-
- tests/test-find-remotes.sh | 2 +-
- tests/test-gpg-signed-commit.sh | 5 +----
- tests/test-local-pull.sh | 2 +-
- tests/test-parent.sh | 2 +-
- tests/test-pre-signed-pull.sh | 2 +-
- tests/test-pull-collections.sh | 6 +++---
- tests/test-pull-contenturl.sh | 8 ++++----
- tests/test-pull-mirror-summary.sh | 4 ++--
- tests/test-pull-repeated.sh | 2 +-
- tests/test-pull-summary-caching.sh | 5 +----
- tests/test-pull-summary-sigs.sh | 4 ++--
- tests/test-signed-commit.sh | 2 +-
- tests/test-signed-pull-summary.sh | 4 ++--
- tests/test-signed-pull.sh | 2 +-
- tests/test-summary-update.sh | 2 +-
- tests/test-summary-view.sh | 2 +-
- 21 files changed, 39 insertions(+), 61 deletions(-)
-
-diff --git a/tests/libtest.sh b/tests/libtest.sh
-index d1c99ea..2c2a33f 100755
---- a/tests/libtest.sh
-+++ b/tests/libtest.sh
-@@ -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=
-diff --git a/tests/pull-test.sh b/tests/pull-test.sh
-index f408429..d61735a 100644
---- a/tests/pull-test.sh
-+++ b/tests/pull-test.sh
-@@ -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} \
-diff --git a/tests/test-commit-sign.sh b/tests/test-commit-sign.sh
-index e0cea0b..f45dd7b 100755
---- a/tests/test-commit-sign.sh
-+++ b/tests/test-commit-sign.sh
-@@ -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"
-diff --git a/tests/test-create-usb.sh b/tests/test-create-usb.sh
-index 016d32c..064501f 100755
---- a/tests/test-create-usb.sh
-+++ b/tests/test-create-usb.sh
-@@ -24,7 +24,7 @@ set -euo pipefail
-
- . $(dirname $0)/libtest.sh
-
--skip_without_gpgme
-+skip_without_ostree_feature gpgme
-
- echo "1..5"
-
-diff --git a/tests/test-delta-ed25519.sh b/tests/test-delta-ed25519.sh
-index 9e00fdb..9cd2228 100755
---- a/tests/test-delta-ed25519.sh
-+++ b/tests/test-delta-ed25519.sh
-@@ -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"
-
-diff --git a/tests/test-find-remotes.sh b/tests/test-find-remotes.sh
-index abcc41d..3ec81f9 100755
---- a/tests/test-find-remotes.sh
-+++ b/tests/test-find-remotes.sh
-@@ -21,7 +21,7 @@ set -euo pipefail
-
- . $(dirname $0)/libtest.sh
-
--skip_without_gpgme
-+skip_without_ostree_feature gpgme
-
- echo '1..1'
-
-diff --git a/tests/test-gpg-signed-commit.sh b/tests/test-gpg-signed-commit.sh
-index 7b00f9e..d3b5433 100755
---- a/tests/test-gpg-signed-commit.sh
-+++ b/tests/test-gpg-signed-commit.sh
-@@ -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
-
-diff --git a/tests/test-local-pull.sh b/tests/test-local-pull.sh
-index 79b86ab..e1b916c 100755
---- a/tests/test-local-pull.sh
-+++ b/tests/test-local-pull.sh
-@@ -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"
-diff --git a/tests/test-parent.sh b/tests/test-parent.sh
-index 4b5806c..5a8809f 100755
---- a/tests/test-parent.sh
-+++ b/tests/test-parent.sh
-@@ -23,7 +23,7 @@ set -euo pipefail
-
- skip_without_user_xattrs
-
--skip_without_gpgme
-+skip_without_ostree_feature gpgme
-
- echo '1..2'
-
-diff --git a/tests/test-pre-signed-pull.sh b/tests/test-pre-signed-pull.sh
-index 2a1a1d2..0ac8e0a 100755
---- a/tests/test-pre-signed-pull.sh
-+++ b/tests/test-pre-signed-pull.sh
-@@ -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
-diff --git a/tests/test-pull-collections.sh b/tests/test-pull-collections.sh
-index 1d14e5d..518545d 100755
---- a/tests/test-pull-collections.sh
-+++ b/tests/test-pull-collections.sh
-@@ -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}
-diff --git a/tests/test-pull-contenturl.sh b/tests/test-pull-contenturl.sh
-index d47fdfe..63eecf7 100755
---- a/tests/test-pull-contenturl.sh
-+++ b/tests/test-pull-contenturl.sh
-@@ -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"
-diff --git a/tests/test-pull-mirror-summary.sh b/tests/test-pull-mirror-summary.sh
-index 94a8c02..88a37b8 100755
---- a/tests/test-pull-mirror-summary.sh
-+++ b/tests/test-pull-mirror-summary.sh
-@@ -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
-
-diff --git a/tests/test-pull-repeated.sh b/tests/test-pull-repeated.sh
-index 7f724c9..b3e0074 100755
---- a/tests/test-pull-repeated.sh
-+++ b/tests/test-pull-repeated.sh
-@@ -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
-
-diff --git a/tests/test-pull-summary-caching.sh b/tests/test-pull-summary-caching.sh
-index 8c6727d..180f671 100755
---- a/tests/test-pull-summary-caching.sh
-+++ b/tests/test-pull-summary-caching.sh
-@@ -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
-diff --git a/tests/test-pull-summary-sigs.sh b/tests/test-pull-summary-sigs.sh
-index e1b0412..8a5cc4f 100755
---- a/tests/test-pull-summary-sigs.sh
-+++ b/tests/test-pull-summary-sigs.sh
-@@ -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
-
-diff --git a/tests/test-signed-commit.sh b/tests/test-signed-commit.sh
-index 432687d..cf1cd1c 100755
---- a/tests/test-signed-commit.sh
-+++ b/tests/test-signed-commit.sh
-@@ -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"
-diff --git a/tests/test-signed-pull-summary.sh b/tests/test-signed-pull-summary.sh
-index d287389..e533907 100755
---- a/tests/test-signed-pull-summary.sh
-+++ b/tests/test-signed-pull-summary.sh
-@@ -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
-diff --git a/tests/test-signed-pull.sh b/tests/test-signed-pull.sh
-index 5754914..a08d3fb 100755
---- a/tests/test-signed-pull.sh
-+++ b/tests/test-signed-pull.sh
-@@ -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"
-diff --git a/tests/test-summary-update.sh b/tests/test-summary-update.sh
-index d85e9c4..6cf5fcc 100755
---- a/tests/test-summary-update.sh
-+++ b/tests/test-summary-update.sh
-@@ -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
-
-diff --git a/tests/test-summary-view.sh b/tests/test-summary-view.sh
-index 9dfc74f..473c6db 100755
---- a/tests/test-summary-view.sh
-+++ b/tests/test-summary-view.sh
-@@ -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
-