EV-Pg
view release on metacpan or search on metacpan
t/01_connect.t view on Meta::CPAN
},
on_error => sub { diag "Error: $_[0]"; EV::break },
);
my $t = EV::timer(5, 0, sub { EV::break });
EV::run;
ok($connected, 'reset during connect: first connect succeeded');
$pg->finish if $pg && $pg->is_connected;
}
# connect() from inside on_error croaks: the failed conn is still installed
# while the handler runs. Timer-deferred connect (endpoint switching) works.
{
my ($croak, $switched);
my $pg;
$pg = EV::Pg->new(
conninfo => "$conninfo dbname=this_db_does_not_exist_xyz",
on_connect => sub {
$switched = 1;
EV::break;
},
on_error => sub {
t/01_connect.t view on Meta::CPAN
$pg->finish;
$pg->connect($conninfo);
});
},
);
my $t = EV::timer(10, 0, sub { EV::break });
EV::run;
$pg->finish if $pg && $pg->is_connected;
like($croak, qr/previous connection failed/,
'connect in on_error: actionable croak (not "already connected")');
ok($switched, 'connect in on_error: timer-deferred connect switches endpoints');
}
( run in 1.068 second using v1.01-cache-2.11-cpan-16aabcbfbcb )