From 8019ec2b1e1938711e4cccf4af19e61512ee8dcd Mon Sep 17 00:00:00 2001 From: Charles McGarvey Date: Sun, 17 Nov 2019 17:32:16 -0700 Subject: [PATCH] compare long paths on win32 --- dist.ini | 1 + t/app-codeowners-util.t | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/dist.ini b/dist.ini index 8a066de..4849184 100644 --- a/dist.ini +++ b/dist.ini @@ -25,6 +25,7 @@ remove_runtime = Text::CSV remove_runtime = Text::Table::Any remove_runtime = Unicode::GCString remove_runtime = YAML +remove_test = Win32 [Prereqs / RuntimeRecommends] Pod::Usage = 0 Term::Detect::Software = 0 diff --git a/t/app-codeowners-util.t b/t/app-codeowners-util.t index 4d7d224..477d848 100644 --- a/t/app-codeowners-util.t +++ b/t/app-codeowners-util.t @@ -42,12 +42,13 @@ subtest 'git_ls_files' => sub { subtest 'git_toplevel' => sub { plan skip_all => 'Cannot run git' if !$can_git; my $repodir =_setup_git_repo(); + my $repodir_fixed = _fix_win32_path($repodir); my $r = App::Codeowners::Util::git_toplevel($repodir); - is($r->canonpath, $repodir->canonpath, 'found toplevel directory from toplevel'); + is($r->canonpath, $repodir_fixed->canonpath, 'found toplevel directory from toplevel'); $r = App::Codeowners::Util::git_toplevel($repodir->child('a/b')); - is($r->canonpath, $repodir->canonpath, 'found toplevel directory'); + is($r->canonpath, $repodir_fixed->canonpath, 'found toplevel directory'); }; subtest 'find_nearest_codeowners' => sub { @@ -99,6 +100,15 @@ sub _setup_git_repo { return $repodir; } +sub _fix_win32_path { + my $path = shift; + # Git for Windows shows full paths + if (eval { require Win32 }) { + $path = path(Win32::GetLongPathName($path)); + } + return $path; +} + sub _spew_codeowners { my $path = path(shift); $path->spew_utf8(\"foo.txt \@twix\n"); -- 2.43.0