Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Make TestLib::perl2host more consistent and robust
authorAndrew Dunstan <andrew@dunslane.net>
Thu, 29 Jul 2021 16:15:03 +0000 (12:15 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Thu, 29 Jul 2021 16:15:03 +0000 (12:15 -0400)
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.

src/test/perl/TestLib.pm

index 15572abbea403994f834b193a8dbdf2824240ac6..cbab1587cc2f9a52e1172708b89f269e6f68155b 100644 (file)
@@ -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;
 }