]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blobdiff - lib/Test/Valgrind/Parser/Suppressions/Text.pm
Always strip wildcard frames at the end of a suppression
[perl/modules/Test-Valgrind.git] / lib / Test / Valgrind / Parser / Suppressions / Text.pm
index d84adbf2ac4b112c66a44ccfad7905f343bca215..6eb2dfcf54b2e44da1b537066bfa64e78a478e2b 100644 (file)
@@ -9,18 +9,20 @@ Test::Valgrind::Parser::Suppressions::Text - Parse valgrind suppressions output
 
 =head1 VERSION
 
-Version 1.02
+Version 1.11
 
 =cut
 
-our $VERSION = '1.02';
+our $VERSION = '1.11';
 
 =head1 DESCRIPTION
 
-This is a L<Test::Valgrind::Parser> object that can extract suppressions from C<valgrind>'s text output.
+This is a L<Test::Valgrind::Parser::Text> object that can extract suppressions from C<valgrind>'s text output.
 
 =cut
 
+use Test::Valgrind::Suppressions;
+
 use base qw/Test::Valgrind::Parser::Text Test::Valgrind::Carp/;
 
 =head1 METHODS
@@ -34,12 +36,6 @@ Their C<data> member contains the raw text of the suppression.
 
 sub report_class { 'Test::Valgrind::Report::Suppressions' }
 
-=head2 C<parse $session, $fh>
-
-Parses the filehandle C<$fh> fed with the output of F<valgrind --gen-suppressions=all> and sends a report to the session C<$session> for each suppression.
-
-=cut
-
 sub parse {
  my ($self, $sess, $fh) = @_;
 
@@ -60,13 +56,7 @@ sub parse {
   if ($_ eq '{') {      # A suppression block begins
    $in = 1;
   } elsif ($_ eq '}') { # A suppression block ends
-   # With valgrind 3.4.0, we can replace unknown series of frames by '...'
-   if ($sess->version ge '3.4.0') {
-    my $unknown_tail;
-    ++$unknown_tail while $s =~ s/(\n)\s*obj:\*\s*$/$1/;
-    $s .= "...\n" if $unknown_tail;
-   }
-
+   $s = Test::Valgrind::Suppressions->strip_tail($sess, $s); # Strip the tail
    push @supps, $s;     # Add the suppression that just ended to the list
    $s  = '';            # Reset the state
    $in = 0;