Manpages

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/>;.