v3-0001-Extend-configure_test_server_for_ssl-to-add-exten.patch
application/octet-stream
Filename: v3-0001-Extend-configure_test_server_for_ssl-to-add-exten.patch
Type: application/octet-stream
Part: 0
Message:
Re: SSL Tests for sslinfo extension
Patch
Format: format-patch
Series: patch v3-0001
Subject: Extend configure_test_server_for_ssl to add extensions
| File | + | − |
|---|---|---|
| src/test/ssl/t/002_scram.pl | 1 | 1 |
| src/test/ssl/t/SSLServer.pm | 27 | 13 |
From 5afa53382c4badc47fbfccd9268a8b9fc077faf5 Mon Sep 17 00:00:00 2001
From: Daniel Gustafsson <daniel@yesql.se>
Date: Wed, 19 May 2021 14:49:20 +0200
Subject: [PATCH v3 1/3] Extend configure_test_server_for_ssl to add extensions
In order to be able to test extensions with SSL connections, allow
configure_test_server_for_ssl to create any extensions passed as
an array. Each extension is created in all the test databases which
may or may not be useful.
---
src/test/ssl/t/002_scram.pl | 2 +-
src/test/ssl/t/SSLServer.pm | 40 +++++++++++++++++++++++++------------
2 files changed, 28 insertions(+), 14 deletions(-)
diff --git a/src/test/ssl/t/002_scram.pl b/src/test/ssl/t/002_scram.pl
index 983554263f..88803ee5c5 100644
--- a/src/test/ssl/t/002_scram.pl
+++ b/src/test/ssl/t/002_scram.pl
@@ -49,7 +49,7 @@ $node->start;
# Configure server for SSL connections, with password handling.
configure_test_server_for_ssl($node, $SERVERHOSTADDR, $SERVERHOSTCIDR,
- "scram-sha-256", "pass", "scram-sha-256");
+ "scram-sha-256", 'password' => "pass", 'password_enc' => "scram-sha-256");
switch_server_cert($node, 'server-cn-only');
$ENV{PGPASSWORD} = "pass";
$common_connstr =
diff --git a/src/test/ssl/t/SSLServer.pm b/src/test/ssl/t/SSLServer.pm
index c5999e0b33..3d7ff40b97 100644
--- a/src/test/ssl/t/SSLServer.pm
+++ b/src/test/ssl/t/SSLServer.pm
@@ -62,38 +62,52 @@ sub copy_files
# servercidr: what to put in pg_hba.conf, e.g. '127.0.0.1/32'
sub configure_test_server_for_ssl
{
- my ($node, $serverhost, $servercidr, $authmethod, $password,
- $password_enc) = @_;
-
+ my ($node, $serverhost, $servercidr, $authmethod, %params) = @_;
my $pgdata = $node->data_dir;
+ my @databases = ( 'trustdb', 'certdb', 'certdb_dn', 'certdb_dn_re', 'certdb_cn', 'verifydb' );
+
# Create test users and databases
$node->psql('postgres', "CREATE USER ssltestuser");
$node->psql('postgres', "CREATE USER md5testuser");
$node->psql('postgres', "CREATE USER anotheruser");
$node->psql('postgres', "CREATE USER yetanotheruser");
- $node->psql('postgres', "CREATE DATABASE trustdb");
- $node->psql('postgres', "CREATE DATABASE certdb");
- $node->psql('postgres', "CREATE DATABASE certdb_dn");
- $node->psql('postgres', "CREATE DATABASE certdb_dn_re");
- $node->psql('postgres', "CREATE DATABASE certdb_cn");
- $node->psql('postgres', "CREATE DATABASE verifydb");
+
+ foreach my $db (@databases)
+ {
+ $node->psql('postgres', "CREATE DATABASE $db");
+ }
# Update password of each user as needed.
- if (defined($password))
+ if (defined($params{password}))
{
+ die "Password encryption must be specified when password is set"
+ unless defined($params{password_enc});
+
$node->psql('postgres',
- "SET password_encryption='$password_enc'; ALTER USER ssltestuser PASSWORD '$password';"
+ "SET password_encryption='$params{password_enc}'; ALTER USER ssltestuser PASSWORD '$params{password}';"
);
# A special user that always has an md5-encrypted password
$node->psql('postgres',
- "SET password_encryption='md5'; ALTER USER md5testuser PASSWORD '$password';"
+ "SET password_encryption='md5'; ALTER USER md5testuser PASSWORD '$params{password}';"
);
$node->psql('postgres',
- "SET password_encryption='$password_enc'; ALTER USER anotheruser PASSWORD '$password';"
+ "SET password_encryption='$params{password_enc}'; ALTER USER anotheruser PASSWORD '$params{password}';"
);
}
+ # Create any extensions requested in the setup
+ if (defined($params{extensions}))
+ {
+ foreach my $extension (@{$params{extensions}})
+ {
+ foreach my $db (@databases)
+ {
+ $node->psql($db, "CREATE EXTENSION $extension CASCADE;");
+ }
+ }
+ }
+
# enable logging etc.
open my $conf, '>>', "$pgdata/postgresql.conf";
print $conf "fsync=off\n";
--
2.24.3 (Apple Git-128)