EV-cares
view release on metacpan or search on metacpan
t/06_loop.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Scalar::Util qw(weaken);
use EV;
use EV::cares qw(:status);
# default loop (no option)
{
my $r = EV::cares->new(lookups => 'f');
isa_ok($r, 'EV::cares', 'default loop construction');
}
# explicit non-default loop
t/06_loop.t view on Meta::CPAN
eval { EV::cares->new(loop => bless {}, 'Wrong::Class') };
like($@, qr/EV::Loop/, 'wrong-class blessed ref rejected');
}
# resolver retains the loop SV: dropping the user's last ref must not
# free the loop until the resolver itself is gone
{
my $loop = EV::Loop->new;
my $weak = $loop;
weaken($weak);
my $r = EV::cares->new(loop => $loop, lookups => 'f');
undef $loop;
ok(defined $weak, 'loop SV retained while resolver is alive');
undef $r;
ok(!defined $weak, 'loop SV released after resolver destroyed');
}
done_testing;
( run in 0.582 second using v1.01-cache-2.11-cpan-995e09ba956 )