Branch Coverage

Code.xs
Criterion Covered Total %
branch 187 318 58.8


line true false branch
117 0 1 if (!sv) {
119 0 0 if (c != '"') {
126 1 0 if (c != '"') {
131 1 0 if (line) {
140 7 482 if (d - ds > 1) {
149 16 0 if (!c || !p) {
0 16 if (!c || !p) {
157 22 64 *pop = !*pop ? str : newBINOP(OP_CONCAT, 0, *pop, str);
179 2 75 if (lex_bufutf8()) {
189 1 455 if (c == -1) {
195 111 344 if (
196 53 58 b == '\n' &&
197 49 4 delim_str &&
199 20 29 (STRLEN)(PL_parser->bufend - PL_parser->bufptr) >= SvCUR(delim_str) &&
201 0 20 memcmp(PL_parser->bufptr, SvPVX(delim_str), SvCUR(delim_str)) == 0) && (
202 0 0 !(
205 0 20 ) ||
206 0 0 (elim++, PL_parser->bufptr[SvCUR(delim_str)] == '\n') || (
208 0 0 PL_parser->bufptr[SvCUR(delim_str)] == '\r' &&
0 0 PL_parser->bufptr[SvCUR(delim_str)] == '\r' &&
218 37 398 if (
219 227 208 !(spec->flags & FLAG_HASH_INTERPOLATE)
221 13 0 : c == '#' &&
222 11 2 spec->delim_stop != '#' &&
223 13 195 PL_parser->bufptr[1] == '{' &&
231 23 14 if (SvCUR(sv)) {
235 0 23 if (lex_bufutf8()) {
240 26 11 if (*gen_sentinel) {
252 150 248 if (pnesting && c == spec->delim_start) {
5 145 if (pnesting && c == spec->delim_start) {
254 196 197 } else if (have_delim_stop && c == spec->delim_stop) {
37 159 } else if (have_delim_stop && c == spec->delim_stop) {
255 21 16 if (!pnesting || *pnesting == 0) {
16 5 if (!pnesting || *pnesting == 0) {
256 8 24 if (spec->flags & FLAG_STOP_AT_SPACE) {
264 99 257 } else if ((spec->flags & FLAG_STOP_AT_SPACE) && isSPACE(c)) {
99 0 } else if ((spec->flags & FLAG_STOP_AT_SPACE) && isSPACE(c)) {
76 23 } else if ((spec->flags & FLAG_STOP_AT_SPACE) && isSPACE(c)) {
266 41 292 } else if (c == '\\' && (spec->flags & FLAG_BACKSLASH_ESCAPE)) {
34 7 } else if (c == '\\' && (spec->flags & FLAG_BACKSLASH_ESCAPE)) {
284 0 0 if (c == -1) {
287 0 0 c = toUPPER(c) ^ 64;
0 0 c = toUPPER(c) ^ 64;
292 0 0 if (c != '{') {
296 0 0 while (c = lex_peek_unichar(0), c >= '0' && c <= '7') {
0 0 while (c = lex_peek_unichar(0), c >= '0' && c <= '7') {
0 0 while (c = lex_peek_unichar(0), c >= '0' && c <= '7') {
300 0 0 if (c != '}') {
309 2 4 if (c == '{') {
311 10 0 while (c = lex_peek_unichar(0), isXDIGIT(c)) {
8 2 while (c = lex_peek_unichar(0), isXDIGIT(c)) {
8 2 while (c = lex_peek_unichar(0), isXDIGIT(c)) {
315 0 2 if (c != '}') {
320 4 0 } else if (isXDIGIT(c)) {
4 0 } else if (isXDIGIT(c)) {
323 4 0 if (isXDIGIT(c)) {
4 0 if (isXDIGIT(c)) {
339 0 6 if (c != '{') {
344 0 6 if (lex_bufutf8()) {
348 81 6 while ((c = lex_read_unichar(0)) != '}') {
349 0 81 if (c == -1) {
355 6 0 n_ptr = SvPV(name, n_len);
357 6 0 if (n_len >= 2 && n_ptr[0] == 'U' && n_ptr[1] == '+') {
2 4 if (n_len >= 2 && n_ptr[0] == 'U' && n_ptr[1] == '+') {
2 0 if (n_len >= 2 && n_ptr[0] == 'U' && n_ptr[1] == '+') {
366 2 0 if (x_len == 0 || x_len != n_len) {
0 2 if (x_len == 0 || x_len != n_len) {
378 4 0 if (
379 4 0 !(table = GvHV(PL_hintgv)) ||
380 3 1 !(PL_hints & HINT_LOCALIZE_HH) ||
381 0 3 !(cvp = hv_fetchs(table, "charnames", FALSE)) ||
382 0 0 !SvOK(*cvp)
0 0 !SvOK(*cvp)
391 4 0 if (
392 0 4 !(table = GvHV(PL_hintgv)) ||
399 4 0 if (
400 0 4 !(cvp = hv_fetchs(table, "charnames", FALSE)) ||
401 0 0 !SvOK(*cvp)
0 0 !SvOK(*cvp)
411 0 4 PUSHSTACKi(PERLSI_OVERLOAD);
415 0 4 PUSHMARK(SP);
416 0 4 EXTEND(SP, 1);
427 4 0 FREETMPS;
430 0 4 POPSTACK;
432 1 3 if (!SvOK(r)) {
1 0 if (!SvOK(r)) {
1 0 if (!SvOK(r)) {
447 8 7 if (c >= '0' && c <= '7') {
0 8 if (c >= '0' && c <= '7') {
450 0 0 if (c >= '0' && c <= '7') {
0 0 if (c >= '0' && c <= '7') {
454 0 0 if (c >= '0' && c <= '7') {
0 0 if (c >= '0' && c <= '7') {
468 12 63 if (SvCUR(sv) || !*gen_sentinel) {
0 12 if (SvCUR(sv) || !*gen_sentinel) {
476 47 28 if (gen->op_type == OP_CONST) {
478 5 23 } else if (gen->op_type != OP_CONCAT) {
494 25 0 if (c != '#') {
497 0 25 if (c == -1) {
506 24 1 c == '(' ? ')' :
507 23 1 c == '[' ? ']' :
508 18 5 c == '{' ? '}' :
509 16 2 c == '<' ? '>' :
519 9 16 *op_ptr = parse_qctail(aTHX_ &spec, delim_start == delim_stop ? NULL : &nesting);
528 15 0 if (c != '#') {
531 0 15 if (c == -1) {
540 8 7 c == '(' ? ')' :
541 7 1 c == '[' ? ']' :
542 4 3 c == '{' ? '}' :
543 4 0 c == '<' ? '>' :
560 63 0 while (c = lex_peek_unichar(0), c != -1 && isSPACE(c)) {
63 0 while (c = lex_peek_unichar(0), c != -1 && isSPACE(c)) {
17 46 while (c = lex_peek_unichar(0), c != -1 && isSPACE(c)) {
17 46 while (c = lex_peek_unichar(0), c != -1 && isSPACE(c)) {
563 15 31 if (c == delim_stop && nesting == 0) {
15 0 if (c == delim_stop && nesting == 0) {
567 27 4 cur = parse_qctail(aTHX_ &spec, delim_start == delim_stop ? NULL : &nesting);
571 13 2 if (*gen_sentinel) {
587 0 21 if (!strnEQ(PL_parser->bufptr, "<<", 2)) {
595 10 11 if (!(c == '\'' || c == '"')) {
0 10 if (!(c == '\'' || c == '"')) {
602 0 21 if (lex_bufutf8()) {
608 0 90 if (c == -1) {
610 0 0 croak("Can't find string terminator %s anywhere before EOF", qdelim == '"' ? "'\"'" : "\"'\"");
612 21 69 if (c == qdelim) {
620 21 0 if (fin) {
626 0 21 leftover = sv_2mortal(newSVpvn_utf8(PL_parser->bufptr, fin - PL_parser->bufptr, lex_bufutf8()));
634 10 11 FLAG_HASH_INTERPOLATE | (qdelim == '"' ? FLAG_BACKSLASH_ESCAPE : 0)
644 0 64 if (!(hints = GvHV(PL_hintgv))) {
647 3 61 if (!(psv = hv_fetch(hints, hk_ptr, hk_len, 0))) {
651 61 0 return SvTRUE(sv);
0 61 return SvTRUE(sv);
0 0 return SvTRUE(sv);
0 61 return SvTRUE(sv);
0 0 return SvTRUE(sv);
0 0 return SvTRUE(sv);
0 61 return SvTRUE(sv);
0 0 return SvTRUE(sv);
0 0 return SvTRUE(sv);
0 0 return SvTRUE(sv);
0 0 return SvTRUE(sv);
0 0 return SvTRUE(sv);
61 0 return SvTRUE(sv);
61 0 return SvTRUE(sv);
0 61 return SvTRUE(sv);
0 0 return SvTRUE(sv);
0 0 return SvTRUE(sv);
61 0 return SvTRUE(sv);
0 0 return SvTRUE(sv);
658 3994 7756 if (keyword_len == 2 && keyword_ptr[0] == 'q' && keyword_ptr[1] == 'c' && qc_enableds(HINTK_QC)) {
293 3701 if (keyword_len == 2 && keyword_ptr[0] == 'q' && keyword_ptr[1] == 'c' && qc_enableds(HINTK_QC)) {
28 265 if (keyword_len == 2 && keyword_ptr[0] == 'q' && keyword_ptr[1] == 'c' && qc_enableds(HINTK_QC)) {
25 3 if (keyword_len == 2 && keyword_ptr[0] == 'q' && keyword_ptr[1] == 'c' && qc_enableds(HINTK_QC)) {
663 1075 10650 } else if (keyword_len == 5 && memcmp(keyword_ptr, "qc_to", 5) == 0 && qc_enableds(HINTK_QC_TO)) {
21 1054 } else if (keyword_len == 5 && memcmp(keyword_ptr, "qc_to", 5) == 0 && qc_enableds(HINTK_QC_TO)) {
21 0 } else if (keyword_len == 5 && memcmp(keyword_ptr, "qc_to", 5) == 0 && qc_enableds(HINTK_QC_TO)) {
668 2424 9280 } else if (keyword_len == 3 && memcmp(keyword_ptr, "qcw", 3) == 0 && qc_enableds(HINTK_QCW)) {
15 2409 } else if (keyword_len == 3 && memcmp(keyword_ptr, "qcw", 3) == 0 && qc_enableds(HINTK_QCW)) {
15 0 } else if (keyword_len == 3 && memcmp(keyword_ptr, "qcw", 3) == 0 && qc_enableds(HINTK_QCW)) {