Skip Menu |

This queue is for tickets about the Test-Pod-Coverage CPAN distribution.

Report information
The Basics
Id: 106024
Status: new
Priority: 0/
Queue: Test-Pod-Coverage

People
Owner: Nobody in particular
Requestors: ether [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Test::Pod::Coverage does not understand blib
When running pod coverage tests in B-Hooks-Parser (version 0.15 and up): Failed test 'Pod coverage on arch::B::Hooks::Parser::Install::Files' # at /Volumes/amaretto/Users/ether/.perlbrew/libs/23.1@std/lib/perl5/Test/Pod/Coverage.pm line 133. # arch::B::Hooks::Parser::Install::Files: Couldn't compile 'arch::B::Hooks::Parser::Install::Files' to inspect: Can't locate arch/B/Hooks/Parser/Install/Files.pm in @INC (you may need to install the arch::B::Hooks::Parser::Install::Files module) (@INC contains: /Volumes/amaretto/Users/ether/git/B-Hooks-Parser/.build/IeJx3TwF9V/B-Hooks-Parser-0.15/blib/lib /Volumes/amaretto/Users/ether/git/B-Hooks-Parser/.build/IeJx3TwF9V/B-Hooks-Parser-0.15/blib/arch /Volumes/amaretto/Users/ether/git/B-Hooks-Parser/.build/IeJx3TwF9V/B-Hooks-Parser-0.15/blib/lib /Volumes/amaretto/Users/ether/git/B-Hooks-Parser/.build/IeJx3TwF9V/B-Hooks-Parser-0.15/blib/arch /Volumes/amaretto/Users/ether/.perlbrew/libs/23.1@std/lib/perl5/darwin-2level /Volumes/amaretto/Users/ether/.perlbrew/libs/23.1@std/lib/perl5 /Volumes/amaretto/Users/ether/perl5/perlbrew/perls/23.1/lib/site_perl/5.23.1/darwin-2level /Volumes/amaretto/Users/ether/perl5/perlbrew/perls/23.1/lib/site_perl/5.23.1 /Volumes/amaretto/Users/ether/perl5/perlbrew/perls/23.1/lib/5.23.1/darwin-2level /Volumes/amaretto/Users/ether/perl5/perlbrew/perls/23.1/lib/5.23.1 .) at (eval 28) line 2. It found this file in the distribution: blib/arch/B/Hooks/Parser/Install/Files.pm which starts with: package B::Hooks::Parser::Install::Files; ..and is getting confused because the package isn't named 'arch::*'. However, this is how blib works - it contains blib/lib and blib/arch. It needs to get smarter when traversing directories to understand how blib is laid out.
The full stack trace: # eval ' require arch::B::Hooks::Parser::Install::Files ' called at /Volumes/amaretto/Users/ether/.perlbrew/libs/23.1@std/lib/perl5/Pod/Coverage/CountParents.pm line 12 # Pod::Coverage::CountParents::_get_pods(Pod::Coverage::TrustPod=HASH(0x7fcc4b029038)) called at /Volumes/amaretto/Users/ether/.perlbrew/libs/23.1@std/lib/perl5/Pod/Coverage.pm line 149 # Pod::Coverage::coverage(Pod::Coverage::TrustPod=HASH(0x7fcc4b029038)) called at /Volumes/amaretto/Users/ether/.perlbrew/libs/23.1@std/lib/perl5/Test/Pod/Coverage.pm line 169 # Test::Pod::Coverage::pod_coverage_ok("arch::B::Hooks::Parser::Install::Files", HASH(0x7fcc4b004650), "Pod coverage on arch::B::Hooks::Parser::Install::Files") called at /Volumes/amaretto/Users/ether/.perlbrew/libs/23.1@std/lib/perl5/Test/Pod/Coverage.pm line 133 # Test::Pod::Coverage::all_pod_coverage_ok(HASH(0x7fcc4b004650)) called at xt/release/pod-coverage.t line 7
This implementation of _starting_points is much better - see https://github.com/neilbowers/Test-Pod-Coverage/pull/3 -- sub _starting_points { my @dirs; push @dirs, 'blib/lib' if -d 'blib/lib'; push @dirs, 'blib/arch' if -d 'blib/arch'; return @dirs if @dirs; return 'lib'; } However, it now exposes problems higher up with the module, because it uses the concepts of "module" and "file" interchangably, losing context about package name vs. filename in the process.
I just ran into this again while converting B-Hooks-OP-Check to dzil :)