1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#!perl -w
use strict;
use Test::More tests => 6;
use Test::LeakTrace;
for(1 .. 2){
leaks_cmp_ok{
eval q{
my %a = (foo => 42);
my %b = (bar => 3.14);
$b{a} = \%a;
$a{b} = \%b;
1
} or die $@;
} '>', 0;
my @info = leaked_info { eval q{
my %a = (foo => 42);
my %b = (bar => 3.14);
$b{a} = \%a;
$a{b} = \%b;
1;
} or die $@;
};
cmp_ok scalar(@info), '>', 0;
@info = leaked_info{
use Class::Struct; # use eval() for build classes
struct "Foo$_" => { bar => '$' };
my $foo = "Foo$_"->new();
$foo->bar(42);
};
cmp_ok scalar(@info), '>', 0, "create Foo$_";
}
|