aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2021-07-29 12:15:03 -0400
committerAndrew Dunstan <andrew@dunslane.net>2021-07-29 12:16:50 -0400
commit68011e17d098da66070a2d648a609625241f73f6 (patch)
treec42fdc6673a89dff4fcf7925c55f3c07e235bb4a
parent67445deb7eca32d25721dffb228b009bfbe415d5 (diff)
downloadpostgresql-68011e17d098da66070a2d648a609625241f73f6.tar.gz
postgresql-68011e17d098da66070a2d648a609625241f73f6.zip
Make TestLib::perl2host more consistent and robust
Sometimes cygpath has been observed to return a path with a trailing slash. That can cause problems, Also, make "cygpath" usage consistent with "pwd -W" with respect to the use of forward slashes. Backpatch to release 14 where the current code was introduced.
-rw-r--r--src/test/perl/TestLib.pm6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 26fbe08d4be..108f393774e 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -304,6 +304,8 @@ except for the case of Perl=msys and host=mingw32. The subject need not
exist, but its parent or grandparent directory must exist unless cygpath is
available.
+The returned path uses forward slashes but has no trailing slash.
+
=cut
sub perl2host
@@ -313,10 +315,11 @@ sub perl2host
if ($is_msys2)
{
# get absolute, windows type path
- my $path = qx{cygpath -a -w "$subject"};
+ my $path = qx{cygpath -a -m "$subject"};
if (!$?)
{
chomp $path;
+ $path =~ s!/$!!;
return $path if $path;
}
# fall through if this didn't work.
@@ -342,6 +345,7 @@ sub perl2host
# this odd way of calling 'pwd -W' is the only way that seems to work.
my $dir = qx{sh -c "pwd -W"};
chomp $dir;
+ $dir =~ s!/$!!;
chdir $here;
return $dir . $leaf;
}