1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#!/bin/sh
set -eu
pkgtype="${1}"
pkg="${2}"
autopkgtest=autopkgtest
if ! autopkgtest --help | grep -q '[-][-]validate'; then
echo "W: skipping autopkgtest validation as autopkgtest does not support --validate" >&2
autopkgtest=:
fi
if [ -z "${AUTOPKGTEST_TMP:-}" ]; then
AUTOPKGTEST_TMP=$(mktemp --directory)
trap "rm -rf ${AUTOPKGTEST_TMP}" INT TERM EXIT
fi
run() {
echo '$' "$@"
"$@"
}
banner() {
char="${1}"
shift
echo
echo
echo "========================================================================" | tr = "${char}"
echo "$@"
echo "========================================================================" | tr = "${char}"
}
banner = "${pkgtype}"
tmpdir="$(mktemp --directory --tmpdir="${AUTOPKGTEST_TMP}" "${pkg}.XXXXXXXXX")"
cd "${tmpdir}"
mkdir "${pkg}"
cd "${pkg}"
if [ "${pkgtype}" = python ]; then
binpkg="$(echo "${pkg}" | sed -e 's/python-/python3-/')"
else
binpkg="${pkg}"
fi
mkdir debian
cat > debian/control <<EOF
Source: ${pkg}
Testsuite: autopkgtest-pkg-${pkgtype}
Package: ${binpkg}
Architecture: all
EOF
cat > debian/changelog <<EOF
pkg (0.0.1-1) UNRELEASED; urgency=medium
* Sample package
-- The Maintainer <maintainer@debian.org> Mon, 27 Dec 2021 16:32:42 -0300
EOF
# basic
banner - "${pkgtype} plain test"
run autodep8
run $autopkgtest --quiet --no-built-binaries --validate . -- null
# with conf
mkdir -p "debian/tests"
printf "extra_depends=foo\n" > "debian/tests/autopkgtest-pkg-${pkgtype}.conf"
banner - "${pkgtype} test with extra_depends=foo"
run cat debian/tests/autopkgtest-pkg-${pkgtype}.conf
run autodep8
run $autopkgtest --quiet --no-built-binaries --validate . -- null
run sh -ec 'autodep8 | grep "^Depends:.*, foo\$"'
printf "extra_restrictions=foo\n" > "debian/tests/autopkgtest-pkg-${pkgtype}.conf"
banner - "${pkgtype} test with extra_restrictions=foo"
run cat debian/tests/autopkgtest-pkg-${pkgtype}.conf
run autodep8
run $autopkgtest --quiet --no-built-binaries --validate . -- null
run sh -ec 'autodep8 | grep "^Restrictions:.*, foo\$"'
|