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 43 44 45 46 47 48 49 50 51 52
|
#!perl -w
use strict;
use constant HAS_THREADS => eval{ require threads };
use Test::More;
BEGIN{
if(HAS_THREADS){
plan tests => 6;
}
else{
plan skip_all => 'require threads';
}
}
use threads;
use Test::LeakTrace;
leaks_cmp_ok{
async{
my $a = 0;
$a++;
}->join;
} '<', 10;
my $count = leaked_count {
async{
leaks_cmp_ok{
my @a;
push @a, \@a;
} '>', 0;
no_leaks_ok{
my $a;
$a++;
};
}->join;
};
cmp_ok $count, '<', 10, "(actually leaked: $count)";
async{
no_leaks_ok{
my $a = 0;
$a++;
};
no_leaks_ok{
my $a = 0;
$a++;
};
}->join();
|