File: leak.t

package info (click to toggle)
libevent-perl 1.11-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 712 kB
  • ctags: 593
  • sloc: ansic: 3,034; perl: 1,128; makefile: 50
file content (30 lines) | stat: -rw-r--r-- 658 bytes parent folder | download | duplicates (9)
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
# leak -*-perl-*-
use Test; plan test => 6;
use Event qw(all_watchers);

my @e = Event::all_watchers();
ok @e, 0;
@e = Event::all_idle();
ok @e, 0;

sub thrash {
    Event->idle(parked=>1)->cancel;
    Event->io(parked => 1)->cancel;
    Event->signal(parked=>1)->cancel;
    Event->timer(parked=>1)->cancel;
    my $var = 1;
    Event->var(parked=>1)->cancel;
}
for (1..2) { thrash(); }

my $got = join(', ', map { ref } all_watchers()) || 'None';
ok($got, 'None');

{
    my $io = Event->io(parked => 1);
    ok !$io->is_cancelled;
    $io->cancel for 1..3;  #shouldn't crash!
    ok $io->is_cancelled;
    eval { $io->start };
    ok $@, '/cancelled/';
}