dpkg functional test-suite
~~~~~~~~~~~~~~~~~~~~~~~~~~

How to run
----------

There's a brief usage information when invoking “make” on the topdir.

You probably want to use something like eatmydata to run the tests, it
affects the performance significantly.

To test the tools from the dpkg build-tree, use the «test» target. If you
want instead to test the installed programs use the «installtest» target.

To test with the compiler sanitizer «configure ---enable-compiler-sanitizer»,
and run the tests normally.

The DPKG_TESTSUITE_OPTIONS environment/make variable can be used to change
the behavior of the test runs, the following options are currently
supported:

* as-root

  WARNING: This runs the tests in privileged mode, and will write to your
  current root filesystem. If you are uncertain of the consequences, run
  it at least on a chroot, or isolated in a virtual machine.

* test-all

  This runs all tests, including manual and failing ones.

* debug

  This makes dpkg print lots of debug output.

The configuration file ‘.pkg-tests.conf’ can be used to set permanent
parameters. For example:

  ,-- .pkg-tests.conf --
  |DPKG_TESTSUITE_OPTIONS := debug
  `--

Test-suite layout
-----------------

The tests are split into logical units, testing a specific characteristic.
To add a new test please check Test.mk and Makefile on the topdir, and some
of the current tests. Patches welcome!

Future plans
------------

There's lots of tests that are still missing, we are adding new ones when
we stumble over regressions, when adding new functionality, and as time
permits for existing functionality.

The idea is for this to progressively be integrated into the autotools
autotest suite under src/at/, and be run as part of “make check”. Some
changes to dpkg would need to be implemented first.
