X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind%2FParser%2FSuppressions%2FText.pm;h=7692e834f87628ca077c60b5200b4fe35cce342e;hb=63f17cfcf624bc6764d32a7e674baf6329fd2d4a;hp=b738ea03617fbaa63a0951a844eaef2ce81a324d;hpb=02988812caad37eabb53817242d72f65d435316f;p=perl%2Fmodules%2FTest-Valgrind.git diff --git a/lib/Test/Valgrind/Parser/Suppressions/Text.pm b/lib/Test/Valgrind/Parser/Suppressions/Text.pm index b738ea0..7692e83 100644 --- a/lib/Test/Valgrind/Parser/Suppressions/Text.pm +++ b/lib/Test/Valgrind/Parser/Suppressions/Text.pm @@ -9,11 +9,11 @@ Test::Valgrind::Parser::Suppressions::Text - Parse valgrind suppressions output =head1 VERSION -Version 1.11 +Version 1.15 =cut -our $VERSION = '1.11'; +our $VERSION = '1.15'; =head1 DESCRIPTION @@ -23,7 +23,7 @@ This is a L object that can extract suppressions f use Test::Valgrind::Suppressions; -use base qw/Test::Valgrind::Parser::Text Test::Valgrind::Carp/; +use base qw; =head1 METHODS @@ -60,7 +60,14 @@ sub parse { $s = ''; # Reset the state $in = 0; } elsif ($in) { # We're inside a suppresion block - $s .= "$_\n"; # Append the current line to the state + if (/^fun\s*:\s*(.*)/) { + # Sometimes valgrind seems to forget to Z-demangle the symbol names. + # Make sure it's done and append the result to the state. + my $sym = $1; + $s .= 'fun:' . Test::Valgrind::Suppressions->maybe_z_demangle($sym) . "\n"; + } else { + $s .= "$_\n"; + } } } @@ -72,11 +79,11 @@ sub parse { my %call; # Frames to append (if the value is 1) or to prepend (if it's 0) if ($t eq 'm') { # malloc can also be called by calloc or realloc - $call{$_} = 1 for qw/calloc realloc/; + $call{$_} = 1 for qw; } elsif ($t eq 're') { # realloc can also call malloc or free - $call{$_} = 0 for qw/malloc free/; + $call{$_} = 0 for qw; } elsif ($t eq 'c') { # calloc can also call malloc - $call{$_} = 0 for qw/malloc/; + $call{$_} = 0 for qw; } my $c = $_; @@ -121,7 +128,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,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. @@ -131,7 +138,7 @@ This program is free software; you can redistribute it and/or modify it under th package Test::Valgrind::Report::Suppressions; -use base qw/Test::Valgrind::Report/; +use base qw; sub kinds { shift->SUPER::kinds(), 'Suppression' }