aboutsummaryrefslogtreecommitdiff
path: root/src/test/ssl/ServerSetup.pm
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-04-09 22:07:18 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-04-09 22:07:18 +0300
commit5d79b67bdd57c2fed3e66f5102bd79e88ecb5af3 (patch)
treee5e3f12bc7f1ccb5f266032c6b77d6fafde40be8 /src/test/ssl/ServerSetup.pm
parent0fb256dc8291657489e75ebb9cedc9a5012348ef (diff)
downloadpostgresql-5d79b67bdd57c2fed3e66f5102bd79e88ecb5af3.tar.gz
postgresql-5d79b67bdd57c2fed3e66f5102bd79e88ecb5af3.zip
Make SSL regression test suite more portable by avoiding cp.
Use perl 'glob' and File::Copy instead of "cp". This takes us one step closer to running the suite on Windows. Michael Paquier
Diffstat (limited to 'src/test/ssl/ServerSetup.pm')
-rw-r--r--src/test/ssl/ServerSetup.pm25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/test/ssl/ServerSetup.pm b/src/test/ssl/ServerSetup.pm
index 1579dc9137a..fda3afebc18 100644
--- a/src/test/ssl/ServerSetup.pm
+++ b/src/test/ssl/ServerSetup.pm
@@ -19,6 +19,8 @@ package ServerSetup;
use strict;
use warnings;
use TestLib;
+use File::Basename;
+use File::Copy;
use Test::More;
use Exporter 'import';
@@ -26,6 +28,20 @@ our @EXPORT = qw(
configure_test_server_for_ssl switch_server_cert
);
+# Copy a set of files, taking into account wildcards
+sub copy_files
+{
+ my $orig = shift;
+ my $dest = shift;
+
+ my @orig_files = glob $orig;
+ foreach my $orig_file (@orig_files)
+ {
+ my $base_file = basename($orig_file);
+ copy($orig_file, "$dest/$base_file") or die "Could not copy $orig_file to $dest";
+ }
+}
+
sub configure_test_server_for_ssl
{
my $tempdir = $_[0];
@@ -48,13 +64,12 @@ sub configure_test_server_for_ssl
close CONF;
-
# Copy all server certificates and keys, and client root cert, to the data dir
- system_or_bail "cp ssl/server-*.crt '$tempdir'/pgdata";
- system_or_bail "cp ssl/server-*.key '$tempdir'/pgdata";
+ copy_files("ssl/server-*.crt", "$tempdir/pgdata");
+ copy_files("ssl/server-*.key", "$tempdir/pgdata");
system_or_bail "chmod 0600 '$tempdir'/pgdata/server-*.key";
- system_or_bail "cp ssl/root+client_ca.crt '$tempdir'/pgdata";
- system_or_bail "cp ssl/root+client.crl '$tempdir'/pgdata";
+ copy_files("ssl/root+client_ca.crt", "$tempdir/pgdata");
+ copy_files("ssl/root+client.crl", "$tempdir/pgdata");
# Only accept SSL connections from localhost. Our tests don't depend on this
# but seems best to keep it as narrow as possible for security reasons.