diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2015-04-09 22:07:18 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2015-04-09 22:07:18 +0300 |
commit | 5d79b67bdd57c2fed3e66f5102bd79e88ecb5af3 (patch) | |
tree | e5e3f12bc7f1ccb5f266032c6b77d6fafde40be8 /src/test/ssl/ServerSetup.pm | |
parent | 0fb256dc8291657489e75ebb9cedc9a5012348ef (diff) | |
download | postgresql-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.pm | 25 |
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. |