X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind.pm;h=5c1c8bb1a4553b79203ffad0c526c76a77063347;hb=1b06adb9788085e8aad3af42ea384153cd0a4fe6;hp=46a86c6fe9509e4241f1f6577bab9956aed472a3;hpb=763b4e655388ce7341369cf73fd7758360821b3d;p=perl%2Fmodules%2FTest-Valgrind.git diff --git a/lib/Test/Valgrind.pm b/lib/Test/Valgrind.pm index 46a86c6..5c1c8bb 100644 --- a/lib/Test/Valgrind.pm +++ b/lib/Test/Valgrind.pm @@ -5,15 +5,15 @@ use warnings; =head1 NAME -Test::Valgrind - Test Perl code through valgrind. +Test::Valgrind - Generate suppressions, analyse and test any command with valgrind. =head1 VERSION -Version 1.00 +Version 1.02 =cut -our $VERSION = '1.00'; +our $VERSION = '1.02'; =head1 SYNOPSIS @@ -38,6 +38,9 @@ This module is a front-end to the C API that lets you run Per If they aren't available yet, it will first generate suppressions for the current C interpreter and store them in the portable flavour of F<~/.perl/Test-Valgrind/suppressions/$VERSION>. The actual run will then take place, and tests will be passed or failed according to the result of the analysis. +The complete API is much more versatile than this. +It allows you to run I executable under valgrind, generate the corresponding suppressions and convert the analysis output to TAP so that it can be incorporated into your project's testsuite. + Due to the nature of perl's memory allocator, this module can't track leaks of Perl objects. This includes non-mortalized scalars and memory cycles. However, it can track leaks of chunks of memory allocated in XS extensions with C and friends or C. As such, it's complementary to the other very good leak detectors listed in the L section. @@ -189,8 +192,8 @@ sub analyse { =head2 C -In the parent process, L calls L with the arguments it received itself - except that if no C option was supplied, it tries to pick the highest caller context that looks like a script. -When the analyse finishes, it exists with the status that was returned. +In the parent process, L calls L with the arguments it received itself - except that if no C option was supplied, it tries to pick the first caller context that looks like a script. +When the analyse ends, it exits with the status that was returned. In the child process, it just Cs so that the calling code is actually run under C. @@ -277,7 +280,7 @@ sub import { =head2 C<$dl_unload> -When set to true, all dynamic extensions that were loaded during the analysis will be unloaded at C time by L. +When set to true, all dynamic extensions that were loaded during the analysis will be unloaded at C time by L. Since this obfuscates error stack traces, it's disabled by default.