File: 06_threads.t

package info (click to toggle)
libtest-leaktrace-perl 0.13-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 412 kB
  • ctags: 879
  • sloc: ansic: 3,215; perl: 1,789; makefile: 7
file content (52 lines) | stat: -rw-r--r-- 586 bytes parent folder | download | duplicates (6)
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();