Algorithm-C3
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
t/011_infinite_loop.t view on Meta::CPAN
c => [],
b => [],
a => [],
},
{ #5
k => [qw(j i)],
j => [qw(f)],
i => [qw(h f)],
h => [qw(k g)],
g => [qw(d)],
f => [qw(e)],
e => [qw(d)],
d => [qw(a b c)],
c => [],
b => [],
a => [],
},
{ #6
k => [qw(j i)],
j => [qw(f)],
i => [qw(h f)],
h => [qw(g)],
g => [qw(d)],
f => [qw(e)],
e => [qw(d)],
d => [qw(a b c)],
c => [],
b => [qw(b)],
a => [],
},
{ #7
k => [qw(k j i)],
j => [qw(f)],
i => [qw(h f)],
h => [qw(g)],
g => [qw(d)],
f => [qw(e)],
e => [qw(d)],
d => [qw(a b c)],
c => [],
b => [],
a => [],
},
{ #7
k => [qw(j i)],
j => [qw(f)],
i => [qw(h f)],
h => [qw(g)],
g => [qw(d)],
f => [qw(e)],
e => [qw(d)],
d => [qw(a h b c)],
c => [],
b => [],
a => [],
},
);
foreach my $loopy (@loopies) {
eval {
local $SIG{ALRM} = sub { die "ALRMTimeout" };
alarm(3);
Algorithm::C3::merge('k', sub {
return @{ $loopy->{ $_[0] } };
});
};
if(my $err = $@) {
if($err =~ /ALRMTimeout/) {
ok(0, "Loop terminated by SIGALRM");
}
elsif($err =~ /Infinite loop detected/) {
ok(1, "Graceful exception thrown");
}
else {
ok(0, "Unrecognized exception: $err");
}
}
else {
ok(0, "Infinite loop apparently succeeded???");
}
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.436 second using v1.00-cache-2.02-grep-82fe00e-cpan-48ebf85a1963 )