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

View File

@ -101,6 +101,15 @@ our @EXPORT = qw(
our ($test_localhost, $test_pghost, $last_port_assigned, @all_nodes); 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 INIT
{ {
@ -763,7 +772,7 @@ standby_mode=on
sub enable_restoring sub enable_restoring
{ {
my ($self, $root_node) = @_; my ($self, $root_node) = @_;
my $path = $root_node->archive_dir; my $path = $vfs_path . $root_node->archive_dir;
my $name = $self->name; my $name = $self->name;
print "### Enabling WAL restore for node \"$name\"\n"; print "### Enabling WAL restore for node \"$name\"\n";
@ -791,7 +800,7 @@ standby_mode = on
sub enable_archiving sub enable_archiving
{ {
my ($self) = @_; my ($self) = @_;
my $path = $self->archive_dir; my $path = $vfs_path . $self->archive_dir;
my $name = $self->name; my $name = $self->name;
print "### Enabling WAL archiving for node \"$name\"\n"; print "### Enabling WAL archiving for node \"$name\"\n";
@ -979,6 +988,7 @@ sub safe_psql
print "\n#### End standard error\n"; print "\n#### End standard error\n";
} }
$stdout =~ s/\r//g if $TestLib::windows_os;
return $stdout; 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) if (wantarray)
{ {
return ($ret, $stdout, $stderr, $timeout); return ($ret, $stdout, $stderr, $timeout);