Branch Coverage

encode.c
Criterion Covered Total %
branch 145 188 77.1


line true false branch
38 370 0 if (!src || !SvOK(src)) {
17 353 if (!src || !SvOK(src)) {
137 19 1 if (number > 127 || number < -128) {
1 18 if (number > 127 || number < -128) {
236 0 18 if (UNLIKELY(length > INT32_MAX))
282 11 9 if (SvTRUE(src)) {
303 180 5 while (j < 32 && i < size) {
180 0 while (j < 32 && i < size) {
305 160 20 if (c >= '0' && c <= '9') {
100 60 if (c >= '0' && c <= '9') {
307 60 20 } else if (c >= 'a' && c <= 'f') {
60 0 } else if (c >= 'a' && c <= 'f') {
309 0 20 } else if (c >= 'A' && c <= 'F') {
0 0 } else if (c >= 'A' && c <= 'F') {
315 80 80 if (!(j%2))
321 0 5 if (j != 32)
337 120 14 for (i = 0; i < size; i++) {
338 24 96 if (ptr[i] == ':')
344 9 5 if (semicolon) { /* IPv6 */
347 9 0 if (inet_pton(AF_INET6, ptr, out+4)) {
356 5 0 if (inet_pton(AF_INET, ptr, out+4)) {
379 776 50 for (i = 0, j = 0; i < size; i++) {
380 676 100 if (ptr[i] == ':' || ptr[i] == '.') {
50 626 if (ptr[i] == ':' || ptr[i] == '.') {
383 0 150 if (j > 3)
385 626 0 } else if (ptr[i] >= '0' && ptr[i] <= '9') {
626 0 } else if (ptr[i] >= '0' && ptr[i] <= '9') {
391 50 0 if (j == 3 && numbers[3] > 0) {
49 1 if (j == 3 && numbers[3] > 0) {
392 96 49 for (; k<9; k++)
406 3 273 if (a < 0 && a%b != 0)
3 0 if (a < 0 && a%b != 0)
420 0 69 if (UNLIKELY(size < 5))
424 1 68 if (ptr[pos] == '-') {
432 642 69 while (pos < size) {
433 138 504 if (ptr[pos] == '-') {
435 0 138 if (UNLIKELY(i >= 3))
437 504 0 } else if (ptr[pos] >= '0' && ptr[pos] <= '9') {
504 0 } else if (ptr[pos] >= '0' && ptr[pos] <= '9') {
447 1 68 if (negative_year)
450 66 3 v_a = (numbers[1] == 1 || numbers[1] == 2) ? 1 : 0;
58 8 v_a = (numbers[1] == 1 || numbers[1] == 2) ? 1 : 0;
472 25 5 if (size <= 18) {
490 7 18 if (stuff.bytes[0] & 0x80) { /* negative */
491 49 2 for (i = 0; i < sizeof(stuff.bytes); i++) {
492 45 4 if (stuff.bytes[i] != 0xff || (i < (sizeof(stuff.bytes)-1) && !(stuff.bytes[i+1]&0x80)))
43 2 if (stuff.bytes[i] != 0xff || (i < (sizeof(stuff.bytes)-1) && !(stuff.bytes[i+1]&0x80)))
42 1 if (stuff.bytes[i] != 0xff || (i < (sizeof(stuff.bytes)-1) && !(stuff.bytes[i+1]&0x80)))
496 132 3 for (i = 0; i < sizeof(stuff.bytes); i++) {
497 119 13 if (stuff.bytes[i] || (i < (sizeof(stuff.bytes)-1) && (stuff.bytes[i+1]&0x80)))
116 3 if (stuff.bytes[i] || (i < (sizeof(stuff.bytes)-1) && (stuff.bytes[i+1]&0x80)))
114 2 if (stuff.bytes[i] || (i < (sizeof(stuff.bytes)-1) && (stuff.bytes[i+1]&0x80)))
501 5 20 if (i == sizeof(stuff.bytes))
503 8 17 if (int_out)
520 93 5 for (i = 0; i < encoded_len; i++) {
524 1 4 if (int_out)
553 0 9 if (ptr[pos] == '-') {
557 31 5 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
29 2 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
27 2 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
561 2 7 if (ptr[pos] == '.') {
564 20 1 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
20 0 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
19 1 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
569 7 2 if (ptr[pos] == 'e' || ptr[pos] == 'E') {
1 6 if (ptr[pos] == 'e' || ptr[pos] == 'E') {
573 1 2 if (ptr[pos] == '-') {
576 2 0 } else if (ptr[pos] == '+') {
580 10 3 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
10 0 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
10 0 for (; pos < size && ptr[pos] >= '0' && ptr[pos] <= '9'; pos++) {
584 1 2 if (neg)
589 0 9 if (pos != size)
608 13 0 if (UNLIKELY(!SvROK(src) || SvTYPE(SvRV(src)) != SVt_PVAV))
0 13 if (UNLIKELY(!SvROK(src) || SvTYPE(SvRV(src)) != SVt_PVAV))
612 0 13 if (UNLIKELY(av_len(list)+1 > INT32_MAX))
621 25 13 for (i = 0; i < count; i++) {
624 0 25 if (!entry)
649 9 0 if (UNLIKELY(!SvROK(src) || SvTYPE(SvRV(src)) != SVt_PVHV))
0 9 if (UNLIKELY(!SvROK(src) || SvTYPE(SvRV(src)) != SVt_PVHV))
655 13 9 while ((key = hv_iternext(map)) != NULL) {
658 13 0 key_sv = HeSVKEY_force(key);
0 13 key_sv = HeSVKEY_force(key);
680 3 0 if (UNLIKELY(!SvROK(src) || SvTYPE(SvRV(src)) != SVt_PVAV))
0 3 if (UNLIKELY(!SvROK(src) || SvTYPE(SvRV(src)) != SVt_PVAV))
687 6 3 for (i = 0; i < tuple->field_count; i++) {
693 0 6 if (!value)
715 2 0 if (UNLIKELY(!SvROK(src) || SvTYPE(SvRV(src)) != SVt_PVHV))
0 2 if (UNLIKELY(!SvROK(src) || SvTYPE(SvRV(src)) != SVt_PVHV))
719 0 2 entry_count = HvUSEDKEYS(hash);
720 0 2 if (UNLIKELY(entry_count > udt->field_count))
723 2 2 for (i = 0; i < entry_count; i++) {
730 0 2 if (UNLIKELY(entry == NULL)) {
731 0 0 if (i == 0) {