blob: 27c4ac28232d7f081302368559b4b06a0363cd92 (
plain)
- #!/bin/sh
- # 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/..
- if [ ! -f debian/tests/control ]; then
- echo "Package does not have autopkgtest support, debian/tests/control is missing"
- exit 0
- fi
- if [ ! -f debian/files ]; then
- echo "Package source is not built, debian/files is missing" >&2
- exit 1
- fi
- if [ -n "${ADT_OPTIONS:-}" ] ; then
- echo "*** Using provided ADT_OPTIONS $ADT_OPTIONS ***"
- fi
- # try to launch adt-run 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 autopkgtest apt-utils pbuilder $newpid_name
- # 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
- mkdir -p "$BUILDDIR/autopkgtest.out"
- $newpid_name adt-run \
- ${OUTPUT_OPTION} "$BUILDDIR/autopkgtest.out" \
- --summary "$BUILDDIR/autopkgtest.summary" \
- "$BUILDDIR"/*.deb \
- --built-tree "${PWD}" \
- ${ADT_OPTIONS:-} --- adt-virt-null || EXIT=$?
- # 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
- BUILDDIR="${BUILDDIR:-/tmp/buildd}"
- #apt-get install -y "${APTGETOPT[@]}" vim less
- cd "$BUILDDIR"/*/debian/..
- /bin/bash < /dev/tty > /dev/tty 2> /dev/tty
- exit 0
- ;;
- *)
- exit ${EXIT:-0}
- ;;
- esac
|