Branch Coverage

XS.xs
Criterion Covered Total %
branch 161 266 60.5


line true false branch
10 1147 33 return (c == 0x21 ||
11 1032 115 (c >= 0x23 && c <= 0x3C) ||
1025 40 (c >= 0x23 && c <= 0x3C) ||
12 1180 0 (c >= 0x3E && c <= 0x5B) ||
1002 23 (c >= 0x3E && c <= 0x5B) ||
994 48 (c >= 0x3E && c <= 0x5B) ||
13 992 2 (c >= 0x5D && c <= 0x7E));
21 2 141 if (len == 0)
23 630 98 for (i = 0; i < len; i++) {
24 43 587 if (!is_okchr((unsigned char)s[i]))
41 0 7 if (cp <= 0x1F)
45 0 7 if (cp == 0x7F)
49 7 0 if (cp >= 0x80 && cp <= 0x9F)
0 7 if (cp >= 0x80 && cp <= 0x9F)
53 5 2 if (cp == 0x2028 || cp == 0x2029)
0 5 if (cp == 0x2028 || cp == 0x2029)
57 0 5 if (cp == 0x00AD) return 1; /* SOFT HYPHEN */
58 2 3 if (cp >= 0x0600 && cp <= 0x0605) return 1;
0 2 if (cp >= 0x0600 && cp <= 0x0605) return 1;
59 0 5 if (cp == 0x061C) return 1;
60 0 5 if (cp == 0x06DD) return 1;
61 0 5 if (cp == 0x070F) return 1;
62 0 5 if (cp == 0x08E2) return 1;
63 0 5 if (cp == 0x180E) return 1;
64 2 3 if (cp >= 0x200B && cp <= 0x200F) return 1; /* includes ZWJ (0x200D) */
2 0 if (cp >= 0x200B && cp <= 0x200F) return 1; /* includes ZWJ (0x200D) */
65 0 3 if (cp >= 0x202A && cp <= 0x202E) return 1;
0 0 if (cp >= 0x202A && cp <= 0x202E) return 1;
66 0 3 if (cp >= 0x2060 && cp <= 0x2064) return 1;
0 0 if (cp >= 0x2060 && cp <= 0x2064) return 1;
67 0 3 if (cp >= 0x2066 && cp <= 0x206F) return 1;
0 0 if (cp >= 0x2066 && cp <= 0x206F) return 1;
68 0 3 if (cp == 0xFEFF) return 1; /* BOM */
69 0 3 if (cp >= 0xFFF9 && cp <= 0xFFFB) return 1;
0 0 if (cp >= 0xFFF9 && cp <= 0xFFFB) return 1;
72 0 3 if (cp >= 0xE000 && cp <= 0xF8FF) return 1;
0 0 if (cp >= 0xE000 && cp <= 0xF8FF) return 1;
75 0 3 if (cp >= 0xD800 && cp <= 0xDFFF) return 1;
0 0 if (cp >= 0xD800 && cp <= 0xDFFF) return 1;
78 3 0 if (cp == 0x110BD || cp == 0x110CD) return 1;
0 3 if (cp == 0x110BD || cp == 0x110CD) return 1;
79 0 3 if (cp >= 0x13430 && cp <= 0x1343F) return 1;
0 0 if (cp >= 0x13430 && cp <= 0x1343F) return 1;
80 0 3 if (cp >= 0x1BCA0 && cp <= 0x1BCA3) return 1;
0 0 if (cp >= 0x1BCA0 && cp <= 0x1BCA3) return 1;
81 0 3 if (cp >= 0x1D173 && cp <= 0x1D17A) return 1;
0 0 if (cp >= 0x1D173 && cp <= 0x1D17A) return 1;
82 0 3 if (cp == 0xE0001) return 1;
83 0 3 if (cp >= 0xE0020 && cp <= 0xE007F) return 1;
0 0 if (cp >= 0xE0020 && cp <= 0xE007F) return 1;
86 0 3 if (cp >= 0xF0000 && cp <= 0xFFFFD) return 1;
0 0 if (cp >= 0xF0000 && cp <= 0xFFFFD) return 1;
87 0 3 if (cp >= 0x100000 && cp <= 0x10FFFD) return 1;
0 0 if (cp >= 0x100000 && cp <= 0x10FFFD) return 1;
90 0 3 if ((cp & 0xFFFE) == 0xFFFE) return 1;
91 0 3 if (cp >= 0xFDD0 && cp <= 0xFDEF) return 1;
0 0 if (cp >= 0xFDD0 && cp <= 0xFDEF) return 1;
116 270 24 while (s < end) {
120 92 178 if (is_utf8) {
122 0 92 if (char_len == 0) {
132 5 265 if (cp == '\\') {
134 14 251 } else if (cp == '"') {
136 3 248 } else if (cp == '\t') {
138 3 245 } else if (cp == '\n') {
140 3 242 } else if (cp == '\r') {
142 242 0 } else if (cp >= 0x20 && cp < 0x7F) {
235 7 } else if (cp >= 0x20 && cp < 0x7F) {
145 4 3 } else if (needs_escape(cp)) {
151 12 4 for (j = 0; j < utf8len; j++) {
158 3 0 if (is_utf8) {
188 0 146 if (!SvOK(key_sv)) {
193 2 144 if (len == 0) {
197 0 144 if (SvUTF8(key_sv)) {
202 0 0 while (s < end) {
205 0 0 if (char_len == 0) { s++; continue; }
206 0 0 if (cp <= 0x7E && is_okchr((unsigned char)cp)) {
0 0 if (cp <= 0x7E && is_okchr((unsigned char)cp)) {
220 550 144 for (i = 0; i < len; i++) {
221 7 543 if (!is_okchr((unsigned char)buf[i])) {
244 146 85 for (i = 0; i <= alen; i += 2) {
252 146 0 key = sanitize_key(aTHX_ key_svp ? *key_svp : &PL_sv_undef);
255 49 97 if (prefix && SvOK(prefix)) {
49 0 if (prefix && SvOK(prefix)) {
267 146 0 val_svp = (i + 1 <= alen) ? av_fetch(aref, i + 1, 0) : NULL;
268 146 0 value = val_svp ? *val_svp : &PL_sv_undef;
271 145 1 if (SvOK(value) && !SvROK(value)) {
103 42 if (SvOK(value) && !SvROK(value)) {
273 82 21 if (is_bare_value(val_s, val_len)) {
281 42 22 if (SvROK(value) && SvTYPE(SvRV(value)) == SVt_PVCV) {
5 37 if (SvROK(value) && SvTYPE(SvRV(value)) == SVt_PVCV) {
286 0 5 PUSHMARK(SP);
290 5 0 if (count > 0) {
296 5 0 FREETMPS;
302 37 27 if (SvROK(value) && !sv_isobject(value) && SvROK(SvRV(value))) {
29 8 if (SvROK(value) && !sv_isobject(value) && SvROK(SvRV(value))) {
3 26 if (SvROK(value) && !sv_isobject(value) && SvROK(SvRV(value))) {
313 0 3 PUSHMARK(SP);
314 0 3 XPUSHs(self);
318 3 0 flogger_class = (count > 0) ? POPs : &PL_sv_undef;
321 3 0 FREETMPS;
332 0 3 PUSHMARK(SP);
333 0 3 XPUSHs(sv_2mortal(flogger_class));
334 0 3 XPUSHs(flog_args_ref);
338 3 0 if (count > 0) {
344 3 0 FREETMPS;
349 1 63 if (!SvOK(value)) {
352 34 29 } else if (SvROK(value)) {
359 2 32 if (seen_svp && SvOK(*seen_svp)) {
2 0 if (seen_svp && SvOK(*seen_svp)) {
362 24 8 } else if (!sv_isobject(value) &&
363 13 11 SvTYPE(SvRV(value)) == SVt_PVAV) {
377 31 13 for (j = 0; j <= arr_len; j++) {
380 31 0 av_push(new_aref, elem ? newSVsv(*elem) : newSVsv(&PL_sv_undef));
385 41 13 for (j = 0; j <= sub_len; j++) {
387 41 0 if (svp) av_push(kvstrs, newSVsv(*svp));
393 11 8 } else if (!sv_isobject(value) &&
394 11 0 SvTYPE(SvRV(value)) == SVt_PVHV) {
411 18 11 while ((entry = hv_iternext(hv))) {
415 6 5 if (nkeys >= 1) {
421 18 11 for (j = 0; j <= nkeys; j++) {
423 18 0 if (kp) {
426 0 18 SV **vp = hv_fetch(hv, ks,
429 18 0 av_push(new_aref, vp ? newSVsv(*vp) : newSVsv(&PL_sv_undef));
435 27 11 for (j = 0; j <= sub_len; j++) {
437 27 0 if (svp) av_push(kvstrs, newSVsv(*svp));
456 16 24 if (is_bare_value(val_s, val_len)) {
485 61 0 if (!SvROK(aref_ref) || SvTYPE(SvRV(aref_ref)) != SVt_PVAV) {
0 61 if (!SvROK(aref_ref) || SvTYPE(SvRV(aref_ref)) != SVt_PVAV) {
491 0 61 if (items >= 3 && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
0 0 if (items >= 3 && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
0 0 if (items >= 3 && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVHV) {
499 0 61 if (items >= 4 && SvOK(ST(3))) {
0 0 if (items >= 4 && SvOK(ST(3))) {