]> granicus.if.org Git - postgresql/commitdiff
Add PG_TEST_EXTRA to control optional test suites
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 3 Mar 2018 06:29:51 +0000 (01:29 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Sat, 3 Mar 2018 06:40:48 +0000 (01:40 -0500)
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>

configure
configure.in
doc/src/sgml/regress.sgml
src/Makefile.global.in
src/test/Makefile

index 7dcca506f8b20f1a62b16246853861cd32e9a86a..1242e310b477eb57506e5a23cf1897612cd577f2 100755 (executable)
--- a/configure
+++ b/configure
@@ -708,6 +708,7 @@ with_uuid
 with_systemd
 with_selinux
 with_openssl
+with_ldap
 krb_srvtab
 with_python
 with_perl
@@ -5925,6 +5926,7 @@ fi
 $as_echo "$with_ldap" >&6; }
 
 
+
 #
 # Bonjour
 #
index 4d2603457921f855614974bf24bc72c22ac3c527..aee3ab086764440955086964cd00a148300c25d1 100644 (file)
@@ -682,6 +682,7 @@ PGAC_ARG_BOOL(with, ldap, no,
               [build with LDAP support],
               [AC_DEFINE([USE_LDAP], 1, [Define to 1 to build with LDAP support. (--with-ldap)])])
 AC_MSG_RESULT([$with_ldap])
+AC_SUBST(with_ldap)
 
 
 #
index ca2716a6d7a1ac757417d59798f803e17e2082ab..3c448dc5bc44fe62ece936ea68d9771476c9cbd6 100644 (file)
@@ -211,6 +211,44 @@ make installcheck-world
    option <option>--enable-tap-tests</option>.  This is recommended for
    development, but can be omitted if there is no suitable Perl installation.
   </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>
index d980f81046260bba9480877a1ea4ce054b6c3a2f..dcb8dc5d90d290bf14d6d80eeeb6b1c8b410c909 100644 (file)
@@ -186,6 +186,7 @@ with_tcl    = @with_tcl@
 with_openssl   = @with_openssl@
 with_selinux   = @with_selinux@
 with_systemd   = @with_systemd@
+with_ldap      = @with_ldap@
 with_libxml    = @with_libxml@
 with_libxslt   = @with_libxslt@
 with_system_tzdata = @with_system_tzdata@
index 73abf163f1d35e4d8bff3fe1483e7a67b40553b6..3de942829997340109f728353406f7be474b78b2 100644 (file)
@@ -14,11 +14,25 @@ include $(top_builddir)/src/Makefile.global
 
 SUBDIRS = perl regress isolation modules authentication recovery subscription
 
-# We don't build or execute examples/, locale/, or thread/ by default,
-# but we do want "make clean" etc to recurse into them.  Likewise for
-# ldap/ and ssl/, because these test suites are not secure to run on a
-# multi-user system.
-ALWAYS_SUBDIRS = examples ldap locale thread ssl
+# Test suites that are not safe by default but can be run if selected
+# by the user via the whitespace-separated list in variable
+# PG_TEST_EXTRA:
+ifeq ($(with_ldap),yes)
+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
 # installcheck and install should not recurse into the subdirectory "modules".