Branch Coverage

c/var.c
Criterion Covered Total %
branch 40 66 60.6


line true false branch
40 0 5 if (SvPOKp(sv)) SvPOK_on(sv);
41 0 5 if (SvNOKp(sv)) SvNOK_on(sv);
42 5 0 if (SvIOKp(sv)) SvIOK_on(sv);
63 0 8 if (!_ev->callback)
65 8 0 if (!sv || !SvOK(sv))
1 7 if (!sv || !SvOK(sv))
1 0 if (!sv || !SvOK(sv))
1 0 if (!sv || !SvOK(sv))
67 1 6 if (!ev->events)
70 1 5 if (SvREADONLY(sv))
72 4 1 (void)SvUPGRADE(sv, SVt_PVMG);
75 1 5 while ((mg = *mgp)) {
86 1 4 ufp->uf_val = ev->events & PE_R? tracevar_r : 0;
87 4 1 ufp->uf_set = ev->events & PE_W? tracevar_w : 0;
93 0 5 if (!SvMAGICAL(sv))
104 5 0 if (SvTYPE(sv) < SVt_PVMG || !SvMAGIC(sv)) {
0 5 if (SvTYPE(sv) < SVt_PVMG || !SvMAGIC(sv)) {
110 6 0 while ((mg = *mgp)) {
111 6 0 if (mg->mg_type == 'U' && mg->mg_obj == (SV*)ev)
5 1 if (mg->mg_type == 'U' && mg->mg_obj == (SV*)ev)
116 0 5 if(!mg) {
128 2 0 if (!WaPOLLING(ev)) return;
135 2 0 if (nval) {
141 0 2 XPUSHs(sv_2mortal(events_mask_2sv(vp->events)));
148 7 1 if (nval) {
151 0 7 if (SvOK(nval)) {
0 0 if (SvOK(nval)) {
0 0 if (SvOK(nval)) {
152 0 7 if (!SvROK(nval))
154 0 7 if (SvTYPE(SvRV(nval)) > SVt_PVMG)
157 0 7 if (active) pe_watcher_off(ev);
159 0 7 if (active) pe_watcher_on(ev, 0);
164 0 8 XPUSHs(vp->variable);