]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blob - t/30-bad.t
In t/30-bad.t, first load Test::Valgrind and then the XS code (whenever possible...
[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 use lib qw{blib/archpub};
33 eval 'use Test::Valgrind cb => \&tester';
34 if ($@) {
35  diag $@;
36  plan skip_all => 'Test::Valgrind is required to run test your distribution with valgrind';
37 } else {
38  eval "
39   use lib qw{blib/arch};
40   require XSLoader;
41   XSLoader::load('Test::Valgrind', \$Test::Valgrind::VERSION);
42  ";
43  if ($@) {
44   diag $@;
45   plan skip_all => "XS test code not available";
46  } else {
47   Test::Valgrind::leak();
48  }
49 }