X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind%2FCommand%2FPerl.pm;h=bdc8ed390e082843baf1ea63624dd6b2e5aa9c21;hb=44f0639e6ac34bdc0be52d47fe2c2df43ab1ca94;hp=3ded74a587c7ebbbb2f3cf61a4200a3a72b1b493;hpb=11eeabaad0bbb6db15b9c967fae94cd7388f0012;p=perl%2Fmodules%2FTest-Valgrind.git diff --git a/lib/Test/Valgrind/Command/Perl.pm b/lib/Test/Valgrind/Command/Perl.pm index 3ded74a..bdc8ed3 100644 --- a/lib/Test/Valgrind/Command/Perl.pm +++ b/lib/Test/Valgrind/Command/Perl.pm @@ -9,19 +9,24 @@ Test::Valgrind::Command::Perl - A Test::Valgrind command that invokes perl. =head1 VERSION -Version 1.01 +Version 1.12 =cut -our $VERSION = '1.01'; +our $VERSION = '1.12'; =head1 DESCRIPTION +This command is the base for all C-based commands. +It handles the suppression generation and sets the main command-line flags. + =cut use Env::Sanctify (); -use base qw/Test::Valgrind::Command Test::Valgrind::Carp/; +use Test::Valgrind::Suppressions; + +use base qw; =head1 METHODS @@ -142,7 +147,7 @@ Returns an L object that sets the environment variables Csanctify( env => { - PERL_DESTRUCT_LEVEL => 2, + PERL_DESTRUCT_LEVEL => 3, PERL_DL_NONLAZY => 1, }, ); @@ -166,6 +171,23 @@ sub suppressions_tag { return $self->{suppressions_tag}; } +sub filter { + my ($self, $session, $report) = @_; + + return $report if $report->is_diag + or not $report->isa('Test::Valgrind::Report::Suppressions'); + + my $data = $report->data; + $data =~ s/[^\r\n]*\bPerl_runops_(?:standard|debug)\b.*//s; + $data = Test::Valgrind::Suppressions->strip_tail($session, $data); + + $report->new( + id => $report->id, + kind => $report->kind, + data => $data, + ); +} + sub DESTROY { my ($self) = @_; @@ -202,7 +224,7 @@ You can find documentation for this module with the perldoc command. =head1 COPYRIGHT & LICENSE -Copyright 2009 Vincent Pit, all rights reserved. +Copyright 2009,2010 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. @@ -248,7 +270,7 @@ my @cards = List::Util::shuffle(0 .. 51); { package Test::Valgrind::Test::Fake; - use base qw/strict/; + use base qw; } -eval 'use Time::HiRes qw/usleep/'; +eval 'use Time::HiRes qw';