X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind%2FCommand%2FPerl.pm;h=55c8babe5bb48e99eace1bf5148dd600cd756900;hb=8cacc78f5dbd91f8ff36075b44d923edd659541f;hp=bdc8ed390e082843baf1ea63624dd6b2e5aa9c21;hpb=44f0639e6ac34bdc0be52d47fe2c2df43ab1ca94;p=perl%2Fmodules%2FTest-Valgrind.git diff --git a/lib/Test/Valgrind/Command/Perl.pm b/lib/Test/Valgrind/Command/Perl.pm index bdc8ed3..55c8bab 100644 --- a/lib/Test/Valgrind/Command/Perl.pm +++ b/lib/Test/Valgrind/Command/Perl.pm @@ -9,11 +9,11 @@ Test::Valgrind::Command::Perl - A Test::Valgrind command that invokes perl. =head1 VERSION -Version 1.12 +Version 1.15 =cut -our $VERSION = '1.12'; +our $VERSION = '1.15'; =head1 DESCRIPTION @@ -32,7 +32,14 @@ use base qw; This class inherits L. -=head2 C<< new perl => $^X, inc => \@INC, taint_mode => $taint_mode, ... >> +=head2 C + + my $tvcp = Test::Valgrind::Command::Perl->new( + perl => $^X, + inc => \@INC, + taint_mode => $taint_mode, + %extra_args, + ); The package constructor, which takes several options : @@ -107,6 +114,8 @@ sub new_trainer { =head2 C + my $perl = $tvcp->perl; + Read-only accessor for the C option. =cut @@ -115,6 +124,8 @@ sub perl { $_[0]->{perl} } =head2 C + my @inc = $tvcp->inc; + Read-only accessor for the C option. =cut @@ -123,6 +134,8 @@ sub inc { @{$_[0]->{inc} || []} } =head2 C + my $taint_mode = $tvcp->taint_mode; + Read-only accessor for the C option. =cut @@ -138,7 +151,9 @@ sub args { $self->SUPER::args(@_); } -=head2 C +=head2 C + + my $env = $tvcp->env($session); Returns an L object that sets the environment variables C to C<3> and C to C<1> during the run. @@ -171,6 +186,23 @@ sub suppressions_tag { return $self->{suppressions_tag}; } +sub check_suppressions_file { + my ($self, $file) = @_; + + { + open my $fh, '<', $file or return 0; + + local $_; + while (<$fh>) { + return 1 if /^\s*fun:Perl_/; + } + + close $fh; + } + + return 0; +} + sub filter { my ($self, $session, $report) = @_; @@ -224,7 +256,7 @@ You can find documentation for this module with the perldoc command. =head1 COPYRIGHT & LICENSE -Copyright 2009,2010 Vincent Pit, all rights reserved. +Copyright 2009,2010,2011,2013,2015 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. @@ -245,11 +277,11 @@ eval { XSLoader::load('Test::Valgrind', $Test::Valgrind::VERSION); }; -unless ($@) { - Test::Valgrind::notleak("valgrind it!"); -} else { +if ($@) { diag $@; *Test::Valgrind::DEBUGGING = sub { 'unknown' }; +} else { + Test::Valgrind::notleak("valgrind it!"); } plan tests => 1;