From: Junio C Hamano Date: Wed, 10 Jan 2018 22:01:31 +0000 (-0800) Subject: Merge branch 'js/perl-path-workaround-in-tests' X-Git-Tag: v2.16.0-rc2~5 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/fac910641a3795a7a6a5b5d4fb51719ea96d159c?hp=a466ef018ee9106f6e5b6247f32e7f1fb6a25577 Merge branch 'js/perl-path-workaround-in-tests' * js/perl-path-workaround-in-tests: mingw: handle GITPERLLIB in t0021 in a Windows-compatible way --- diff --git a/t/t0021/rot13-filter.pl b/t/t0021/rot13-filter.pl index f1678851de..470107248e 100644 --- a/t/t0021/rot13-filter.pl +++ b/t/t0021/rot13-filter.pl @@ -31,7 +31,22 @@ # use 5.008; -use lib (split(/:/, $ENV{GITPERLLIB})); +sub gitperllib { + # Git assumes that all path lists are Unix-y colon-separated ones. But + # when the Git for Windows executes the test suite, its MSYS2 Bash + # calls git.exe, and colon-separated path lists are converted into + # Windows-y semicolon-separated lists of *Windows* paths (which + # naturally contain a colon after the drive letter, so splitting by + # colons simply does not cut it). + # + # Detect semicolon-separated path list and handle them appropriately. + + if ($ENV{GITPERLLIB} =~ /;/) { + return split(/;/, $ENV{GITPERLLIB}); + } + return split(/:/, $ENV{GITPERLLIB}); +} +use lib (gitperllib()); use strict; use warnings; use IO::File;