Branch Coverage

lib/Package/Prototype.xs
Criterion Covered Total %
branch 48 66 72.7


line true false branch
47 129 0 namepv = SvPV(namesv, namelen);
66 8 0 key = SvPV(method, keylen);
83 15 2 if (WANT_ARRAY && IsArrayRef(retval)) {
3 12 if (WANT_ARRAY && IsArrayRef(retval)) {
0 2 if (WANT_ARRAY && IsArrayRef(retval)) {
2 1 if (WANT_ARRAY && IsArrayRef(retval)) {
1 1 if (WANT_ARRAY && IsArrayRef(retval)) {
86 1 0 EXTEND(SP, len);
0 1 EXTEND(SP, len);
87 10 1 for (I32 i = 0; i < len; i++){
89 10 0 PUSHs(svp ? *svp : &PL_sv_undef);
91 14 2 } else if (WANT_ARRAY && IsHashRef(retval)) {
2 12 } else if (WANT_ARRAY && IsHashRef(retval)) {
0 2 } else if (WANT_ARRAY && IsHashRef(retval)) {
1 1 } else if (WANT_ARRAY && IsHashRef(retval)) {
1 0 } else if (WANT_ARRAY && IsHashRef(retval)) {
95 2 1 while ((he = hv_iternext(hv)) != NULL){
96 0 2 EXTEND(SP, 2);
101 0 15 XPUSHs(retval ? retval : &PL_sv_undef);
15 0 XPUSHs(retval ? retval : &PL_sv_undef);
137 0 3 if ((items - 1) % 2 != 0)
142 8 3 while (i < items) {
145 3 5 CV *cv = IsCodeRef(val) ? (CV *)SvREFCNT_inc(SvRV(val)) : make_closure(aTHX_ val);
3 0 CV *cv = IsCodeRef(val) ? (CV *)SvREFCNT_inc(SvRV(val)) : make_closure(aTHX_ val);
166 30 0 if (!IsHashRef(ref))
0 30 if (!IsHashRef(ref))
169 3 27 if (pkgsv) {
170 3 0 pkg = SvPV(pkgsv, pkglen);
183 121 30 while ((entry = hv_iternext(hv)) != NULL){
186 121 0 if (0 < keylen && key[0] != '_') {
121 0 if (0 < keylen && key[0] != '_') {
190 68 53 CV *cv = IsCodeRef(val) ? (CV *)SvRV(val) : make_closure(aTHX_ val);
52 16 CV *cv = IsCodeRef(val) ? (CV *)SvRV(val) : make_closure(aTHX_ val);