]> granicus.if.org Git - postgresql/commitdiff
Fix TAP infrastructure to support Mingw better
authorAndrew Dunstan <andrew@dunslane.net>
Sun, 23 Apr 2017 13:21:38 +0000 (09:21 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Sun, 23 Apr 2017 13:21:38 +0000 (09:21 -0400)
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.

src/test/perl/PostgresNode.pm

index e42eb88896f1f35f29551580edb9564ab00b29fc..51cbec8e5d9a4d938c50d8f288ae65b658b0da95 100644 (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);