X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind%2FTool%2Fmemcheck.pm;h=7869f568861ebd32e8dd82c6fea4b3fdef75a490;hb=270aacc7f116b97928f9d70ce7936dd9d0a78ce0;hp=e75f0c0dd0dda9492d35666052f1d588dbd952f5;hpb=08f451d35014a7f8587fba4bc20103a018487653;p=perl%2Fmodules%2FTest-Valgrind.git diff --git a/lib/Test/Valgrind/Tool/memcheck.pm b/lib/Test/Valgrind/Tool/memcheck.pm index e75f0c0..7869f56 100644 --- a/lib/Test/Valgrind/Tool/memcheck.pm +++ b/lib/Test/Valgrind/Tool/memcheck.pm @@ -73,13 +73,37 @@ sub callers { $_[0]->{callers} } sub suppressions_tag { 'memcheck-' . $_[1]->version } -=head2 C +=head2 C + +This tool uses a C parser in analysis mode, and a C parser in suppressions mode. + +=cut + +sub parser_class { + my ($self, $session) = @_; + + my $class = $session->do_suppressions + ? 'Test::Valgrind::Parser::Suppressions::Text' + : 'Test::Valgrind::Parser::XML::Twig'; + + local $@; + eval "require $class"; + + return $class; +} + +=head2 C This tool emits C object reports in analysis mode. =cut -sub report_class_analysis { 'Test::Valgrind::Tool::memcheck::Report' } +sub report_class { + my ($self, $session) = @_; + + $session->do_suppressions ? 'Test::Valgrind::Report::Suppressions' + : 'Test::Valgrind::Tool::memcheck::Report' +} sub args { my $self = shift;