File Coverage

lib/Test/LatestPrereqs/ModuleBuild.pm
Criterion Covered Total %
statement 36 40 90.0
branch 3 4 75.0
condition 3 5 60.0
subroutine 9 12 75.0
pod 1 1 100.0
total 52 62 83.8


line stmt bran cond sub pod time code
1             package Test::LatestPrereqs::ModuleBuild;
2            
3 2     2   1760 use strict;
  2         3  
  2         57  
4 2     2   10 use warnings;
  2         3  
  2         50  
5 2     2   11 use Carp;
  2         3  
  2         189  
6            
7             sub parse {
8 1     1 1 2 my ($class, $file) = @_;
9            
10 1         1 my @requires;
11            
12 2     2   16 no warnings 'redefine';
  2         2  
  2         327  
13            
14 1         4 local $INC{'Module/Build.pm'};
15             local *Module::Build::new = sub {
16 1     1   111 my ($class, %args) = @_;
17            
18 1         3 foreach my $type (qw(requires build_requires recommends)) {
19 3 100       2 foreach my $key (keys %{ $args{$type} || {} }) {
  3         13  
20 3   100     16 push @requires, [ $key, $args{$type}->{$key} || 0 ];
21             }
22             }
23            
24 1         5 bless {}, 'Test::LatestPrereqs::ModuleBuild::Fake';
25 1         5 };
26 1     0   4 local *Module::Build::subclass = sub { 'Module::Build' };
  0         0  
27            
28 1         1 eval {
29             package main;
30 2     2   27 no strict;
  2         27  
  2         53  
31 2     2   8 no warnings;
  2         3  
  2         362  
32            
33 1     0   16 local *CORE::GLOBAL::exit = sub {};
  0         0  
34            
35 1         467 require "$file";
36             };
37 1         4 delete $INC{$file};
38            
39 1 50 33     4 if ($@ && $@ !~ /did not return a true value/) {
40 0         0 croak "Build.PL error: $@";
41             }
42            
43 1         18 return @requires;
44             }
45            
46             package #
47             Test::LatestPrereqs::ModuleBuild::Fake;
48 0     0   0 sub DESTROY {}
49 1     1   17 sub AUTOLOAD { shift }
50            
51             1;
52            
53             __END__