Test-CVE

 view release on metacpan or  search on metacpan

lib/Test/CVE.pm  view on Meta::CPAN


    $self->{verbose} and warn "Reading $mf ...\n";
    open my $fh, "<", $mf or return $self;
    my $mfc = do { local $/; <$fh> };
    close $fh;

    $mfc or return $self;

    my ($pv, $release, $nm, $v, $vf) = ("");
    foreach my $mfx (grep { m/=>/ }
		     map  { split m/\s*[;(){}]\s*/ }
		     map  { split m/\s*,(?!\s*=>)/ }
			    split m/[,;]\s*(?:#.*)?\r*\n/ => $mfc) {
	$mfx =~ s/[\s\r\n]+/ /g;
	$mfx =~ s/^\s+//;
	$mfx =~ s/^(['"])(.*?)\1/$2/;	# Unquote key
	my $a = qr{\s* (?:,\s*)? => \s* (?|"([^""]*)"|'([^'']*)'|([-\w.]+))}x;
	$mfx =~ m/^ VERSION          $a /ix and $v       //= $1;
	$mfx =~ m/^ VERSION_FROM     $a /ix and $vf      //= $1;
	$mfx =~ m/^     NAME         $a /ix and $nm      //= $1;
	$mfx =~ m/^ DISTNAME         $a /ix and $release //= $1;
	$mfx =~ m/^ MIN_PERL_VERSION $a /ix and $pv      ||= $1;
	}

t/30_makefile.t  view on Meta::CPAN


ok (my $cve = Test::CVE->new, "New");

my $exp = {
    name    => "Foo",
    release => "Foo",
    version => "1.23",
    mpv     => "5.014000",
    };

foreach my $mf (split m/##\n/ => do { local $/; <DATA> }) {
    delete $cve->{mf};
    $cve->_read_MakefilePL (\$mf);
    is_deeply ($cve->{mf}, $exp, "Correctly parsed");
    }

done_testing;
__END__
use 5.14;
WriteMakeFile (
    NAME	=> "Foo",



( run in 0.823 second using v1.01-cache-2.11-cpan-71847e10f99 )