doc: document the TAP test environment variables

The TAP tests can, to some degree, be controlled by a set of environment
variables. These were however only documented in a README and not in the
main documentation.  This adds documentation of these variables, as well
as changes one CPAN reference to a ulink for consistency.  While there,
also tag CPAN as an acronym as it's listed in the acronyms section.

Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/YyPd9unV14SX2bLF@paquier.xyz
This commit is contained in:
Daniel Gustafsson 2022-11-16 10:25:21 +01:00
parent 5f80cd287c
commit c4421550fb
2 changed files with 34 additions and 2 deletions

View File

@ -487,7 +487,8 @@ $ENV{CONFIG}="Debug";
As of this writing, <literal>IPC::Run</literal> is not included in the As of this writing, <literal>IPC::Run</literal> is not included in the
ActiveState Perl installation, nor in the ActiveState Perl Package ActiveState Perl installation, nor in the ActiveState Perl Package
Manager (PPM) library. To install, download the Manager (PPM) library. To install, download the
<filename>IPC-Run-&lt;version&gt;.tar.gz</filename> source archive from CPAN, <filename>IPC-Run-&lt;version&gt;.tar.gz</filename> source archive from
<acronym>CPAN</acronym>,
at <ulink url="https://metacpan.org/dist/IPC-Run"></ulink>, and at <ulink url="https://metacpan.org/dist/IPC-Run"></ulink>, and
uncompress. Edit the <filename>buildenv.pl</filename> file, and add a PERL5LIB uncompress. Edit the <filename>buildenv.pl</filename> file, and add a PERL5LIB
variable to point to the <filename>lib</filename> subdirectory from the variable to point to the <filename>lib</filename> subdirectory from the
@ -518,6 +519,11 @@ $ENV{PROVE_TESTS}='t/020*.pl t/010*.pl'
</programlisting> </programlisting>
</para> </para>
<para>
Additionally, the behavior of TAP tests can be controlled by a set of
environment variables, see <xref linkend="regress-tap-vars" />.
</para>
<para> <para>
Some of the TAP tests depend on a set of external commands that would Some of the TAP tests depend on a set of external commands that would
optionally trigger tests related to them. Each one of those variables optionally trigger tests related to them. Each one of those variables

View File

@ -765,7 +765,9 @@ make check PROVE_TESTS='t/001_test1.pl t/003_test3.pl'
<para> <para>
The TAP tests require the Perl module <literal>IPC::Run</literal>. The TAP tests require the Perl module <literal>IPC::Run</literal>.
This module is available from CPAN or an operating system package. This module is available from
<ulink url="https://metacpan.org/dist/IPC-Run">CPAN</ulink>
or an operating system package.
They also require <productname>PostgreSQL</productname> to be They also require <productname>PostgreSQL</productname> to be
configured with the option <option>--enable-tap-tests</option>. configured with the option <option>--enable-tap-tests</option>.
</para> </para>
@ -789,6 +791,30 @@ make check PROVE_TESTS='t/001_test1.pl t/003_test3.pl'
meaning that <literal>make installcheck</literal> will produce a mix of meaning that <literal>make installcheck</literal> will produce a mix of
results from temporary servers and the already-running test server. results from temporary servers and the already-running test server.
</para> </para>
<sect2 id="regress-tap-vars">
<title>Environment variables</title>
<para>
Data directories are named according to the test filename, and will be
retained if a test fails. If the environment variable
<varname>PG_TEST_NOCLEAN</varname> is set, data directories will be
retained regardless of test status. For example, retaining the data
directory regardless of test results when running the
<application>pg_dump</application> tests:
<programlisting>
PG_TEST_NOCLEAN=1 make -C src/bin/pg_dump check
</programlisting>
</para>
<para>
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
<varname>PG_TEST_TIMEOUT_DEFAULT</varname> to a higher number will change
the default to avoid this.
</para>
</sect2>
</sect1> </sect1>
<sect1 id="regress-coverage"> <sect1 id="regress-coverage">