Skip to content

Commit 4cc1c76

Browse files
committed
Document PG_TEST_EXTRA=libpq_encryption and also check 'kerberos'
In the libpq encryption negotiation tests, don't run the GSSAPI tests unless PG_TEST_EXTRA='kerberos' is also set. That makes it possible to still run most of the tests when GSSAPI support is compiled in, but there's no MIT Kerberos installation.
1 parent 65dfe9d commit 4cc1c76

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

doc/src/sgml/regress.sgml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ make check-world -j8 >/dev/null
259259
variable <varname>PG_TEST_EXTRA</varname> to a whitespace-separated list,
260260
for example:
261261
<programlisting>
262-
make check-world PG_TEST_EXTRA='kerberos ldap ssl load_balance'
262+
make check-world PG_TEST_EXTRA='kerberos ldap ssl load_balance libpq_encryption'
263263
</programlisting>
264264
The following values are currently supported:
265265
<variablelist>
@@ -304,6 +304,18 @@ make check-world PG_TEST_EXTRA='kerberos ldap ssl load_balance'
304304
</listitem>
305305
</varlistentry>
306306

307+
<varlistentry>
308+
<term><literal>libpq_encryption</literal></term>
309+
<listitem>
310+
<para>
311+
Runs the test <filename>src/interfaces/libpq/t/005_negotiate_encryption.pl</filename>.
312+
This opens TCP/IP listen sockets. If <varname>PG_TEST_EXTRA</varname>
313+
also includes <literal>kerberos</literal>, additional tests that require
314+
an MIT Kerberos installation are enabled.
315+
</para>
316+
</listitem>
317+
</varlistentry>
318+
307319
<varlistentry>
308320
<term><literal>wal_consistency_checking</literal></term>
309321
<listitem>

src/interfaces/libpq/t/005_negotiate_encryption.pl

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,11 @@
8383
'Potentially unsafe test libpq_encryption not enabled in PG_TEST_EXTRA';
8484
}
8585

86-
my $ssl_supported = $ENV{with_ssl} eq 'openssl';
86+
# Only run the GSSAPI tests when compiled with GSSAPI support and
87+
# PG_TEST_EXTRA includes 'kerberos'
8788
my $gss_supported = $ENV{with_gssapi} eq 'yes';
89+
my $kerberos_enabled = $ENV{PG_TEST_EXTRA} && $ENV{PG_TEST_EXTRA} =~ /\bkerberos\b/;
90+
my $ssl_supported = $ENV{with_ssl} eq 'openssl';
8891

8992
###
9093
### Prepare test server for GSSAPI and SSL authentication, with a few
@@ -118,7 +121,7 @@
118121

119122
my $krb;
120123

121-
if ($gss_supported != 0)
124+
if ($gss_supported != 0 && $kerberos_enabled != 0)
122125
{
123126
note "setting up Kerberos";
124127

@@ -197,7 +200,7 @@ BEGIN
197200

198201
print $hba qq{
199202
hostgssenc postgres gssuser $servercidr trust
200-
} if ($gss_supported != 0);
203+
} if ($gss_supported != 0 && $kerberos_enabled != 0);
201204
close $hba;
202205
$node->reload;
203206

@@ -331,6 +334,7 @@ BEGIN
331334
SKIP:
332335
{
333336
skip "GSSAPI/Kerberos not supported by this build" if $gss_supported == 0;
337+
skip "kerberos not enabled in PG_TEST_EXTRA" if $kerberos_enabled == 0;
334338

335339
$krb->create_principal('gssuser', $gssuser_password);
336340
$krb->create_ticket('gssuser', $gssuser_password);
@@ -413,7 +417,9 @@ BEGIN
413417
###
414418
SKIP:
415419
{
416-
skip "GSSAPI/Kerberos or SSL not supported by this build" unless ($ssl_supported && $gss_supported);
420+
skip "SSL not supported by this build" if $ssl_supported == 0;
421+
skip "GSSAPI/Kerberos not supported by this build" if $gss_supported == 0;
422+
skip "kerberos not enabled in PG_TEST_EXTRA" if $kerberos_enabled == 0;
417423

418424
# Sanity check that GSSAPI is still enabled from previous test.
419425
connect_test($node, 'user=testuser gssencmode=prefer sslmode=prefer', 'connect, gssaccept, authok -> gss');

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy