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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
#!/bin/bash
# Copyright © 2012 Christoph Berg <myon@debian.org>
# © 2013 Michael Prokop <mika@debian.org>
# © 2015 Mattia Rizzolo <mattia@mapreri.org>
#
# This file is part of pbuilder -- personal Debian package builder
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
BUILDDIR="${BUILDDIR:-/tmp/buildd}"
if [ "${ADT:-}" = "skip" ]; then
echo "Skipping autopkgtests as requested (ADT is set to 'skip')"
exit 0
fi
if [ "${ADT:-}" = "external" ]; then
echo "Skipping internal autopkgtests as external testing was requested via ADT variable"
exit 0
fi
set -ex
cd "$BUILDDIR"/*/debian/..
apt-get --yes install autodep8
if [ -z "$(autodep8)" ]; then
echo "Package does not have autopkgtest support. Either file"
echo "debian/tests/control is missing or there is no autodep8 support."
exit 0
fi
if [ ! -f debian/files ]; then
echo "Package source is not built, debian/files is missing" >&2
exit 1
fi
OPTS="${AUTOPKGTEST_OPTIONS:-$ADT_OPTIONS}"
if [ -n "${OPTS}" ]; then
echo "*** Using provided AUTOPKGTEST_OPTIONS ${OPTS} ***"
fi
# try to launch autopkgtest in a new PID namespace so several testsuites can run
# in parallel, newpid exists in jessie and newer only though
unset newpid_name
if ! apt-cache policy newpid | grep -q 'newpid:' ; then
echo "The newpid package doesn't seem to be available, not considering for installation"
else
echo "The newpid package seems to be available, considering for installation"
newpid_name='newpid'
fi
# runner/adt-run uses apt-utils's apt-ftparchive and
# pbuilder's pbuilder-satisfydepends-classic
apt-get install -y "${APTGETOPT[@]}" autopkgtest apt-utils pbuilder $newpid_name
mkdir -p "$BUILDDIR/autopkgtest.out"
if which autopkgtest >/dev/null; then
$newpid_name autopkgtest \
--output-dir "$BUILDDIR/autopkgtest.out" \
--summary "$BUILDDIR/autopkgtest.summary" \
"$BUILDDIR"/*.deb \
"${PWD}" \
${OPTS} -- autopkgtest-virt-null || EXIT=$?
else
# since autopkgtest 3.16 the --tmp-dir option is gone, make sure
# we've --output-dir available though before using it
if adt-run --help | grep -q -- --output-dir 2>/dev/null ; then
OUTPUT_OPTION='--output-dir'
else
OUTPUT_OPTION='--tmp-dir'
fi
$newpid_name adt-run \
${OUTPUT_OPTION} "$BUILDDIR/autopkgtest.out" \
--summary "$BUILDDIR/autopkgtest.summary" \
"$BUILDDIR"/*.deb \
--built-tree "${PWD}" \
${OPTS} --- adt-virt-null || EXIT=$?
fi
# collect autopkgtest output in a single file so pbuilder automatically copies it
tar -caf "$BUILDDIR/autopkgtest.tar.gz" "$BUILDDIR/autopkgtest.out"
case ${EXIT:-0} in
2|4|6|8) # let adtsummary_tap report the failure
exit 0
;;
*)
exit ${EXIT:-0}
;;
esac
|