Branch Coverage

Patricia.xs
Criterion Covered Total %
branch 106 150 70.6


line true false branch
71 10 6 if (node->l) {
75 12 4 if (node->prefix) {
76 12 0 if (NULL != coderef) {
77 0 12 PUSHMARK(SP);
78 0 12 XPUSHs(sv_mortalcopy((SV *)node->data));
86 4 12 if (node->r) {
120 11 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 11 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
122 11 0 if (NULL != node) {
124 0 11 if (node->data) {
145 22 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 22 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
147 18 4 if (NULL != node) {
148 0 18 XPUSHs((SV *)node->data);
164 8 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 8 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
166 4 4 if (NULL != node) {
167 0 4 XPUSHs((SV *)node->data);
184 4 0 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
0 4 Fill_Prefix(prefix, family, addr, bits, tree->maxbits);
186 3 1 if (NULL != node) {
187 0 3 XPUSHs(sv_mortalcopy((SV *)node->data));
200 2 0 SV *func = NULL;
202 0 2 if (2 == items) {
204 0 2 } else if (2 < items) {
207 12 4 PATRICIA_WALK (tree->head, node) {
16 2 PATRICIA_WALK (tree->head, node) {
208 0 12 if (NULL != func) {
209 0 0 PUSHMARK(SP);
210 0 0 XPUSHs(sv_mortalcopy((SV *)node->data));
216 10 6 } PATRICIA_WALK_END;
4 6 } PATRICIA_WALK_END;
0 6 } PATRICIA_WALK_END;
4 2 } PATRICIA_WALK_END;
217 1 1 RETVAL = n;
226 2 0 SV *func = NULL;
229 2 0 if (2 == items) {
231 0 0 } else if (2 < items) {
234 2 0 if (NULL != tree->head) {
237 1 1 RETVAL = n;
249 6 0 size_t n = 0, i = 0, nd = 0;
252 0 6 if (SvTRUE(cloning))
261 40 6 PATRICIA_WALK_ALL (tree->head, node) {
263 24 16 } PATRICIA_WALK_END;
10 14 } PATRICIA_WALK_END;
0 16 } PATRICIA_WALK_END;
10 6 } PATRICIA_WALK_END;
265 0 6 if (n > 2147483646)
276 0 6 XPUSHs(frozen_patricia);
283 40 6 PATRICIA_WALK_ALL (tree->head, node) {
290 31 9 if (node->prefix) {
293 30 1 if (tree->maxbits == 32)
300 31 9 if (node->data) {
303 0 31 XPUSHs(sv_2mortal(newRV_inc((SV *)node->data)));
307 34 6 if (node->parent && node->parent->l == node) {
24 10 if (node->parent && node->parent->l == node) {
309 10 6 } else if (node->parent && node->parent->r == node) {
10 0 } else if (node->parent && node->parent->r == node) {
313 24 16 } PATRICIA_WALK_END;
10 14 } PATRICIA_WALK_END;
0 16 } PATRICIA_WALK_END;
10 6 } PATRICIA_WALK_END;
331 0 6 if (SvTRUE(cloning))
337 0 6 if (ntohl(frozen_patricia->header.magic) != FROZEN_MAGIC)
339 0 6 if (frozen_patricia->header.major != FROZEN_MAJOR)
341 0 6 if (frozen_patricia->header.minor != FROZEN_MINOR)
350 0 6 if (n_calculated < n)
354 40 6 for (i = 0; i < n; i++) {
361 31 9 if (d_index >= 0)
364 31 9 if (ntohs(frozen_node->bitlen) & 0x8000) {
372 30 1 if (tree->maxbits == 32) {
382 6 0 if (n)
384 40 6 for (i = 0; i < n; i++) {
389 24 16 if (l_index >= 0) {
396 10 30 if (r_index >= 0) {