Branch Coverage

XSHeaders.xs
Criterion Covered Total %
branch 113 172 65.7


line true false branch
22 0 248 if (SvTYPE(sv) < SVt_PVMG)
25 248 0 for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
26 248 0 if(mg->mg_virtual == vtbl)
38 80 38 for (j = 0; j < hl->ulen; ++j) {
41 98 80 for (k = 0; k < pl->ulen; ++k) {
110 0 269 SvGETMAGIC(sv);
0 0 SvGETMAGIC(sv);
111 248 21 if (SvROK(sv))
114 21 248 if (!mg)
144 0 21 if (!SvOK(klass) || !SvPOK(klass)) {
0 0 if (!SvOK(klass) || !SvPOK(klass)) {
0 0 if (!SvOK(klass) || !SvPOK(klass)) {
0 21 if (!SvOK(klass) || !SvPOK(klass)) {
149 0 21 if ( argc % 2 ) {
154 0 21 if (!(hl = hlist_create()))
157 21 0 ST(0) = newSV_HList(hl, gv_stashpv(SvPV_nolen(klass), 0));
160 37 21 for (j = 1; j <= argc; ) {
164 0 37 if (j > argc) {
169 37 0 ckey = SvPV_nolen(pkey);
185 0 13 if (!(clone = hlist_clone(hl)))
191 46 13 for (j = 0; j < clone->ulen; ++j) {
194 58 46 for (k = 0; k < plist->ulen; ++k) {
223 9 0 return_hlist(aTHX_ hl, "header_field_names", GIMME_V);
243 3 7 if (argc != 2) {
249 1 6 if (!SvOK(pkey) || !SvPOK(pkey)) {
1 0 if (!SvOK(pkey) || !SvPOK(pkey)) {
0 1 if (!SvOK(pkey) || !SvPOK(pkey)) {
0 6 if (!SvOK(pkey) || !SvPOK(pkey)) {
252 6 0 ckey = SvPV(pkey, len);
255 4 2 if (!hlist_get(hl, ckey)) {
277 0 11 if (argc % 2 != 0) {
281 11 11 for (j = 1; j <= argc; ) {
282 0 11 if (j > argc) {
287 0 11 if (j > argc) {
292 11 0 ckey = SvPV(pkey, len);
318 1 139 if (argc == 0) {
322 87 52 if (argc == 1) {
324 87 0 ckey = SvPV(pkey, len);
326 65 22 if (n && plist_size(n->values) > 0) {
65 0 if (n && plist_size(n->values) > 0) {
328 65 0 return_plist(aTHX_ n->values, "header1", GIMME_V);
334 0 52 if (argc % 2 != 0) {
339 57 52 for (j = 1; j <= argc; ) {
340 0 57 if (j > argc) {
345 0 57 if (j > argc) {
350 57 0 ckey = SvPV(pkey, len);
352 56 1 if (! hlist_get(seen, ckey)) {
358 17 40 if (n) {
359 15 2 if (j > argc && plist_size(n->values) > 0) {
15 0 if (j > argc && plist_size(n->values) > 0) {
362 15 0 return_plist(aTHX_ n->values, "header2", GIMME_V);
365 16 1 if (clear) {
399 1 3 if (argc != 1) {
404 1 2 if (!SvOK(pkey) || !SvPOK(pkey)) {
1 0 if (!SvOK(pkey) || !SvPOK(pkey)) {
0 1 if (!SvOK(pkey) || !SvPOK(pkey)) {
0 2 if (!SvOK(pkey) || !SvPOK(pkey)) {
407 2 0 ckey = SvPV(pkey, len);
409 2 0 if (n && plist_size(n->values) > 0) {
2 0 if (n && plist_size(n->values) > 0) {
411 2 0 return_plist(aTHX_ n->values, "_header", GIMME_V);
435 22 15 for (j = 1; j <= argc; ++j) {
437 22 0 ckey = SvPV(pkey, len);
440 5 17 if (!n) {
445 17 0 if (size > 0) {
447 17 0 if (GIMME_V == G_ARRAY) {
7 10 if (GIMME_V == G_ARRAY) {
458 15 0 if (GIMME_V == G_SCALAR) {
5 10 if (GIMME_V == G_SCALAR) {
460 0 5 EXTEND(SP, 1);
479 0 4 if (!(to = hlist_create()))
484 34 4 for (j = 0; j < hl->ulen; ) {
486 14 20 if (! header_is_entity(n->header)) {
506 2 26 if ( items > 1 ) {
508 2 0 cendl = SvPV_nolen(pendl);
530 0 2 if ( items > 1 ) {
532 0 0 cendl = SvPV_nolen(pendl);
553 1 5 if (!SvOK(sub) || !SvRV(sub) || SvTYPE( SvRV(sub) ) != SVt_PVCV ) {
1 0 if (!SvOK(sub) || !SvRV(sub) || SvTYPE( SvRV(sub) ) != SVt_PVCV ) {
0 1 if (!SvOK(sub) || !SvRV(sub) || SvTYPE( SvRV(sub) ) != SVt_PVCV ) {
5 0 if (!SvOK(sub) || !SvRV(sub) || SvTYPE( SvRV(sub) ) != SVt_PVCV ) {
0 5 if (!SvOK(sub) || !SvRV(sub) || SvTYPE( SvRV(sub) ) != SVt_PVCV ) {
558 15 4 for (j = 0; j < hl->ulen; ++j) {
563 19 14 for (k = 0; k < pl->ulen; ++k) {
570 0 19 PUSHMARK(SP);
576 0 18 FREETMPS;