Branch Coverage

blib/lib/Linux/Event/Loop.pm
Criterion Covered Total %
branch 67 142 47.1


line true false branch
33 1 20 if exists $args{'model'}
35 0 20 if %args
39 0 80 unless $clock->can($m)
44 0 80 unless $timer->can($m)
49 0 60 unless $backend->can($m)
70 0 20 unless defined $t_fd
87 3 17 unless defined $backend
89 16 1 unless (ref $backend)
90 16 0 if $backend eq "epoll"
100 2 0 $self->{'backend'}->can('name') ? :
102 0 0 $self->{'running'} ? :
114 1 0 unless ($self->{'_waker'})
141 0 16 unless defined $seconds
142 0 16 unless $cb
143 0 16 if ref $cb ne "CODE"
148 0 16 if $delta_ns < 0
156 0 0 unless defined $deadline_seconds
157 0 0 unless $cb
158 0 0 if ref $cb ne "CODE"
169 1 0 if $ok
176 0 37 unless $fh
185 0 37 if %spec
187 0 37 if (defined $read and ref $read ne "CODE")
190 0 37 if (defined $write and ref $write ne "CODE")
193 0 37 if (defined $error and ref $error ne "CODE")
198 0 37 unless defined $fd
201 2 35 if (my $old = Linux::Event::XS::registry_get($self->{'_watchers'}, $fd))
205 1 36 $edge_triggered ? :
2 35 $oneshot ? :
228 36 0 if ref $b eq "Linux::Event::Backend::Epoll" and exists $b->{'ep'}
231 35 1 if ($can_xs_backend_fast and not -S $fh and Linux::Event::XS::loop_watch_watcher_fast($self, $fh, $fd, $w, $mask))
235 1 1 if ($self->{'backend'}->can("watch_watcher"))
248 0 0 unless my $ww = Linux::Event::XS::registry_get($owner->{'_watchers'}, $fd2)
251 0 0 unless ($fhw)
256 0 0 if (not defined $fnow or int $fnow != $fd2)
264 0 0 $mask & 1 ? :
265 0 0 $mask & 2 ? :
267 0 0 if ($mask & 64)
268 0 0 if ($ww->{'error_cb'} and $ww->{'error_enabled'})
276 0 0 if $mask & 128
278 0 0 if ($read_trig and $ww->{'read_cb'} and $ww->{'read_enabled'})
283 0 0 if (not $still or $still != $ww)
287 0 0 if ($write_trig and $ww->{'write_cb'} and $ww->{'write_enabled'})
306 37 0 if $w->{'read_cb'} and $w->{'read_enabled'}
307 5 0 if $w->{'write_cb'} and $w->{'write_enabled'}
309 1 36 if $w->{'edge_triggered'}
310 2 35 if $w->{'oneshot'}
316 0 0 unless $w->{'active'}
320 0 0 if ($self->{'backend'}->can("modify"))
331 0 3 unless $w and $w->{'active'}
334 3 0 if (ref $b eq "Linux::Event::Backend::Epoll" and exists $b->{'ep'} and exists $b->{'watch'})
337 3 0 Linux::Event::XS::loop_cancel_watcher($self, $w) ? :
344 0 0 if defined $fd
345 0 0 if $self->{'backend'}->can("unwatch") and $w->{'fh'}
352 0 3 unless $fh
355 0 3 unless defined $fd
358 2 1 unless my $w = Linux::Event::XS::registry_get($self->{'_watchers'}, $fd)
384 0 10 if (my $w = $self->{'_waker'})
399 19 13 $self->{'running'} ? :
408 2 13 if not $self->{'running'} and $self->{'_in_run'} || $was_running
415 16 14 unless (defined $next)
416 0 16 if ($self->{'_timer_armed'})
426 14 0 unless (defined $timeout_s)
428 0 14 $remain_ns <= 0 ? :
438 0 0 if not $self->{'running'} and $self->{'_in_run'} || $was_running
461 6 37 unless (defined $next)
462 6 0 if ($self->{'_timer_armed'})
471 0 37 unless defined $remain_ns
472 0 37 unless &looks_like_number($remain_ns)
474 2 35 if ($remain_ns <= 0)
484 0 35 unless &looks_like_number($after_s)