abuild/tests/abuild-sign.bats
Kevin Daudt 2a95c3d50c tests: only generate key when not available yet
Installing a build key requires root permissions, something that is not
possible in all cases, most notably on the builders.

Instead of generating a key each time, which results in many keys being
generated each test suite run, check whether a key is already present by
using `abuild-sign --installed`, and only generate a key when that
returns false.
2021-10-11 23:12:59 +02:00

38 lines
839 B
Bash

#/usr/bin/env bats
setup() {
export ABUILD="$PWD/../abuild"
export ABUILD_SHAREDIR="$PWD/.."
export ABUILD_CONF=/dev/null
tmpdir="$BATS_TMPDIR"/abuild
export REPODEST="$tmpdir"/packages
export CLEANUP="srcdir bldroot pkgdir deps"
export WORKDIR="$tmpdir"/work
export APORTSDIR="$PWD"/testrepo
export PATH="$PWD/../:$PATH"
export ARCH=$(apk --print-arch)
if ! abuild-sign --installed 2>/dev/null; then
abuild-keygen -ain >/dev/null 2>&1
fi
mkdir -p "$tmpdir" "$WORKDIR"
}
teardown() {
rm -rf "$tmpdir"
}
@test 'abuild-sign: do not record user name/id in index' {
cd testrepo/pkg1
$ABUILD
tar tvzf "$REPODEST"/testrepo/"$ARCH"/APKINDEX.tar.gz --numeric-owner|
while read -r _ user _ _ _ f; do
if [ "$user" != "0/0" ]; then
echo "file '$f' is not owned by 0/0 (owned by $user)" >&2
exit 1
fi
done
}