Branch Coverage

Patricia.xs
Criterion Covered Total %
branch 135 224 60.2


line true false branch
194 19 13 if (node->l) {
198 25 7 if (node->prefix) {
199 25 0 if (NULL != coderef) {
200 0 25 PUSHMARK(SP);
201 0 25 XPUSHs(sv_mortalcopy((SV *)node->data));
202 21 4 if (node->prefix->family == AF_INET) {
203 0 21 XPUSHs(sv_2mortal(
214 0 4 XPUSHs(sv_2mortal(newSVpvf("%s/%d", buff, node->prefix->bitlen)));
224 9 23 if (node->r) {
274 37 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 37 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
276 37 0 if (NULL != node) {
278 0 37 if (node->data) {
299 23 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 23 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
301 18 5 if (NULL != node) {
302 0 18 XPUSHs((SV *)node->data);
318 8 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 8 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
320 7 1 if (NULL != node) {
321 3 4 if (node->prefix->family == AF_INET) {
322 0 3 XPUSHs(sv_2mortal(
332 0 4 XPUSHs(sv_2mortal(newSVpvf("%s/%d", buff, node->prefix->bitlen)));
351 8 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 8 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
353 4 4 if (NULL != node) {
354 0 4 XPUSHs((SV *)node->data);
371 4 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 4 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
373 3 1 if (NULL != node) {
374 0 3 XPUSHs(sv_mortalcopy((SV *)node->data));
389 2 2 if (2 == items) {
391 0 2 } else if (2 < items) {
394 25 7 PATRICIA_WALK (tree->head, node) {
32 4 PATRICIA_WALK (tree->head, node) {
395 13 12 if (NULL != func) {
396 0 13 PUSHMARK(SP);
397 0 13 XPUSHs(sv_mortalcopy((SV *)node->data));
398 9 4 if (node->prefix->family == AF_INET) {
399 0 9 XPUSHs(sv_2mortal(
409 0 4 XPUSHs(sv_2mortal(newSVpvf("%s/%d", buff, node->prefix->bitlen)));
417 19 13 } PATRICIA_WALK_END;
9 10 } PATRICIA_WALK_END;
0 13 } PATRICIA_WALK_END;
9 4 } PATRICIA_WALK_END;
430 4 0 if (2 == items) {
432 0 0 } else if (2 < items) {
451 6 0 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
6 0 if (SvTRUE(cloning))
6 0 if (SvTRUE(cloning))
6 0 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
460 40 6 PATRICIA_WALK_ALL (tree->head, node) {
462 24 16 } PATRICIA_WALK_END;
10 14 } PATRICIA_WALK_END;
0 16 } PATRICIA_WALK_END;
10 6 } PATRICIA_WALK_END;
464 0 6 if (n > 2147483646)
475 0 6 XPUSHs(frozen_patricia);
482 40 6 PATRICIA_WALK_ALL (tree->head, node) {
489 31 9 if (node->prefix) {
492 30 1 if (tree->maxbits == 32)
499 31 9 if (node->data) {
502 0 31 XPUSHs(sv_2mortal(newRV_inc((SV *)node->data)));
506 34 6 if (node->parent && node->parent->l == node) {
24 10 if (node->parent && node->parent->l == node) {
508 10 6 } else if (node->parent && node->parent->r == node) {
10 0 } else if (node->parent && node->parent->r == node) {
512 24 16 } PATRICIA_WALK_END;
10 14 } PATRICIA_WALK_END;
0 16 } PATRICIA_WALK_END;
10 6 } PATRICIA_WALK_END;
530 6 0 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
6 0 if (SvTRUE(cloning))
6 0 if (SvTRUE(cloning))
6 0 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
0 0 if (SvTRUE(cloning))
0 6 if (SvTRUE(cloning))
534 6 0 frozen_patricia = (struct frozen_patricia*)SvPV(serialized, len);
536 0 6 if (ntohl(frozen_patricia->header.magic) != FROZEN_MAGIC)
538 0 6 if (frozen_patricia->header.major != FROZEN_MAJOR)
540 0 6 if (frozen_patricia->header.minor != FROZEN_MINOR)
549 0 6 if (n_calculated < n)
553 40 6 for (i = 0; i < n; i++) {
560 31 9 if (d_index >= 0)
563 31 9 if (ntohs(frozen_node->bitlen) & 0x8000) {
571 30 1 if (tree->maxbits == 32) {
581 6 0 if (n)
583 40 6 for (i = 0; i < n; i++) {
588 24 16 if (l_index >= 0) {
595 10 30 if (r_index >= 0) {