=head1 VERSION
-Version 1.13
+Version 1.18
=cut
-our $VERSION = '1.13';
+our $VERSION = '1.18';
=head1 DESCRIPTION
return $status;
}
-=head2 C<strip_tail>
+=head2 C<maybe_generalize>
- my $mangled_suppression = Test::Valgrind::Suppressions->strip_tail(
+ my $mangled_suppression = Test::Valgrind::Suppressions->maybe_generalize(
$session,
$suppression,
);
Removes all wildcard frames at the end of the suppression.
-Moreover, C<'...'> is appended when C<valgrind> C<3.4.0> or higher is used.
+It also replaces sequences of wildcard frames by C<'...'> when C<valgrind> C<3.4.0> or higher is used.
Returns the mangled suppression.
=cut
-sub strip_tail {
+sub maybe_generalize {
shift;
my ($sess, $supp) = @_;
1 while $supp =~ s/[^\r\n]*:\s*\*\s*$//;
+
# With valgrind 3.4.0, we can replace unknown series of frames by '...'
- if ($sess->version ge '3.4.0') {
- 1 while $supp =~ s/[^\r\n]*\.{3}\s*$//;
+ if ($sess->version >= '3.4.0') {
$supp .= "...\n";
+ $supp =~ s/(?:^\s*(?:\.{3}|\*:\S*|obj:\*)\s*(?:\n|\z))+/...\n/mg;
}
$supp;
=head1 COPYRIGHT & LICENSE
-Copyright 2008,2009,2010,2011 Vincent Pit, all rights reserved.
+Copyright 2008,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.