]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blob - t/30-bad.t
93765cf05a18b5e66e0b79703bdcf53765ad1bb6
[perl/modules/Test-Valgrind.git] / t / 30-bad.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Config qw/%Config/;
7
8 use Test::More;
9
10 sub tester {
11  my ($a, $desc) = @_;
12  my $passed;
13  my $dbg = eval "Test::Valgrind::DEBUGGING()";
14  if ($desc =~ /still\s+reachable/) {
15   $passed = $a >= 9900 && $a < 10100;
16   if ($dbg) {
17    ok($passed, $desc);
18   } else {
19    TODO: {
20     local $TODO = "Leak count may be off on non-debugging perls";
21     ok($passed, $desc);
22    }
23    return 1;
24   }
25  } else {
26   $passed = defined $a && $a == 0;
27   is($a, 0, $desc);
28  }
29  return $passed;
30 }
31
32 eval {
33  require XSLoader;
34  XSLoader::load('Test::Valgrind', 0.04);
35 };
36 if ($@) {
37  plan skip_all => "XS test code not available ($@)";
38 } else {
39  use lib qw{blib/archpub};
40  eval 'use Test::Valgrind cb => \&tester;';
41  if ($@) {
42   plan skip_all => 'Test::Valgrind is required to run test your distribution with valgrind';
43  } else {
44   Test::Valgrind::leak();
45  }
46 }