PostgreSQL
33.4. TAP Tests #
Various tests, particularly the client program tests under src/bin
, use the Perl TAP tools and are run using the Perl testing program prove
. You can pass command-line options to prove
by setting the make
variable PROVE_FLAGS
, for example:
make -C src/bin check PROVE_FLAGS='--timer'
See the manual page of prove
for more information.
The make
variable PROVE_TESTS
can be used to define a whitespace-separated list of paths relative to the Makefile
invoking prove
to run the specified subset of tests instead of the default t/*.pl
. For example:
make check PROVE_TESTS='t/001_test1.pl t/003_test3.pl'
The TAP tests require the Perl module IPC::Run
. This module is available from CPAN or an operating system package. They also require PostgreSQL to be configured with the option --enable-tap-tests
.
Generically speaking, the TAP tests will test the executables in a previously-installed installation tree if you say make installcheck
, or will build a new local installation tree from current sources if you say make check
. In either case they will initialize a local instance (data directory) and transiently run a server in it. Some of these tests run more than one server. Thus, these tests can be fairly resource-intensive.
It’s important to realize that the TAP tests will start test server(s) even when you say make installcheck
; this is unlike the traditional non-TAP testing infrastructure, which expects to use an already-running test server in that case. Some PostgreSQL subdirectories contain both traditional-style and TAP-style tests, meaning that make installcheck
will produce a mix of results from temporary servers and the already-running test server.
33.4.1. Environment Variables #
Data directories are named according to the test filename, and will be retained if a test fails. If the environment variable PG_TEST_NOCLEAN
is set, data directories will be retained regardless of test status. For example, retaining the data directory regardless of test results when running the pg_dump tests:
PG_TEST_NOCLEAN=1 make -C src/bin/pg_dump check
This environment variable also prevents the test’s temporary directories from being removed.
Many operations in the test suites use a 180-second timeout, which on slow hosts may lead to load-induced timeouts. Setting the environment variable PG_TEST_TIMEOUT_DEFAULT
to a higher number will change the default to avoid this.
Prev | Up | Next |
---|---|---|
33.3. Variant Comparison Files |
33.5. Test Coverage Examination |
Submit correction
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.
Copyright © 1996-2024 The PostgreSQL Global Development Group