Branch Coverage

XS.xs
Criterion Covered Total %
branch 247 394 62.6


line true false branch
125 2937 0 if (expect_false (val < 0 || val >= sizeof (sviv_cache)))
0 2937 if (expect_false (val < 0 || val >= sizeof (sviv_cache)))
0 2937 if (expect_false (val < 0 || val >= sizeof (sviv_cache)))
128 51 2886 if (expect_false (!sviv_cache [val]))
144 1132 400 if (!SvOK (profile))
1132 0 if (!SvOK (profile))
1132 0 if (!SvOK (profile))
147 0 400 if (!SvROK (profile))
152 0 400 if (SvSTASH (profile) != profile_stash)
164 0 1744 if (expect_false (idx >= SvCUR (sv)))
178 172 436 if (idx >= oldlen)
210 260 26 for (celem = default_map + sizeof (default_map) / sizeof (default_map [0]); celem-- > default_map; )
228 1 451 if (expect_false ((uintptr_t)(end - cur) < count))
239 1 10592 if (cur == end)
262 1 1300 if (expect_false (c == 0x80))
267 545 6890 if (expect_false (res >> UVSIZE * 8 - 7))
272 754 6136 if (expect_true (!(c & 0x80)))
284 86 1462 if (expect_false (res & 0x80))
292 0 86 if (expect_false (cnt == 0))
295 1 85 if (expect_false (cnt > UVSIZE))
303 66 85 while (--cnt);
312 0 123 if (!len)
317 60 63 if (expect_false (len > 1))
321 58 2 if (expect_false (mask == 0xff80 || mask == 0x0000))
1 57 if (expect_false (mask == 0xff80 || mask == 0x0000))
3 57 if (expect_false (mask == 0xff80 || mask == 0x0000))
327 14 106 UV val = negative ? -1 : 0; // copy signbit to all bits
329 106 14 if (len > UVSIZE + (!negative && !*data))
47 59 if (len > UVSIZE + (!negative && !*data))
5 115 if (len > UVSIZE + (!negative && !*data))
334 215 115 while (--len);
338 13 102 return negative ? newSViv ((IV)val) : newSVuv (val);
352 714 391 if (expect_true (u < 10))
364 2684 391 while (u);
368 1449 391 while (--ptr > beg)
383 1 902 if (len <= 0)
395 3 354 if (relative)
401 74 280 if (w < 2 * 40)
411 396 355 while (cur < end)
414 0 396 if (oid + sizeof (oid) - app < 64)
429 5 12 if (len & (chrsize - 1))
434 18 12 while (len)
440 6 12 if (chrsize == 4)
470 3 1545 if (tag == ASN_TAG_BER)
473 229 1319 if (constructed)
479 516 221 while (cur < buf + seqend)
482 0 221 if (expect_false (cur > buf + seqend))
494 1 15 if (expect_false (len))
501 2 12 if (expect_false (len != 1))
530 1 3 if (len != 4)
576 0 330 if (sum < (size_t)l2 || sum != (size_t)(STRLEN)sum)
587 144 0 buf = (U8 *)SvPVbyte (buf_sv, len);
599 1 164 if (len1 > 4096 - 24)
602 165 0 return SvGROW (sv, len1);
21 144 return SvGROW (sv, len1);
608 165 1175 if (expect_false ((uintptr_t)(end - cur) < len))
652 471 77 if (val <= 0x7fU)
688 60 242 : 2
689 28 32 + (val > 0x000000000000ffU)
719 0 92 if (expect_false (!SvIOK (sv)))
724 88 4 if (SvIOK_notUV (sv))
728 8 80 if (expect_false (iv < 0))
750 4 80 UV uv = SvUV (sv);
786 60 242 if (expect_false (lenlen > 1))
802 868 556 while (*str >= '0')
816 88 0 char *ptr = SvPV (oid, len); // utf8 vs. bytes does not matter
824 86 2 if (!relative)
832 384 88 while (*ptr)
847 657 0 if (expect_false (!SvROK (tuple) || SvTYPE ((rv = SvRV (tuple))) != SVt_PVAV))
0 657 if (expect_false (!SvROK (tuple) || SvTYPE ((rv = SvRV (tuple))) != SVt_PVAV))
0 657 if (expect_false (!SvROK (tuple) || SvTYPE ((rv = SvRV (tuple))) != SVt_PVAV))
850 0 657 if (expect_false (SvRMAGICAL (rv)))
853 0 657 if (expect_false (AvFILL ((AV *)rv) != BER_ARRAYSIZE - 1))
0 657 if (expect_false (AvFILL ((AV *)rv) != BER_ARRAYSIZE - 1))
854 0 0 croak ("BER tuple must contain exactly %d elements, not %d", BER_ARRAYSIZE, AvFILL ((AV *)rv) + 1);
864 8 0 char *ptr = SvPVutf8 (data, len);
868 12 8 while (uchars--)
871 0 12 UV uchr = utf8_to_uvchr_buf ((U8 *)ptr, (U8 *)ptr + len, &uclen);
876 4 8 if (chrsize == 4)
891 640 0 int klass = SvIV (AvARRAY (av)[BER_CLASS]);
892 640 0 int tag = SvIV (AvARRAY (av)[BER_TAG]);
893 640 0 int constructed = SvIV (AvARRAY (av)[BER_FLAGS]) & 1 ? ASN_CONSTRUCTED : 0;
214 426 int constructed = SvIV (AvARRAY (av)[BER_FLAGS]) & 1 ? ASN_CONSTRUCTED : 0;
898 0 640 if (expect_false (tag >= ASN_TAG_BER))
906 214 426 if (constructed)
913 214 0 if (expect_false (!SvROK (data) || SvTYPE (SvRV (data)) != SVt_PVAV))
0 214 if (expect_false (!SvROK (data) || SvTYPE (SvRV (data)) != SVt_PVAV))
0 214 if (expect_false (!SvROK (data) || SvTYPE (SvRV (data)) != SVt_PVAV))
917 0 214 int fill = AvFILL (av);
919 0 214 if (expect_false (SvRMAGICAL (av)))
923 496 214 for (i = 0; i <= fill; ++i)
937 8 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 8 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 8 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
8 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
8 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
8 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
8 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
6 2 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
6 2 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
0 0 *cur++ = SvTRUE (data) ? 0xff : 0x00; // 0xff = DER/CER
955 204 0 const char *ptr = SvPVbyte (data, len);
963 11 0 const char *ptr = SvPVutf8 (data, len);
971 2 0 sscanf (SvPV_nolen (data), "%hhu.%hhu.%hhu.%hhu", ip + 0, ip + 1, ip + 2, ip + 3);
1078 413 7 for (civ = const_iv + sizeof (const_iv) / sizeof (const_iv [0]); civ > const_iv; civ--)
1090 1032 0 buf = (U8 *)SvPVbyte (ber, len);
1096 0 465 EXTEND (SP, 2);
1099 61 404 if (ix)
1101 61 343 else if (cur != end)
1109 0 73 if (!SvOK (tuple))
0 0 if (!SvOK (tuple))
0 0 if (!SvOK (tuple))
1112 73 0 if (!SvROK (tuple) || SvTYPE (SvRV (tuple)) != SVt_PVAV)
0 73 if (!SvROK (tuple) || SvTYPE (SvRV (tuple)) != SVt_PVAV)
1117 0 73 XPUSHs (
5 68 XPUSHs (
5 0 XPUSHs (
0 5 XPUSHs (
68 0 XPUSHs (
68 0 XPUSHs (
67 1 XPUSHs (
4 68 XPUSHs (
4 0 XPUSHs (
0 4 XPUSHs (
68 0 XPUSHs (
68 0 XPUSHs (
67 1 XPUSHs (
4 67 XPUSHs (
4 0 XPUSHs (
0 4 XPUSHs (
67 0 XPUSHs (
67 0 XPUSHs (
66 1 XPUSHs (
6 64 XPUSHs (
6 0 XPUSHs (
0 6 XPUSHs (
62 2 XPUSHs (
1129 0 3 if (!SvOK (tuple))
0 0 if (!SvOK (tuple))
0 0 if (!SvOK (tuple))
1134 0 3 XPUSHs (
3 0 XPUSHs (
2 1 XPUSHs (
0 0 XPUSHs (
2 0 XPUSHs (
2 0 XPUSHs (
0 0 XPUSHs (
2 0 XPUSHs (
1 1 XPUSHs (
0 0 XPUSHs (
1145 0 10 if (!SvOK (tuple))
0 0 if (!SvOK (tuple))
0 0 if (!SvOK (tuple))
1150 0 10 UV data = SvUV (AvARRAY (av)[BER_DATA]);
1152 0 10 XPUSHs (
10 0 XPUSHs (
9 1 XPUSHs (
0 0 XPUSHs (
9 0 XPUSHs (
9 0 XPUSHs (
0 0 XPUSHs (
9 0 XPUSHs (
7 2 XPUSHs (
0 0 XPUSHs (
1 6 XPUSHs (
1 0 XPUSHs (
0 1 XPUSHs (
0 6 XPUSHs (
6 0 XPUSHs (
3 4 XPUSHs (
1165 0 4 if (!SvOK (tuple))
0 0 if (!SvOK (tuple))
0 0 if (!SvOK (tuple))
1170 0 4 XPUSHs (
4 0 XPUSHs (
3 1 XPUSHs (
0 0 XPUSHs (
3 0 XPUSHs (
2 1 XPUSHs (
0 0 XPUSHs (
2 0 XPUSHs (
2 0 XPUSHs (
0 0 XPUSHs (
1 1 XPUSHs (
1 0 XPUSHs (
0 1 XPUSHs (
1 0 XPUSHs (
1192 0 144 XPUSHs (buf_sv);