Fix TAP infrastructure to support Mingw better

archive_command and restore_command need to refer to Windows paths, not
Msys virtual file system paths, as postgres is completely unaware of the
latter, so prefix them with the Windows path to the virtual file system
root. Clean psql and pg_recvlogical output of carriage returns.
This commit is contained in:
Andrew Dunstan 2017-04-23 09:21:38 -04:00
parent 7d68f2281a
commit 33f3bbc6d3
1 changed files with 15 additions and 2 deletions

View File

@ -101,6 +101,15 @@ our @EXPORT = qw(
our ($test_localhost, $test_pghost, $last_port_assigned, @all_nodes);
# Windows path to virtual file system root
our $vfs_path = '';
if ($Config{osname} eq 'msys')
{
$vfs_path = `cd / && pwd -W`;
chomp $vfs_path;
}
INIT
{
@ -763,7 +772,7 @@ standby_mode=on
sub enable_restoring
{
my ($self, $root_node) = @_;
my $path = $root_node->archive_dir;
my $path = $vfs_path . $root_node->archive_dir;
my $name = $self->name;
print "### Enabling WAL restore for node \"$name\"\n";
@ -791,7 +800,7 @@ standby_mode = on
sub enable_archiving
{
my ($self) = @_;
my $path = $self->archive_dir;
my $path = $vfs_path . $self->archive_dir;
my $name = $self->name;
print "### Enabling WAL archiving for node \"$name\"\n";
@ -979,6 +988,7 @@ sub safe_psql
print "\n#### End standard error\n";
}
$stdout =~ s/\r//g if $TestLib::windows_os;
return $stdout;
}
@ -1579,6 +1589,9 @@ sub pg_recvlogical_upto
}
};
$stdout =~ s/\r//g if $TestLib::windows_os;
$stderr =~ s/\r//g if $TestLib::windows_os;
if (wantarray)
{
return ($ret, $stdout, $stderr, $timeout);