Scroll to navigation

autodep8(1) autodep8(1)

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

2020-08-11