summaryrefslogtreecommitdiff
path: root/src/test/perl
diff options
context:
space:
mode:
authorTom Lane2021-10-31 22:12:44 +0000
committerTom Lane2021-10-31 22:12:44 +0000
commitb21415595cace7f3a45cfeb3023359b4b4d56b85 (patch)
tree30be6079ed7cd972ab6ecb966b1bd463e931622b /src/test/perl
parent6301c3adabd947394682e37c933b0f3f83353b28 (diff)
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
Diffstat (limited to 'src/test/perl')
-rw-r--r--src/test/perl/README23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/test/perl/README b/src/test/perl/README
index 0e9a00ea058..d62db9b5d88 100644
--- a/src/test/perl/README
+++ b/src/test/perl/README
@@ -12,22 +12,29 @@ $(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
something like PROVE_TESTS="t/001_testname.pl t/002_othertestname.pl" to make.
-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
-see if your new tests make sense under an existing tree in src/test, like
-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
-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'
+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
+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
+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
+patches are submitted, using perltidy --profile=src/tools/pgindent/perltidyrc
+
Tests are written using Perl's Test::More with some PostgreSQL-specific
infrastructure from src/test/perl providing node management, support for
invoking 'psql' to run queries and get results, etc. You should read the