Commit fdb34824 authored by Peter Eisentraut's avatar Peter Eisentraut

Add PG_TEST_EXTRA to control optional test suites

The SSL and LDAP test suites are not run by default, as they are not
secure for multi-user environments.  This commit adds an extra make
variable to optionally enable them, for example:

make check-world PG_TEST_EXTRA='ldap ssl'

Author: Michael Paquier <michael@paquier.xyz>
parent 0b1d1a03
...@@ -708,6 +708,7 @@ with_uuid ...@@ -708,6 +708,7 @@ with_uuid
with_systemd with_systemd
with_selinux with_selinux
with_openssl with_openssl
with_ldap
krb_srvtab krb_srvtab
with_python with_python
with_perl with_perl
...@@ -5925,6 +5926,7 @@ fi ...@@ -5925,6 +5926,7 @@ fi
$as_echo "$with_ldap" >&6; } $as_echo "$with_ldap" >&6; }
# #
# Bonjour # Bonjour
# #
......
...@@ -682,6 +682,7 @@ PGAC_ARG_BOOL(with, ldap, no, ...@@ -682,6 +682,7 @@ PGAC_ARG_BOOL(with, ldap, no,
[build with LDAP support], [build with LDAP support],
[AC_DEFINE([USE_LDAP], 1, [Define to 1 to build with LDAP support. (--with-ldap)])]) [AC_DEFINE([USE_LDAP], 1, [Define to 1 to build with LDAP support. (--with-ldap)])])
AC_MSG_RESULT([$with_ldap]) AC_MSG_RESULT([$with_ldap])
AC_SUBST(with_ldap)
# #
......
...@@ -211,6 +211,44 @@ make installcheck-world ...@@ -211,6 +211,44 @@ make installcheck-world
option <option>--enable-tap-tests</option>. This is recommended for option <option>--enable-tap-tests</option>. This is recommended for
development, but can be omitted if there is no suitable Perl installation. development, but can be omitted if there is no suitable Perl installation.
</para> </para>
<para>
Some test suites are not run by default, either because they are not secure
to run on a multiuser system or because they require special software. You
can decide which test suites to run additionally by setting the
<command>make</command> or environment variable
<varname>PG_TEST_EXTRA</varname> to a whitespace-separated list, for
example:
<programlisting>
make check-world PG_TEST_EXTRA='ldap ssl'
</programlisting>
The following values are currently supported:
<variablelist>
<varlistentry>
<term><literal>ldap</literal></term>
<listitem>
<para>
Runs the test suite under <filename>src/test/ldap</filename>. This
requires an <productname>OpenLDAP</productname> installation and opens
TCP/IP listen sockets.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ssl</literal></term>
<listitem>
<para>
Runs the test suite under <filename>src/test/ssl</filename>. This opens TCP/IP listen sockets.
</para>
</listitem>
</varlistentry>
</variablelist>
Tests for features that are not supported by the current build
configuration are not run even if they are mentioned in
<varname>PG_TEST_EXTRA</varname>.
</para>
</sect2> </sect2>
<sect2> <sect2>
......
...@@ -186,6 +186,7 @@ with_tcl = @with_tcl@ ...@@ -186,6 +186,7 @@ with_tcl = @with_tcl@
with_openssl = @with_openssl@ with_openssl = @with_openssl@
with_selinux = @with_selinux@ with_selinux = @with_selinux@
with_systemd = @with_systemd@ with_systemd = @with_systemd@
with_ldap = @with_ldap@
with_libxml = @with_libxml@ with_libxml = @with_libxml@
with_libxslt = @with_libxslt@ with_libxslt = @with_libxslt@
with_system_tzdata = @with_system_tzdata@ with_system_tzdata = @with_system_tzdata@
......
...@@ -14,11 +14,25 @@ include $(top_builddir)/src/Makefile.global ...@@ -14,11 +14,25 @@ include $(top_builddir)/src/Makefile.global
SUBDIRS = perl regress isolation modules authentication recovery subscription SUBDIRS = perl regress isolation modules authentication recovery subscription
# We don't build or execute examples/, locale/, or thread/ by default, # Test suites that are not safe by default but can be run if selected
# but we do want "make clean" etc to recurse into them. Likewise for # by the user via the whitespace-separated list in variable
# ldap/ and ssl/, because these test suites are not secure to run on a # PG_TEST_EXTRA:
# multi-user system. ifeq ($(with_ldap),yes)
ALWAYS_SUBDIRS = examples ldap locale thread ssl ifneq (,$(filter ldap,$(PG_TEST_EXTRA)))
SUBDIRS += ldap
endif
endif
ifeq ($(with_openssl),yes)
ifneq (,$(filter ssl,$(PG_TEST_EXTRA)))
SUBDIRS += ssl
endif
endif
# We don't build or execute these by default, but we do want "make
# clean" etc to recurse into them. (We must filter out those that we
# have conditionally included into SUBDIRS above, else there will be
# make confusion.)
ALWAYS_SUBDIRS = $(filter-out $(SUBDIRS),examples ldap locale thread ssl)
# We want to recurse to all subdirs for all standard targets, except that # We want to recurse to all subdirs for all standard targets, except that
# installcheck and install should not recurse into the subdirectory "modules". # installcheck and install should not recurse into the subdirectory "modules".
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment