Branch Coverage

lib/Linux/Epoll.xs
Criterion Covered Total %
branch 68 192 35.4


line true false branch
23 1 16 if (magic) {
27 0 1 PUSHMARK(SP);
32 1 0 ret = POPi;
34 1 0 FREETMPS;
46 0 0 if (message != buffer)
67 0 0 if (!SvOK(sigmask))
0 0 if (!SvOK(sigmask))
0 0 if (!SvOK(sigmask))
69 0 0 if (!SvROK(sigmask) || !sv_derived_from(sigmask, "POSIX::SigSet"))
0 0 if (!SvROK(sigmask) || !sv_derived_from(sigmask, "POSIX::SigSet"))
72 0 0 return (sigset_t *) SvPV_nolen(SvRV(sigmask));
104 5 0 const char* event_name = SvPV(event, len);
106 8 0 for (i = 0; i < sizeof events / sizeof *events; ++i) {
107 5 3 if (events[i].keylen == len && strEQ(events[i].key, event_name))
5 0 if (events[i].keylen == len && strEQ(events[i].key, event_name))
115 1 3 if (SvROK(names)) {
122 2 1 for (i = 0; i < len; ++i) {
135 9 0 for (i = 0; i < sizeof events / sizeof *events; ++i)
136 4 5 if (events[i].value == event_bit)
146 0 4 if (!ret)
158 1 0 if (!SvOK(sv) && !PL_dirty) {
1 0 if (!SvOK(sv) && !PL_dirty) {
1 0 if (!SvOK(sv) && !PL_dirty) {
1 0 if (!SvOK(sv) && !PL_dirty) {
173 3 1 SV* ref = sv_rvweaken(SvROK(fh) ? newSVsv(fh) : newRV(fh));
191 2 0 IO* io = GvIOn(gv);
2 0 IO* io = GvIOn(gv);
2 0 IO* io = GvIOn(gv);
2 0 IO* io = GvIOn(gv);
203 34 1 for (shift = 0; shift < 32; ++shift) {
205 4 30 if (bits & bit_value) {
208 2 2 if (bits == bit_value)
229 0 2 if (fd < 0)
253 0 3 if (epoll_ctl(efd, EPOLL_CTL_ADD, ofd, &event) == -1) {
254 0 0 if (GIMME_V != G_VOID && (errno == EEXIST || errno == EPERM))
0 0 if (GIMME_V != G_VOID && (errno == EEXIST || errno == EPERM))
0 0 if (GIMME_V != G_VOID && (errno == EEXIST || errno == EPERM))
0 0 if (GIMME_V != G_VOID && (errno == EEXIST || errno == EPERM))
280 0 1 if (epoll_ctl(efd, EPOLL_CTL_MOD, ofd, &event) == -1) {
281 0 0 if (GIMME_V != G_VOID && errno == ENOENT)
0 0 if (GIMME_V != G_VOID && errno == ENOENT)
0 0 if (GIMME_V != G_VOID && errno == ENOENT)
0 0 if (GIMME_V != G_VOID && errno == ENOENT)
300 0 1 if (epoll_ctl(efd, EPOLL_CTL_DEL, ofd, NULL) == -1) {
301 0 0 if (GIMME_V != G_VOID && errno == ENOENT)
0 0 if (GIMME_V != G_VOID && errno == ENOENT)
0 0 if (GIMME_V != G_VOID && errno == ENOENT)
0 0 if (GIMME_V != G_VOID && errno == ENOENT)
323 0 7 if (maxevents <= 0)
326 0 7 real_timeout = SvOK(timeout) ? (int)ceil(SvNV(timeout) * 1000) : -1;
0 0 real_timeout = SvOK(timeout) ? (int)ceil(SvNV(timeout) * 1000) : -1;
0 0 real_timeout = SvOK(timeout) ? (int)ceil(SvNV(timeout) * 1000) : -1;
0 7 real_timeout = SvOK(timeout) ? (int)ceil(SvNV(timeout) * 1000) : -1;
327 7 0 real_sigset = SvOK(sigset) ? sv_to_sigset(sigset, "epoll_pwait") : NULL;
7 0 real_sigset = SvOK(sigset) ? sv_to_sigset(sigset, "epoll_pwait") : NULL;
0 7 real_sigset = SvOK(sigset) ? sv_to_sigset(sigset, "epoll_pwait") : NULL;
331 6 1 if (RETVAL == -1) {
332 0 1 if (errno != EINTR)
336 3 6 for (i = 0; i < RETVAL; ++i) {
341 3 6 for (i = 0; i < RETVAL; ++i) {
343 0 3 PUSHMARK(SP);
344 0 3 mXPUSHs(event_bits_to_hash(events[i].events));
348 3 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
0 3 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
0 3 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
3 0 if (SvTRUE(ERRSV))
0 3 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 0 if (SvTRUE(ERRSV))
0 3 if (SvTRUE(ERRSV))
349 0 0 warn_sv(ERRSV);