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.