diff options
author | Mattia Rizzolo <mattia@mapreri.org> | 2015-09-18 09:19:22 +0000 |
---|---|---|
committer | Mattia Rizzolo <mattia@mapreri.org> | 2015-09-18 09:19:22 +0000 |
commit | 86f8423f481d8e9cddcfd8da808eee600f96675a (patch) | |
tree | a418c07c1bbb4225d81088a555313319abeb4bbf | |
parent | c72975124a45c9f0e4295ac89c5d73b7e566e182 (diff) | |
download | pbuilder-86f8423f481d8e9cddcfd8da808eee600f96675a.tar pbuilder-86f8423f481d8e9cddcfd8da808eee600f96675a.tar.gz |
Add a new example hook B20autopkgtest to automatically run DEP8 tests when available
More info:
http://dep.debian.net/deps/dep8/
https://anonscm.debian.org/cgit/autopkgtest/autopkgtest.git/plain/doc/README.package-tests.rst
The initial script is licensed under another license. Agreement in changing
the license from Expat to GPL-2+ is available in https://bugs.debian.org/750137
Thanks: Christoph Berg and Michael Prokop for writing the initial script
Closes: #750137
-rw-r--r-- | examples/B20autopkgtest | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/examples/B20autopkgtest b/examples/B20autopkgtest new file mode 100644 index 0000000..ef50a0c --- /dev/null +++ b/examples/B20autopkgtest @@ -0,0 +1,94 @@ +#!/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 + exit 0 + ;; + *) + exit ${EXIT:-0} + ;; +esac |