Doc: improve README files associated with TAP tests.

Rearrange src/test/perl/README so that the first section is more
clearly "how to run these tests", and the rest "how to write new
tests".  Add some basic info there about debugging test failures.
Then, add cross-refs to that READNE from other READMEs that
describe how to run TAP tests.

Per suggestion from Kevin Burke, though this is not his original
patch.

Discussion: https://postgr.es/m/CAKcy5eiSbwiQnmCfnOnDCVC7B8fYyev3E=6pvvECP9pLE-Fcuw@mail.gmail.com
This commit is contained in:
Tom Lane 2021-10-31 18:12:44 -04:00
parent 6301c3adab
commit b21415595c
8 changed files with 35 additions and 12 deletions

View File

@ -17,3 +17,5 @@ You can use "make installcheck" if you previously did "make install".
In that case, the code in the installation tree is tested. With In that case, the code in the installation tree is tested. With
"make check", a temporary installation tree is built from the current "make check", a temporary installation tree is built from the current
sources and then tested. sources and then tested.
See src/test/perl/README for more info about running these tests.

View File

@ -24,3 +24,5 @@ sources and then tested.
Either way, this test initializes, starts, and stops a test Postgres Either way, this test initializes, starts, and stops a test Postgres
cluster. cluster.
See src/test/perl/README for more info about running these tests.

View File

@ -32,6 +32,8 @@ sources and then tested.
Either way, this test initializes, starts, and stops a test Postgres Either way, this test initializes, starts, and stops a test Postgres
cluster, as well as a test KDC server. cluster, as well as a test KDC server.
See src/test/perl/README for more info about running these tests.
Requirements Requirements
============ ============

View File

@ -31,6 +31,8 @@ sources and then tested.
Either way, this test initializes, starts, and stops a test Postgres Either way, this test initializes, starts, and stops a test Postgres
cluster, as well as a test LDAP server. cluster, as well as a test LDAP server.
See src/test/perl/README for more info about running these tests.
Requirements Requirements
============ ============

View File

@ -12,6 +12,21 @@ $(prove_installcheck) targets in Makefile.global. By default every test in the
t/ subdirectory is run. Individual test(s) can be run instead by passing t/ subdirectory is run. Individual test(s) can be run instead by passing
something like PROVE_TESTS="t/001_testname.pl t/002_othertestname.pl" to make. something like PROVE_TESTS="t/001_testname.pl t/002_othertestname.pl" to make.
By default, to keep the noise low during runs, we do not set any flags via
PROVE_FLAGS, but this can be done on the 'make' command line if desired, eg:
make check-world PROVE_FLAGS='--verbose'
When a test fails, the terminal output from 'prove' is usually not sufficient
to diagnose the problem. Look into the log files that are left under
tmp_check/log/ to get more info. Files named 'regress_log_XXX' are log
output from the perl test scripts themselves, and should be examined first.
Other files are postmaster logs, and may be helpful as additional data.
Writing tests
-------------
You should prefer to write tests using pg_regress in src/test/regress, or You should prefer to write tests using pg_regress in src/test/regress, or
isolation tester specs in src/test/isolation, if possible. If not, check to isolation tester specs in src/test/isolation, if possible. If not, check to
see if your new tests make sense under an existing tree in src/test, like see if your new tests make sense under an existing tree in src/test, like
@ -20,14 +35,6 @@ src/test/ssl, or should be added to one of the suites for an existing utility.
Note that all tests and test tools should have perltidy run on them before Note that all tests and test tools should have perltidy run on them before
patches are submitted, using perltidy --profile=src/tools/pgindent/perltidyrc patches are submitted, using perltidy --profile=src/tools/pgindent/perltidyrc
By default, to keep the noise low during runs, we do not set any flags via
PROVE_FLAGS, but this can be done on the 'make' command line if desired, eg:
make check-world PROVE_FLAGS='--verbose'
Writing tests
-------------
Tests are written using Perl's Test::More with some PostgreSQL-specific Tests are written using Perl's Test::More with some PostgreSQL-specific
infrastructure from src/test/perl providing node management, support for infrastructure from src/test/perl providing node management, support for
invoking 'psql' to run queries and get results, etc. You should read the invoking 'psql' to run queries and get results, etc. You should read the

View File

@ -23,3 +23,5 @@ sources and then tested.
Either way, this test initializes, starts, and stops several test Postgres Either way, this test initializes, starts, and stops several test Postgres
clusters. clusters.
See src/test/perl/README for more info about running these tests.

View File

@ -29,6 +29,8 @@ sources and then tested.
Either way, this test initializes, starts, and stops a test Postgres Either way, this test initializes, starts, and stops a test Postgres
cluster that is accessible to other local users! cluster that is accessible to other local users!
See src/test/perl/README for more info about running these tests.
Certificates Certificates
============ ============

View File

@ -9,15 +9,19 @@ Running the tests
================= =================
NOTE: You must have given the --enable-tap-tests argument to configure. NOTE: You must have given the --enable-tap-tests argument to configure.
Also, to use "make installcheck", you must have built and installed
contrib/hstore in addition to the core code.
Run Run
make check make check
or or
make installcheck make installcheck
You can use "make installcheck" if you previously did "make install" You can use "make installcheck" if you previously did "make install".
(including installing the hstore extension). In that case, the code In that case, the code in the installation tree is tested. With
in the installation tree is tested. With "make check", a temporary "make check", a temporary installation tree is built from the current
installation tree is built from the current sources and then tested. sources and then tested.
Either way, this test initializes, starts, and stops several test Postgres Either way, this test initializes, starts, and stops several test Postgres
clusters. clusters.
See src/test/perl/README for more info about running these tests.