Provided by: autopkgtest_2.14.1_all bug

NAME

       adt-run - test an installed binary package using the package's tests

SYNOPSYS

       adt-run options...  --- virt-server [virt-server-arg...]

DESCRIPTION

       adt-run is the program for invoking the autopkgtest package testing machinery.

       autopkgtest  is  a  facility  for  testing  binary  packages, as installed on a system (such as a testbed
       system).  The tests are those supplied in the source package.

       adt-run runs each test supplied by a particular package and reports the results.  It drives the specified
       virtualisation  regime as appropriate, and parses the test description metadata, and arranges for data to
       be copied to and from the testbed as required.

       adt-run should be invoked (unless options to the contrary are supplied) in the top level directory of the
       built source tree, on the host.  The package should be installed on the testbed.

       See /usr/share/doc/autopkgtest/README.running-tests.gz for an introduction about how to use adt-run.

PROCESSING INSTRUCTIONS

       --source dsc
              Run  tests  from  source  package dsc. By default the package will also be built and the resulting
              binaries will be used to satisfy test dependencies; to disable that,  specify  the  -B/--no-built-
              binaries option before.

              The ordering is significant: each --source option should precede options whose dependencies are to
              be satisfied by the binaries it produces.

       --unbuilt-tree directory
              Specifies that tests from the unbuilt source tree directory should be run.  This is  very  similar
              to  specifying  --source  except  that  a  directory  tree (which should be pristine) is supplied,
              instead of a source package.

       --built-tree directory
              Specifies that tests from the built source tree directory  should  be  run.  Note  that  all  test
              dependencies  are  then satisfied by archive packages, unless you explicitly specify locally built
              .debs with --binary.

       --apt-source srcpkgname
              Downloads srcpkgname with apt-get source in the testbed and run its  tests.  This  is  similar  to
              specifying --source but avoids copying the source from the host to the testbed. Resulting binaries
              will not be used to satisfy dependencies, as usually in this mode you want to test binaries from a
              real archive.

       --binary deb
              Specifies  that deb should be used for tests of all following source packages.  By default it will
              be used to satisfy dependencies, both during building and testing.

              The ordering is significant, as for --source. In particular, if a subsequent source  package  will
              build a binary of the same name, that will be used from then on, and deb will be ignored.

       filename
              Bare  filename arguments are processed as if --built-tree, --source, --unbuilt-tree, --apt-source,
              or --binary was specified; the nature of the argument is guessed from the form  of  the  filename.
              In  the  case  of --built-tree, either the option must be specified, or the filename must end in a
              slash; two slashes at the end are taken to mean --unbuilt-tree.

PROCESSING OPTIONS

       These affect processing instructions.  Unless stated otherwise, they affect all subsequent options.

       --sources-tests|--sources-no-tests Specifies that the tests in  subsequent  --source  and  --unbuilt-tree
       arguments should (or should not) be run.

       --built-binaries-filter=pattern,pattern,...
              Specifies  that  only  binaries  whose package names match one of the specified patterns should be
              used; others will be ignored.  This option  applies  to  subsequent  --source  and  --unbuilt-tree
              arguments.

       -B | --no-built-binaries
              Specifies  that  all  built  binaries  from  source  packages  should  be  ignored completely, and
              dependencies are satisfied with packages from the archive. Note that packages still get built if a
              test  requires  build-needed.  Equivalent to --built-binaries-filter=_ (since no package name ever
              contains _).

       --binaries=ignore | --binaries=auto | --binaries=install
              Specifies that binary package (in subsequently specified --binary  arguments,  or  resulting  from
              subsequently  specified  --source  or  --unbuilt-tree  arguments  and  not filtered out) should be
              ignored,  used  only  to  satisfy  dependencies,  or  installed   unconditionally,   respectively.
              Equivalent to specifying both --binaries-forbuilds and --binaries-fortests.

       --binaries-forbuilds=...
              Like  --binaries= but only changes the handling during package building: packages will be ignored,
              used for dependencies, or unconditionally installed, when a source package is built.

       --binaries-fortests=...
              Like --binaries= but only changes the handling during testing: packages will be ignored, used  for
              dependencies  (including  as the package under test), or unconditionally installed, when tests are
              run (as a result of --source, --built-tree or --unbuilt-tree).

OTHER OPTIONS

       -u user | --user=user
              Run builds and tests as user on the testbed.  This needs root on  the  testbed;  if  root  on  the
              testbed is not available then builds and tests run as whatever user is provided.

       --gain-root=gain-root
              Prefixes  debian/rules  binary with gain-root.  The default is not to use anything, except that if
              --user is supplied or root on the testbed is not available the default is fakeroot.

       -o dir | --output-dir=dir
              Specifies that test artifacts (stderr and stdout from  the  tests,  the  log  file,  built  binary
              packages  etc.)  should  be  placed in the given directory.  dir will be created if necessary, and
              emptied of all of its contents before adt-run starts.

       -l logfile | --log-file=logfile
              Specifies that the trace log should be written to logfile instead of to output-dir.

       --summary=summary
              Specifies that a summary of the outcome should be written to summary.  The events in  the  summary
              are written to the log in any case.

       --timeout-which=seconds
              Use  a  different timeout for operations on or with the testbed.  There are four timeouts affected
              by four values of which: short: supposedly short operations like setting up the testbed's apt  and
              checking  the  state  (default:  100s);  install:  installation of packages including dependencies
              (default: 3ks); test: test runs (default: 10ks); and build: builds (default:  100ks).   The  value
              must be specified as an integer number of seconds.

       --timeout-factor=double
              Multiply  all  of  the default timeouts by the specified factor (see --timeout-which above).  Only
              the defaults are affected; explicit timeout settings are used exactly as specified.

       --debug|-d
              Include additional debugging information in the trace  log.   Each  additional  -d  increases  the
              debugging  level;  the  current maximum is -ddd.  If you like to see what's going on, -d or -dd is
              recommended.

       --shell-fail|-s
              Run an interactive shell in the testbed after every failed test.

       --shell
              Run an interactive shell in the testbed after every test.

       --gnupg-home=dir
              Uses dir as the GNUPGHOME for local apt archive  signing.   The  specified  directory  should  not
              contain keyrings containing other unrelated keys, since adt-run does not specify to gpg which keys
              to use.  The default is $HOME/.autopkgtest.

       --gnupg-home=fresh
              Use a fresh temporary directory and generate fresh keys each run.   This  can  be  very  slow  and
              depends on the availability of sufficient quantities of high-quality entropy.

       -q | --quiet
              Do  not  send a copy of adt-run's trace logstream to stderr.  This option does not affect the copy
              sent to logfile or output-dir.  Note that without the trace logstream  it  can  be  very  hard  to
              diagnose problems.

       --set-lang=langval
              When  running commands on the testbed, sets the LANG environment variable to langval.  The default
              in adt-run is to set it to C.

       --leave-lang
              Suppresses the setting by adt-run of LANG on the testbed.  This results in tests and builds  using
              the testbed's own normal LANG value setting.

       --setup-commands=commands
              Run  commands  after opening the testbed. This can be used e. g. to enable additional apt sources,
              run apt-get update or similar.  If commands is an existing file name, the commands are  read  from
              that;  otherwise  it  is a string with the actual commands that gets run as-is. This option can be
              specified multiple times.

       --apt-upgrade | -U
              Run apt-get update and apt-get dist-upgrade -y in the testbed before running the tests.

       --apt-pocket=pocket
              Add apt sources for release-pocket. This finds the first deb line in  /etc/apt/sources.list  which
              does  not  already  specify  a  pocket  and  adds  a  deb  and  deb-src  line  with that pocket to
              /etc/apt/sources.list.d/pocket.list.  Note that this does not imply calling apt-get update.

VIRTUALIZATION SERVER

       --- virt-server virt-server-arg...
              Specifies the virtualisation regime server, as a command and  arguments  to  invoke.   virt-server
              must  be  an existing autopkgtest virtualization server such as adt-virt-schroot or adt-virt-qemu.
              You can leave out the adt-virt- prefix and just specify the last part, e. g.  schroot.

              All the remaining arguments and options after --- are passed to the virtualisation server program.
              See the manpages of the individual servers for how to use them.

OUTPUT FORMAT

       During a normal test run, one line is printed for each test.  This consists of a short string identifying
       the test, some horizontal whitespace, and either PASS or FAIL reason or SKIP reason where  the  pass/fail
       indication is separated by any reason by some horizontal whitespace.

       The  string  to  identify  the  test  consists  of  a  short  alphanumeric  string invented by adt-run to
       distinguish different command-line arguments, the argid, followed by a hyphen and the test name.

       Sometimes a SKIP will be reported when the name of the test is not known or not applicable: for  example,
       when  there  are  no  tests  in  the  package,  or  a  there is a test stanza which contains features not
       understood by this version of adt-run.  In this case * will appear where the name of the test should be.

       If adt-run detects that erroneous package(s) are involved, it will print the  two  lines  blame:  blamed-
       thing...   and  badpkg:  message.   Here  each  whitespace-separated  blamed-thing is one of arg:argument
       (representing a pathname found in  a  command  line  argument),  dsc:package  (a  source  package  name),
       deb:package  (a  binary  package  name) or possibly other strings to be determined.  This indicates which
       arguments and/or packages might have contributed to the problem;  the  ones  which  were  processed  most
       recently and which are therefore most likely to be the cause of a problem are listed last.

EXIT STATUS

       0    all tests passed
       1    unexpected failure (the python interpreter invents this exit status)
       2    at least one test skipped
       4    at least one test failed
       6    at least one test failed and at least one test skipped
       8    no tests in this package
       12   erroneous package
       16   testbed failure
       20   other unexpected failures including bad usage

SEE ALSO

       /usr/share/doc/autopkgtest/README.running-tests.gz
       /usr/share/doc/autopkgtest/README.package-tests.gz

BUGS

       This tool still lacks some important features and is not very well-tested.

AUTHORS AND COPYRIGHT

       This manpage is part of autopkgtest, a tool for testing Debian binary packages.  autopkgtest is Copyright
       (C) 2006-2007 Canonical Ltd and others.

       See /usr/share/doc/autopkgtest/CREDITS for the list of contributors and full copying conditions.