Refactor PG_TEST_EXTRA logic in autoconf build

To avoid duplicating the PG_TEST_EXTRA logic in Makefiles into the upcoming
meson based build definition, move the checks into the the tests
themselves. That also has the advantage of making skipped tests visible.

Reviewed-by: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Author: Nazir Bilal Yavuz <byavuz81@gmail.com>
Author: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/7dae5979-c6c0-cec5-7a36-76a85aa8053d@enterprisedb.com
This commit is contained in:
Andres Freund 2022-09-20 11:09:30 -07:00
parent bb44a6ba48
commit c3382a3c3c
6 changed files with 25 additions and 10 deletions

View File

@ -17,25 +17,20 @@ SUBDIRS = perl regress isolation modules authentication recovery subscription
ifeq ($(with_icu),yes)
SUBDIRS += icu
endif
# 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_gssapi),yes)
ifneq (,$(filter kerberos,$(PG_TEST_EXTRA)))
SUBDIRS += kerberos
endif
endif
ifeq ($(with_ldap),yes)
ifneq (,$(filter ldap,$(PG_TEST_EXTRA)))
SUBDIRS += ldap
endif
endif
ifeq ($(with_ssl),openssl)
ifneq (,$(filter ssl,$(PG_TEST_EXTRA)))
SUBDIRS += ssl
endif
endif
# 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.
# Export PG_TEST_EXTRA to check it in individual tap tests.
export PG_TEST_EXTRA
# 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

View File

@ -25,6 +25,10 @@ if ($ENV{with_gssapi} ne 'yes')
{
plan skip_all => 'GSSAPI/Kerberos not supported by this build';
}
elsif ($ENV{PG_TEST_EXTRA} !~ /\bkerberos\b/)
{
plan skip_all => 'Potentially unsafe test GSSAPI/Kerberos not enabled in PG_TEST_EXTRA';
}
my ($krb5_bin_dir, $krb5_sbin_dir);

View File

@ -16,6 +16,10 @@ if ($ENV{with_ldap} ne 'yes')
{
plan skip_all => 'LDAP not supported by this build';
}
elsif ($ENV{PG_TEST_EXTRA} !~ /\bldap\b/)
{
plan skip_all => 'Potentially unsafe test LDAP not enabled in PG_TEST_EXTRA';
}
elsif ($^O eq 'darwin' && -d '/usr/local/opt/openldap')
{
# typical paths for Homebrew

View File

@ -17,6 +17,10 @@ if ($ENV{with_ssl} ne 'openssl')
{
plan skip_all => 'OpenSSL not supported by this build';
}
elsif ($ENV{PG_TEST_EXTRA} !~ /ssl/)
{
plan skip_all => 'Potentially unsafe test SSL not enabled in PG_TEST_EXTRA';
}
my $ssl_server = SSL::Server->new();

View File

@ -20,6 +20,10 @@ if ($ENV{with_ssl} ne 'openssl')
{
plan skip_all => 'OpenSSL not supported by this build';
}
elsif ($ENV{PG_TEST_EXTRA} !~ /\bssl\b/)
{
plan skip_all => 'Potentially unsafe test SSL not enabled in PG_TEST_EXTRA';
}
my $ssl_server = SSL::Server->new();

View File

@ -18,6 +18,10 @@ if ($ENV{with_ssl} ne 'openssl')
{
plan skip_all => 'OpenSSL not supported by this build';
}
elsif ($ENV{PG_TEST_EXTRA} !~ /\bssl\b/)
{
plan skip_all => 'Potentially unsafe test SSL not enabled in PG_TEST_EXTRA';
}
#### Some configuration
my $ssl_server = SSL::Server->new();