From a09009e4278439f99d03adfefe2eec72ca35dcc3 Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Wed, 2 Sep 2015 16:21:38 -0400
Subject: [PATCH] Update the SSL test suite for recent changes to TAP testing
 framework.

listen_addresses needs to be handled differently now, and so does
logging.

Michael Paquier
---
 src/test/ssl/ServerSetup.pm    | 16 +++++++---------
 src/test/ssl/t/001_ssltests.pl | 12 ++----------
 2 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/src/test/ssl/ServerSetup.pm b/src/test/ssl/ServerSetup.pm
index a8228b04c0..a6c77b5c80 100644
--- a/src/test/ssl/ServerSetup.pm
+++ b/src/test/ssl/ServerSetup.pm
@@ -45,7 +45,8 @@ sub copy_files
 
 sub configure_test_server_for_ssl
 {
-	my $tempdir = $_[0];
+	my $tempdir    = $_[0];
+	my $serverhost = $_[1];
 
 	# Create test users and databases
 	psql 'postgres', "CREATE USER ssltestuser";
@@ -58,6 +59,7 @@ sub configure_test_server_for_ssl
 	print CONF "fsync=off\n";
 	print CONF "log_connections=on\n";
 	print CONF "log_hostname=on\n";
+	print CONF "listen_addresses='$serverhost'\n";
 	print CONF "log_statement=all\n";
 
 	# enable SSL and set up server key
@@ -80,11 +82,11 @@ sub configure_test_server_for_ssl
 	print HBA
 "# TYPE  DATABASE        USER            ADDRESS                 METHOD\n";
 	print HBA
-"hostssl trustdb         ssltestuser     127.0.0.1/32            trust\n";
+"hostssl trustdb         ssltestuser     $serverhost/32            trust\n";
 	print HBA
 "hostssl trustdb         ssltestuser     ::1/128                 trust\n";
 	print HBA
-"hostssl certdb          ssltestuser     127.0.0.1/32            cert\n";
+"hostssl certdb          ssltestuser     $serverhost/32            cert\n";
 	print HBA
 "hostssl certdb          ssltestuser     ::1/128                 cert\n";
 	close HBA;
@@ -107,10 +109,6 @@ sub switch_server_cert
 	print SSLCONF "ssl_crl_file='root+client.crl'\n";
 	close SSLCONF;
 
-   # Stop and restart server to reload the new config. We cannot use
-   # restart_test_server() because that overrides listen_addresses to only all
-   # Unix domain socket connections.
-
-	system_or_bail 'pg_ctl', 'stop', '-D', "$tempdir/pgdata";
-	system_or_bail 'pg_ctl', 'start', '-D', "$tempdir/pgdata", '-w';
+	# Stop and restart server to reload the new config.
+	restart_test_server();
 }
diff --git a/src/test/ssl/t/001_ssltests.pl b/src/test/ssl/t/001_ssltests.pl
index 5d24d8de52..0d6f339335 100644
--- a/src/test/ssl/t/001_ssltests.pl
+++ b/src/test/ssl/t/001_ssltests.pl
@@ -27,9 +27,6 @@ my $SERVERHOSTADDR = '127.0.0.1';
 
 my $tempdir = TestLib::tempdir;
 
-#my $tempdir = "tmp_check";
-
-
 # Define a couple of helper functions to test connecting to the server.
 
 my $common_connstr;
@@ -43,12 +40,7 @@ sub run_test_psql
 		'psql', '-A', '-t', '-c', "SELECT 'connected with $connstr'",
 		'-d', "$connstr" ];
 
-	open CLIENTLOG, ">>$tempdir/client-log"
-	  or die "Could not open client-log file";
-	print CLIENTLOG "\n# Running test: $connstr $logstring\n";
-	close CLIENTLOG;
-
-	my $result = run $cmd, '>>', "$tempdir/client-log", '2>&1';
+	my $result = run_log($cmd);
 	return $result;
 }
 
@@ -84,7 +76,7 @@ chmod 0600, "ssl/client.key";
 
 diag "setting up data directory in \"$tempdir\"...";
 start_test_server($tempdir);
-configure_test_server_for_ssl($tempdir);
+configure_test_server_for_ssl($tempdir, $SERVERHOSTADDR);
 switch_server_cert($tempdir, 'server-cn-only');
 
 ### Part 1. Run client-side tests.
-- 
2.40.0