From 8e8df2581275142c22b8a3330fda285766f46cdc Mon Sep 17 00:00:00 2001 From: David Kitcher-Jones Date: Wed, 3 Dec 2014 10:39:16 +0000 Subject: [PATCH 1/2] This patch fixes RT bug #60528 - Modifies Test::Pod::Coverage::all_modules to cope with absolute dirs - Adds a corresponding test case --- lib/Test/Pod/Coverage.pm | 13 ++++++++++++- t/all_modules_absolute.t | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 t/all_modules_absolute.t diff --git a/lib/Test/Pod/Coverage.pm b/lib/Test/Pod/Coverage.pm index f803b93..62f5902 100644 --- a/lib/Test/Pod/Coverage.pm +++ b/lib/Test/Pod/Coverage.pm @@ -83,6 +83,7 @@ use 5.006; use strict; use warnings; +use File::Spec; use Pod::Coverage; use Test::Builder; @@ -209,6 +210,10 @@ sub all_modules { my @starters = @_ ? @_ : _starting_points(); my %starters = map {$_,1} @starters; + # Starters paths and their depths + my %starters_parts = + map { $_, scalar(File::Spec->splitdir($_)) } grep { -d $_ } @starters; + my @queue = @starters; my @modules; @@ -229,7 +234,13 @@ sub all_modules { next unless $file =~ /\.pm$/; my @parts = File::Spec->splitdir( $file ); - shift @parts if @parts && exists $starters{$parts[0]}; + + # Deal with paths.. e.g blib/, lib/ or /foo/bar + my ($known_path) = grep { $file =~ m/^$_/ } keys %starters; + for (1..$starters_parts{$known_path}) { + shift @parts; + } + shift @parts if @parts && $parts[0] eq "lib"; $parts[-1] =~ s/\.pm$// if @parts; diff --git a/t/all_modules_absolute.t b/t/all_modules_absolute.t new file mode 100644 index 0000000..4d80cc1 --- /dev/null +++ b/t/all_modules_absolute.t @@ -0,0 +1,18 @@ +#!perl -T + +use strict; + +use Test::More tests => 2; + +BEGIN { + use_ok( "Test::Pod::Coverage" ); +} + +my @files = Test::Pod::Coverage::all_modules( File::Spec->rel2abs("blib") ); + +# The expected files have slashes, not File::Spec separators, because +# that's how File::Find does it. +my @expected = qw( Test::Pod::Coverage ); +@files = sort @files; +@expected = sort @expected; +is_deeply( \@files, \@expected, "Got all the distro files" ); From 921d3e3f499b969fb4c6861393a42d5cda41f6e5 Mon Sep 17 00:00:00 2001 From: David Kitcher-Jones Date: Wed, 3 Dec 2014 13:12:17 +0000 Subject: [PATCH 2/2] Update all_modules_absolute.t Added missing import --- t/all_modules_absolute.t | 1 + 1 file changed, 1 insertion(+) diff --git a/t/all_modules_absolute.t b/t/all_modules_absolute.t index 4d80cc1..410531b 100644 --- a/t/all_modules_absolute.t +++ b/t/all_modules_absolute.t @@ -2,6 +2,7 @@ use strict; +use File::Spec; use Test::More tests => 2; BEGIN {