Branch Coverage

lib/meta.xs
Criterion Covered Total %
branch 122 232 52.5


line true false branch
75 5 0 if(SvFAKE(gv) ||
4 1 if(SvFAKE(gv) ||
76 4 0 GvSV(gv) ||
77 4 0 GvAV(gv) ||
78 4 0 GvHV(gv) ||
79 4 0 GvCV(gv) ||
4 0 GvCV(gv) ||
80 4 0 GvIO(gv) ||
4 0 GvIO(gv) ||
4 0 GvIO(gv) ||
108 0 3 HV *stash = MUST_STASH_FROM_REFSV(metapkg);
109 3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 3 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 3 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 3 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 3 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 3 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 3 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
3 0 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
0 3 RETVAL = newSVpvn_flags(HvNAME(stash), HvNAMELEN(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0);
121 0 9 HV *stash = MUST_STASH_FROM_REFSV(metapkg);
123 3 6 if(he) {
130 1 5 else if(ix)
145 0 17 HV *stash = MUST_STASH_FROM_REFSV(metapkg);
146 17 0 char sigil = SvPV_nolen(name)[0];
147 17 0 SV *basename = newSVpvn_flags(SvPV_nolen(name) + 1, SvCUR(name) - 1,
151 12 5 if(!he)
155 12 0 if(SvTYPE(sv) == SVt_PVGV) {
165 0 0 else if(SvROK(sv)) {
170 0 0 case '$': ret = (SvTYPE(rv) <= SVt_PVMG) ? rv : NULL; break;
171 0 0 case '@': ret = (SvTYPE(rv) == SVt_PVAV) ? rv : NULL; break;
172 0 0 case '%': ret = (SvTYPE(rv) == SVt_PVHV) ? rv : NULL; break;
173 0 0 case '&': ret = (SvTYPE(rv) == SVt_PVCV) ? rv : NULL; break;
180 9 8 if(ret)
182 2 6 else if(ix)
194 0 9 HV *stash = MUST_STASH_FROM_REFSV(metapkg);
195 9 0 char sigil = SvPV_nolen(name)[0];
196 0 9 if(!SvROK(value))
205 0 4 if(SvTYPE(sv) > SVt_PVMG)
209 0 2 if(SvTYPE(sv) != SVt_PVAV)
213 0 2 if(SvTYPE(sv) != SVt_PVHV)
217 0 1 if(SvTYPE(sv) != SVt_PVCV)
224 9 0 SV *basename = newSVpvn_flags(SvPV_nolen(name) + 1, SvCUR(name) - 1,
228 5 4 if(SvTYPE(gv) != SVt_PVGV) {
234 1 3 if(GvSV(gv))
239 0 2 if(GvAV(gv))
244 0 2 if(GvHV(gv))
249 0 1 if(GvCV(gv))
263 0 7 HV *stash = MUST_STASH_FROM_REFSV(metapkg);
264 7 0 char sigil = SvPV_nolen(name)[0];
265 7 0 SV *basename = newSVpvn_flags(SvPV_nolen(name) + 1, SvCUR(name) - 1,
269 6 1 if(!he)
273 6 0 if(SvTYPE(sv) == SVt_PVGV) {
292 1 5 if(!sv)
301 4 1 if(gv_is_empty(gv))
304 0 0 else if(SvROK(sv)) {
309 0 0 case '$': if(SvTYPE(rv) > SVt_PVMG) goto missing; break;
310 0 0 case '@': if(SvTYPE(rv) != SVt_PVAV) goto missing; break;
311 0 0 case '%': if(SvTYPE(rv) != SVt_PVHV) goto missing; break;
312 0 0 case '&': if(SvTYPE(rv) != SVt_PVCV) goto missing; break;
327 0 1 SV *sv = SV_FROM_REFSV(metasym);
342 0 7 SV *sv = SV_FROM_REFSV(metasym);
352 0 9 SV *sv = SV_FROM_REFSV(metasym);
364 0 1 GV *gv = MUST_GV_FROM_REFSV(metaglob);
365 1 0 RETVAL = newSVpvn_flags(GvNAME(gv), GvNAMELEN(gv), GvNAMEUTF8(gv) ? SVf_UTF8 : 0);
383 0 4 GV *gv = MUST_GV_FROM_REFSV(metaglob);
391 2 2 if(ret)
393 1 1 else if(ix & 0x80)
408 5 0 if(GIMME_V == G_VOID)
0 5 if(GIMME_V == G_VOID)
416 0 5 SV *sv = SV_FROM_REFSV(metavar);
417 1 4 if(SvTYPE(sv) <= SVt_PVMG) {
419 0 1 XPUSHs(ret);
422 2 2 else if(SvTYPE(sv) == SVt_PVAV) {
425 0 2 UV count = av_count(av);
427 2 0 if(GIMME_V == G_SCALAR) {
1 1 if(GIMME_V == G_SCALAR) {
428 0 1 mXPUSHu(count);
431 0 1 EXTEND(SP, count);
432 3 1 for(UV i = 0; i < count; i++)
436 2 0 else if(SvTYPE(sv) == SVt_PVHV) {
440 0 2 U8 gimme = GIMME_V;
444 4 2 while((he = hv_iternext(hv))) {
445 4 0 SV *key = HeSVKEY(he);
0 4 SV *key = HeSVKEY(he);
446 4 0 if(!key)
449 2 2 if(gimme == G_LIST) {
450 0 2 EXTEND(SP, 2);
457 1 1 if(gimme == G_LIST)
473 0 1 CV *cv = MUST_CV_FROM_REFSV(metasub);
476 1 0 if(!gv)
479 1 0 RETVAL = newSVpvf("%s::%s", HvNAME(GvSTASH(gv)), GvNAME(gv));
1 0 RETVAL = newSVpvf("%s::%s", HvNAME(GvSTASH(gv)), GvNAME(gv));
0 1 RETVAL = newSVpvf("%s::%s", HvNAME(GvSTASH(gv)), GvNAME(gv));
0 0 RETVAL = newSVpvf("%s::%s", HvNAME(GvSTASH(gv)), GvNAME(gv));
1 0 RETVAL = newSVpvf("%s::%s", HvNAME(GvSTASH(gv)), GvNAME(gv));
0 1 RETVAL = newSVpvf("%s::%s", HvNAME(GvSTASH(gv)), GvNAME(gv));
488 0 1 CV *cv = MUST_CV_FROM_REFSV(metasub);
490 1 0 if(!SvPOK(cv))
493 1 0 RETVAL = newSVpvn_flags(CvPROTO(cv), CvPROTOLEN(cv), SvUTF8(cv));
1 0 RETVAL = newSVpvn_flags(CvPROTO(cv), CvPROTOLEN(cv), SvUTF8(cv));
0 1 RETVAL = newSVpvn_flags(CvPROTO(cv), CvPROTOLEN(cv), SvUTF8(cv));
1 0 RETVAL = newSVpvn_flags(CvPROTO(cv), CvPROTOLEN(cv), SvUTF8(cv));
1 0 RETVAL = newSVpvn_flags(CvPROTO(cv), CvPROTOLEN(cv), SvUTF8(cv));
0 1 RETVAL = newSVpvn_flags(CvPROTO(cv), CvPROTOLEN(cv), SvUTF8(cv));