Hi all, The TAP tests in src/test/ssl are using system() in combination with chmod, but perl has a command chmod integrated into it, and it would work better on Windows as well. The attached patch is aimed at fixing that.
Regards, -- Michael
diff --git a/src/test/ssl/ServerSetup.pm b/src/test/ssl/ServerSetup.pm index 4ce4a69..bbff99a 100644 --- a/src/test/ssl/ServerSetup.pm +++ b/src/test/ssl/ServerSetup.pm @@ -43,6 +43,20 @@ sub copy_files } } +# Perform chmod on a set of files, taking into account wildcards +sub chmod_files +{ + my $mode = shift; + my $file_expr = shift; + + my @all_files = glob $file_expr; + foreach my $file_entry (@all_files) + { + chmod $mode, $file_entry + or die "Could not run chmod with mode $mode on $file_entry"; + } +} + sub configure_test_server_for_ssl { my $tempdir = $_[0]; @@ -68,7 +82,7 @@ sub configure_test_server_for_ssl # Copy all server certificates and keys, and client root cert, to the data dir copy_files("ssl/server-*.crt", "$tempdir/pgdata"); copy_files("ssl/server-*.key", "$tempdir/pgdata"); - system_or_bail "chmod 0600 '$tempdir'/pgdata/server-*.key"; + chmod_files(0600, "$tempdir/pgdata/server-*.key"); copy_files("ssl/root+client_ca.crt", "$tempdir/pgdata"); copy_files("ssl/root+client.crl", "$tempdir/pgdata"); diff --git a/src/test/ssl/t/001_ssltests.pl b/src/test/ssl/t/001_ssltests.pl index 926b529..5d24d8d 100644 --- a/src/test/ssl/t/001_ssltests.pl +++ b/src/test/ssl/t/001_ssltests.pl @@ -78,7 +78,7 @@ sub test_connect_fails # The client's private key must not be world-readable. Git doesn't track # permissions (except for the executable bit), so they might be wrong after # a checkout. -system_or_bail "chmod 0600 ssl/client.key"; +chmod 0600, "ssl/client.key"; #### Part 0. Set up the server.
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers