* new: ListSV function
[Devel-Leak.git] / t / basic.t
blobcdfd3d413ff8f9c05284eeec73ee04149a627cff
1 use Test;
2 plan test => 8;
3 eval { require Devel::Leak };
4 ok($@, "", "loading module");
5 eval { import Devel::Leak };
6 ok($@, "", "running import");
8 eval { Devel::Leak::CheckSV($handle) };
9 ok($@ =~ /\QPlease call Devel::Check::NoteSV() before calling Devel::Check::CheckSV()/, 1, "no segfault");
11 @somewhere = ();
12 my $count = Devel::Leak::NoteSV($handle);
13 print "$count SVs so far\n";
14 for my $i (1..10)
15  {
16   @somewhere = qw(one two);
17  }
18 my $now = Devel::Leak::CheckSV($handle);
19 ok($now, $count+2, "Number of SVs created unexpected");
21 eval { Devel::Leak::CheckSV($handle) };
22 ok($@ =~ /\QPlease call Devel::Check::NoteSV() before calling Devel::Check::CheckSV()/, 1, "cannot call CheckSV() twice");
25  my @somewhere_else = ();
26  my $handle2;
27  my $count = Devel::Leak::NoteSV($handle2);
28  print "$count SVs so far\n";
29  for my $i (1..10)
30   {
31    @somewhere_else = qw(one two);
32   }
33  my $sv_list = Devel::Leak::ListSV($handle2);
34  ok($sv_list->[0], "one", "First leaked SV");
35  ok($sv_list->[1], "two", "Second leaked SV");
36  ok(@$sv_list, 2, "Count of leaked SVs");