]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blobdiff - lib/Test/Valgrind.pm
Bump copyright year
[perl/modules/Test-Valgrind.git] / lib / Test / Valgrind.pm
index b403e0f9aa2d6345186ae6a96f0d260de30bbf5a..8809c6544f58ce2630cbcbca503bacfb44498be7 100644 (file)
@@ -18,11 +18,11 @@ Test::Valgrind - Test Perl code through valgrind.
 
 =head1 VERSION
 
-Version 0.06
+Version 0.07
 
 =cut
 
-our $VERSION = '0.06';
+our $VERSION = '0.07';
 
 =head1 SYNOPSIS
 
@@ -139,7 +139,8 @@ sub import {
   $callers = int $callers;
   my $vg = Test::Valgrind::Suppressions::VG_PATH;
   if (!$vg || !-x $vg) {
-   for (split /:/, $ENV{PATH}) {
+   require Config;
+   for (split /$Config::Config{path_sep}/, $ENV{PATH}) {
     $_ .= '/valgrind';
     if (-x) {
      $vg = $_;
@@ -196,8 +197,6 @@ sub import {
   );
   my %res = map { $_ => 0 } @tests;
   close $owtr or die "close(\$owtr): $!";
-  $Test->diag(do { local $/; <$ordr> }) if $args{diag};
-  close $ordr or die "close(\$ordr): $!";
   close $vwtr or die "close(\$vwtr): $!";
   while (<$vrdr>) {
    $Test->diag($_) if $args{diag};
@@ -218,6 +217,8 @@ sub import {
    }
   }
   waitpid $pid, 0;
+  $Test->diag(do { local $/; <$ordr> }) if $args{diag};
+  close $ordr or die "close(\$ordr): $!";
   my $failed = 5;
   my $cb = ($args{no_test} ? \&_counter
                            : ($args{cb} ? $args{cb} : \&_tester));
@@ -230,15 +231,23 @@ sub import {
  }
 }
 
+END {
+ if ($run and eval { require DynaLoader; 1 }) {
+  my @rest;
+  DynaLoader::dl_unload_file($_) and push @rest, $_ for @DynaLoader::dl_librefs;
+  @DynaLoader::dl_librefs = @rest;
+ }
+}
+
 =head1 CAVEATS
 
 You can't use this module to test code given by the C<-e> command-line switch.
 
-Results will most likely be better if your perl is built with debugging enabled. Using the latest valgrind available will also help.
+Perl 5.8 is notorious for leaking like there's no tomorrow, so the suppressions are very likely not to be very accurate on it. Anyhow, results will most likely be better if your perl is built with debugging enabled. Using the latest valgrind available will also help.
 
 This module is not really secure. It's definitely not taint safe. That shouldn't be a problem for test files.
 
-If your tests output to STDERR, everything will be eaten in the process. In particular, running this module against test files will obliterate their original test results.
+What your tests output to STDOUT is eaten unless you pass the C<diag> option, in which case it will be reprinted as diagnostics. STDERR is kept untouched.
 
 =head1 DEPENDENCIES
 
@@ -256,7 +265,7 @@ L<Devel::Leak>, L<Devel::LeakTrace>, L<Devel::LeakTrace::Fast>.
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
 
-You can contact me by mail or on #perl @ FreeNode (vincent or Prof_Vince).
+You can contact me by mail or on C<irc.perl.org> (vincent).
 
 =head1 BUGS
 
@@ -276,7 +285,7 @@ H.Merijn Brand, for daring to test this thing.
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2008 Vincent Pit, all rights reserved.
+Copyright 2008-2009 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.