Branch Coverage

lib/POSIX/RT/Timer.xs
Criterion Covered Total %
branch 46 94 48.9


line true false branch
88 5 0 for (i = 0; i < sizeof clocks / sizeof *clocks; ++i) {
89 4 1 if (clocks[i].key_length == length && strEQ(clock_ptr, clocks[i].key))
4 0 if (clocks[i].key_length == length && strEQ(clock_ptr, clocks[i].key))
119 2 3 if (ret != 0) {
121 0 2 if (ret != EINTR)
165 11 4 for(i = 0; i < items; i += 2) {
170 6 5 if (curlen == 5) {
171 1 5 if (strEQ(current, "clock"))
172 0 1 result->clockid = SvROK(value) ? SvUV(SvRV(value)) : get_clockid(value);
173 4 1 else if (strEQ(current, "value"))
175 1 0 else if (strEQ(current, "ident"))
180 4 1 else if (curlen == 6 && strEQ(current, "signal"))
4 0 else if (curlen == 6 && strEQ(current, "signal"))
181 0 4 result->signo = (SvIOK(value) || looks_like_number(value)) ? SvIV(value) : whichsig(SvPV_nolen(value));
0 0 result->signo = (SvIOK(value) || looks_like_number(value)) ? SvIV(value) : whichsig(SvPV_nolen(value));
182 0 1 else if (curlen == 8) {
183 1 0 if (strEQ(current, "interval"))
185 0 0 else if (strEQ(current, "absolute"))
200 0 4 if (para->signo < 0)
212 0 4 if (timer_create(para->clockid, &event, &timer) < 0)
214 0 4 if (timer_settime(timer, para->flags, ¶->itimer, NULL) < 0)
224 1 1 while (left->tv_nsec > 1000000000) {
257 0 0 if (timer_gettime(timer, &value) == -1)
259 0 0 mXPUSHn(timespec_to_nv(&value.it_value));
260 0 0 if (GIMME_V == G_ARRAY)
261 0 0 mXPUSHn(timespec_to_nv(&value.it_interval));
268 0 1 if (timer_settime(timer, (abstime ? TIMER_ABSTIME : 0), &new_itimer, &old_itimer) == -1)
270 0 1 mXPUSHn(timespec_to_nv(&old_itimer.it_value));
271 0 1 if (GIMME_V == G_ARRAY)
272 0 0 mXPUSHn(timespec_to_nv(&old_itimer.it_interval));
277 0 0 if (RETVAL == -1)
298 0 0 RETVAL = (UV)clock;
305 1 0 if (SvOK(pid) && SvROK(pid) && sv_derived_from(pid, "threads")) {
0 1 if (SvOK(pid) && SvROK(pid) && sv_derived_from(pid, "threads")) {
0 0 if (SvOK(pid) && SvROK(pid) && sv_derived_from(pid, "threads")) {
315 1 0 if (clock_getcpuclockid(SvOK(pid) ? SvIV(pid) : 0, &RETVAL) != 0)
0 1 if (clock_getcpuclockid(SvOK(pid) ? SvIV(pid) : 0, &RETVAL) != 0)
328 11 1 for (i = 0; i < max; ++i)
329 0 11 mXPUSHp(clocks[i].key, clocks[i].key_length);
334 0 8 if (clock_gettime(clockid, &RETVAL) == -1)
341 0 0 if (clock_settime(clockid, &time) == -1)
346 0 1 if (clock_getres(clockid, &RETVAL) == -1)
366 1 2 if (clock_nanosleep(clockid, flags, &time, &remain_time) == EINTR)
367 0 1 RETVAL = abstime ? time : remain_time;
376 0 0 if (!abstime) {
378 0 1 if (clock_gettime(clockid, ¤t_time) == -1)
382 1 1 while (clock_nanosleep(clockid, TIMER_ABSTIME, &time, NULL) == EINTR);