Branch Coverage

lib/Linux/Epoll.xs
Criterion Covered Total %
branch 49 116 42.2


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)
178 3 1 SV* ref = sv_rvweaken(SvROK(fh) ? newSVsv(fh) : newRV(fh));
196 2 0 IO* io = GvIOn(gv);
2 0 IO* io = GvIOn(gv);
2 0 IO* io = GvIOn(gv);
2 0 IO* io = GvIOn(gv);
208 34 1 for (shift = 0; shift < 32; ++shift) {
210 4 30 if (bits & bit_value) {
213 2 2 if (bits == bit_value)
234 0 2 if (fd < 0)
258 0 3 if (epoll_ctl(efd, EPOLL_CTL_ADD, ofd, &event) == -1) {
259 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))
285 0 1 if (epoll_ctl(efd, EPOLL_CTL_MOD, ofd, &event) == -1) {
286 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)
305 0 1 if (epoll_ctl(efd, EPOLL_CTL_DEL, ofd, NULL) == -1) {
306 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)
328 0 7 if (maxevents <= 0)
331 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;
332 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;
336 6 1 if (RETVAL == -1) {
337 0 1 if (errno != EINTR)
341 3 6 for (i = 0; i < RETVAL; ++i) {
346 3 6 for (i = 0; i < RETVAL; ++i) {
348 0 3 PUSHMARK(SP);
349 0 3 mXPUSHs(event_bits_to_hash(events[i].events));