Commit ca3f43aa authored by Robert Haas's avatar Robert Haas

Change TAP test framework to not rely on having a chmod executable.

This might not work at all on Windows, and is not ever efficient.

Michael Paquier
parent b76e76be
...@@ -43,6 +43,20 @@ sub copy_files ...@@ -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 sub configure_test_server_for_ssl
{ {
my $tempdir = $_[0]; my $tempdir = $_[0];
...@@ -68,7 +82,7 @@ sub configure_test_server_for_ssl ...@@ -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 all server certificates and keys, and client root cert, to the data dir
copy_files("ssl/server-*.crt", "$tempdir/pgdata"); copy_files("ssl/server-*.crt", "$tempdir/pgdata");
copy_files("ssl/server-*.key", "$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_ca.crt", "$tempdir/pgdata");
copy_files("ssl/root+client.crl", "$tempdir/pgdata"); copy_files("ssl/root+client.crl", "$tempdir/pgdata");
......
...@@ -78,7 +78,7 @@ sub test_connect_fails ...@@ -78,7 +78,7 @@ sub test_connect_fails
# The client's private key must not be world-readable. Git doesn't track # 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 # permissions (except for the executable bit), so they might be wrong after
# a checkout. # a checkout.
system_or_bail "chmod 0600 ssl/client.key"; chmod 0600, "ssl/client.key";
#### Part 0. Set up the server. #### Part 0. Set up the server.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment