Branch Coverage

c/unix.c
Criterion Covered Total %
branch 57 100 57.0


line true false branch
37 0 6 if (!sv)
39 0 6 if (SvGMAGICAL(sv))
41 1 5 if (SvIOK(sv)) /* maybe non-portable but nice for unixen */
42 1 0 return SvIV(sv);
43 5 0 if (SvROK(sv))
45 5 0 if (SvTYPE(sv) == SVt_PVGV) {
46 5 0 if (!(io=GvIO((GV*)sv)) || !(fp = IoIFP(io))) {
0 5 if (!(io=GvIO((GV*)sv)) || !(fp = IoIFP(io))) {
0 0 if (!(io=GvIO((GV*)sv)) || !(fp = IoIFP(io))) {
5 0 if (!(io=GvIO((GV*)sv)) || !(fp = IoIFP(io))) {
5 0 if (!(io=GvIO((GV*)sv)) || !(fp = IoIFP(io))) {
0 5 if (!(io=GvIO((GV*)sv)) || !(fp = IoIFP(io))) {
59 0 94226 if (!got) {
246 0 1 if (ret < 0 && errno != EAGAIN && errno != EINTR)
0 0 if (ret < 0 && errno != EAGAIN && errno != EINTR)
0 0 if (ret < 0 && errno != EAGAIN && errno != EINTR)
249 0 1 if (left > IntervalEpsilon) {
250 0 0 if (ret==0) ++TimeoutTooEarly;
264 3 59061 if (pollMax < IOWatchCount) {
265 0 3 if (Pollfd)
268 0 3 EvNew(9, Pollfd, pollMax, struct pollfd);
271 17 59047 if (!IOWatch_OK) {
273 4 13 if (Pollfd)
274 0 4 Zero(Pollfd, pollMax, struct pollfd);
276 7 17 while (ev) {
281 4 3 if (ev->poll & PE_R) bits |= (POLLIN | POLLPRI);
282 3 4 if (ev->poll & PE_W) bits |= POLLOUT;
283 0 7 if (ev->poll & PE_E) bits |= (POLLRDBAND | POLLPRI);
286 4 7 for (xx = 0; xx < Nfds; xx++) {
287 0 4 if (Pollfd[xx].fd == fd) { ok=1; break; }
289 7 0 if (!ok) xx = Nfds++;
299 94228 59064 for (xx=0; xx < Nfds; xx++)
301 15 59049 if (timeout < 0)
305 0 59064 if (ret < 0) {
306 0 0 if (errno == EINTR || errno == EAGAIN)
0 0 if (errno == EINTR || errno == EAGAIN)
308 0 0 if (errno == EINVAL) {
316 94228 59064 while (ev) {
320 94228 0 if (xref >= 0) {
323 47060 47168 if (mask & (POLLIN | POLLPRI | POLLHUP | POLLERR)) got |= PE_R;
324 47166 47062 if (mask & (POLLOUT | POLLERR)) got |= PE_W;
325 1 94227 if (mask & (POLLRDBAND | POLLPRI | POLLHUP | POLLERR)) got |= PE_E;
326 1 94227 if (mask & POLLNVAL) {
327 1 0 warn("Event: '%s' was unexpectedly closed",
331 1 94226 if ((mask & POLLHUP) && (ev->poll & PE_W) && (!(got & PE_W))
0 1 if ((mask & POLLHUP) && (ev->poll & PE_W) && (!(got & PE_W))
0 0 if ((mask & POLLHUP) && (ev->poll & PE_W) && (!(got & PE_W))
332 0 0 && (!(ev->poll & PE_R)) && (!(ev->poll & PE_E))) {
0 0 && (!(ev->poll & PE_R)) && (!(ev->poll & PE_E))) {
337 94226 1 if (got) _queue_io(ev, got);