]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blobdiff - lib/Test/Valgrind.pm
This is 1.19
[perl/modules/Test-Valgrind.git] / lib / Test / Valgrind.pm
index 8da4a0a50b7da9e08c942c46b0fee842a0c3714b..43c045886e0203196a2f1e05d9b934aa83b03cc8 100644 (file)
@@ -9,11 +9,11 @@ Test::Valgrind - Generate suppressions, analyse and test any command with valgri
 
 =head1 VERSION
 
-Version 1.15
+Version 1.19
 
 =cut
 
-our $VERSION = '1.15';
+our $VERSION = '1.19';
 
 =head1 SYNOPSIS
 
@@ -96,7 +96,7 @@ C<< callers => $number >>
 Specify the maximum stack depth studied when valgrind encounters an error.
 Raising this number improves granularity.
 
-Ignored if you supply your own custom C<tool>, otherwise defaults to C<12>.
+Ignored if you supply your own custom C<tool>, otherwise defaults to C<24> (the maximum allowed by C<valgrind>).
 
 =item *
 
@@ -124,6 +124,14 @@ Defaults to false.
 
 =item *
 
+C<< allow_no_supp => $bool >>
+
+If true, force running the analysis even if the suppression files do not refer to any C<perl>-related symbol.
+
+Defaults to false.
+
+=item *
+
 C<< extra_supps => \@files >>
 
 Also use suppressions from C<@files> besides C<perl>'s.
@@ -201,12 +209,14 @@ sub analyse {
 
  my $tool = delete $args{tool};
  unless ($tool->$instanceof('Test::Valgrind::Tool')) {
+  my $callers = delete $args{callers} || 24;
+  $callers = 24 if $callers <= 0;
   require Test::Valgrind::Tool;
   local $@;
   $tool = eval {
    Test::Valgrind::Tool->new(
-    tool     => $tool || 'memcheck',
-    callers  => delete $args{callers},
+    tool    => $tool || 'memcheck',
+    callers => $callers,
    );
   };
   unless ($tool) {
@@ -220,7 +230,12 @@ sub analyse {
  my $sess = eval {
   Test::Valgrind::Session->new(
    min_version => $tool->requires_version,
-   map { $_ => delete $args{$_} } qw<regen_def_supp no_def_supp extra_supps>
+   map { $_ => delete $args{$_} } qw<
+    regen_def_supp
+    no_def_supp
+    allow_no_supp
+    extra_supps
+   >
   );
  };
  unless ($sess) {
@@ -423,7 +438,7 @@ What your tests output to C<STDOUT> and C<STDERR> is eaten unless you pass the C
 
 =head1 DEPENDENCIES
 
-L<XML::Twig>, L<version>, L<File::HomeDir>, L<Env::Sanctify>, L<Perl::Destruct::Level>.
+L<XML::Twig>, L<File::HomeDir>, L<Env::Sanctify>, L<Perl::Destruct::Level>.
 
 =head1 SEE ALSO
 
@@ -466,7 +481,7 @@ All you people that showed interest in this module, which motivated me into comp
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2008,2009,2010,2011,2013,2015 Vincent Pit, all rights reserved.
+Copyright 2008,2009,2010,2011,2013,2015,2016 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.