NAME
autodep8 - DEP-8 test control file generator
DESCRIPTION
autodep8 will detect well-known types of packages and generate DEP-8-compliant test control files for them. It can be used by DEP-8 implementations to support implicit test control files.
USAGE
$ autodep8 # assumes source package in current dir $ autodep8 /path/to/srcpkg # path to source package
If a known package type is detected, autodep8 exits with 0 and prints the suggested contents of debian/tests/control to the standard output.
If a known package type is NOT detected, autodep8 exits with 1 and produces not output.
AUTOMATIC USAGE BY AUTOPKGTEST
autodep8 can be automatically called by autopkgtest(1). To achieve that, you must set the Testsuite: field in the source package paragraph to autopkgtest-pkg-TYPE, where TYPE if one of package types supported by autodep8. The valid values of TYPE are listed below as the headings of the " EXAMPLES OF PRODUCED TEST CONTROL FILES" section.
See the autopkgtest(1) documentation for more details.
HOW THE PACKAGE TYPE IS DETECTED
autodep8 will first look for Testsuite: autopkgtest-pkg-TYPE field in debian/control. if TYPE is a known package type, then that is used. If not, each supported package type is tried against a set of heuristics, based on packages names, build dependencies. specific files under debian/, or a combination of those.
PACKAGE-SPECIFIC CONFIGURATION
Packages can provide configuration for autodep8 in debian/tests/autopkgtest-pkg-${ PACKAGETYPE }.conf. The file format is the following:
# comment lines start with # and are ignored. # note that #'s only mark comments when in the beginning of the line # empty lines are also ignored # values are set in this format: var1=value1 # spaces around the = sign are allowed var2 = value 2 # backslashes allow one to set values that span multiple lines. # Note that the newline is removed in the final value, though # The following is equivalent to "multiline=value1, value2" variable = value1, \ value2
The following configuration variables are supported:
All package
types
extra_depends: extra test dependencies to be added to
the generated tests. Will be included as-is in the generated
control file.
extra_restrictions: extra restrictions to be added to the generated tests. Will be included as-is in the generated control file.
python
(debian/tests/autopkgtest-pkg-python.conf)
import_name: name of the module to import, if it cannot
be inferred from the name of the Debian package. For
example, ’python3-xlib’ is used via
’import Xlib’, so ’import_name =
Xlib’ would be appropriate. This used to be configured
by writing to
’debian/tests/pkg-python/import-name’, but that
is now deprecated.
COMBINING AUTO-GENERATED TESTS WITH MANUALLY SPECIFIED ONES
If ’debian/tests/control’ exists, autodep8 will prepend the contents of that file to its own output. In that case, autodep8 will exit with a status of 0 even if no known package type is detected. The same applies for ’debian/tests/control.autodep8’, but the use of that file is deprecated because the test dependencies defined there aren’t processed by dpkg-source.
EXAMPLES OF PRODUCED TEST CONTROL FILES
dkms (kpatch)
Test-Command: /usr/lib/dkms/dkms-autopkgtest Restrictions: needs-root, allow-stderr Depends: @, dkms
elpa (flycheck)
Test-Command: dh_elpa_test --autopkgtest Depends: @, @builddeps@ Restrictions: rw-build-tree
go (prometheus)
Test-Command: /usr/bin/dh_golang_autopkgtest Depends: @, @builddeps@, dh-golang Restrictions: allow-stderr
nodejs (node-tar)
Test-Command: /usr/share/pkg-js-autopkgtest/runner require Depends: @, pkg-js-autopkgtest Restrictions: superficial Test-Command: /usr/share/pkg-js-autopkgtest/runner Depends: @, @builddeps@, pkg-js-autopkgtest Restrictions: allow-stderr, skippable
octave (octave-signal)
Test-Command: DH_OCTAVE_TEST_ENV="xvfb-run -a" /usr/bin/dh_octave_check --use-installed-package Depends: @, octave-control (>= 3.1.0), dh-octave-autopkgtest (>= 0.5.6), xauth, xvfb Restrictions: allow-stderr
perl (libtest-most-perl)
Test-Command: /usr/share/pkg-perl-autopkgtest/runner build-deps Depends: @, @builddeps@, pkg-perl-autopkgtest Features: test-name=autodep8-perl-build-deps Test-Command: /usr/share/pkg-perl-autopkgtest/runner runtime-deps Depends: @, pkg-perl-autopkgtest Features: test-name=autodep8-perl Test-Command: /usr/share/pkg-perl-autopkgtest/runner runtime-deps-and-recommends Depends: @, pkg-perl-autopkgtest Restrictions: needs-recommends Features: test-name=autodep8-perl-recommends
python (python-flaky)
Test-Command: set -e ; for py in $(pyversions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -c "import flaky; print flaky" ; done Depends: python-all, python-flaky Restrictions: allow-stderr, superficial Features: test-name=autodep8-python2 Test-Command: set -e ; for py in $(py3versions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -c "import flaky; print(flaky)" ; done Depends: python3-all, python3-flaky Restrictions: allow-stderr, superficial Features: test-name=autodep8-python3 Test-Command: cd "$AUTOPKGTEST_TMP" ; pypy -c "import flaky; print flaky" Depends: pypy-flaky Restrictions: allow-stderr, superficial Features: test-name=autodep8-pypy
r (r-cran-evaluate)
Test-Command: /usr/share/dh-r/pkg-r-autopkgtest Depends: @, r-cran-testthat,r-cran-testthat-dbgsym,r-cran-lattice,r-cran-lattice-dbgsym,r-cran-ggplot2, pkg-r-autopkgtest Restrictions: allow-stderr
ruby (ruby-sqlite3)
Test-Command: gem2deb-test-runner --autopkgtest --check-dependencies 2>&1 Depends: @, libsqlite3-dev,rake,ruby-hoe,ruby-minitest,ruby-redcloth, gem2deb-test-runner
COPYRIGHT
Copyright (c) 2014 by the contributing authors. See ’git log’ for details.
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 3 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, see <http://www.gnu.org/licenses/>.