Branch Coverage

Base64.xs
Criterion Covered Total %
branch 196 258 75.9


line true false branch
111 330 0 str = SvPV(sv, rlen); /* SvPV(sv, len) gives warning for signed len */
115 278 52 if (items > 1 && SvOK(ST(1))) {
0 278 if (items > 1 && SvOK(ST(1))) {
0 0 if (items > 1 && SvOK(ST(1))) {
0 0 if (items > 1 && SvOK(ST(1))) {
116 278 0 eol = SvPV(ST(1), eollen);
124 329 1 if (rlen) {
130 329 1 RETVAL = newSV(rlen ? rlen : 1);
136 1662 330 for (chunk=0; len > 0; len -= 3, chunk++) {
137 46 1616 if (chunk == (MAX_LINE/4)) {
140 43 46 while (c < e)
145 1384 278 c2 = len > 1 ? *str++ : '\0';
148 1362 300 if (len > 2) {
152 22 278 } else if (len == 2) {
160 329 1 if (rlen) {
164 52 329 while (c < e)
169 1 329 if (had_utf8)
183 289 1 register unsigned char *str = (unsigned char*)SvPV(sv, len);
192 286 4 RETVAL = newSV(rlen ? rlen : 1);
197 381 12 while (str < end) {
201 1513 6 if (uc != INVALID)
204 285 1234 if (str == end) {
205 5 280 if (i < 4) {
206 2 3 if (i < 2) goto thats_it;
207 1 2 if (i == 2) c[2] = EQ;
212 1138 96 } while (i < 4);
214 378 1 if (c[0] == EQ || c[1] == EQ) {
377 1 if (c[0] == EQ || c[1] == EQ) {
221 262 115 if (c[2] == EQ)
225 12 103 if (c[3] == EQ)
254 0 63 if (had_utf8)
258 6 57 if (items > 1 && SvOK(ST(1))) {
0 6 if (items > 1 && SvOK(ST(1))) {
0 0 if (items > 1 && SvOK(ST(1))) {
0 0 if (items > 1 && SvOK(ST(1))) {
265 61 2 if (RETVAL) {
279 66 0 register unsigned char *str = (unsigned char*)SvPV(sv, len);
285 5269 27 while (str < end) {
287 63 5206 if (uc == INVALID)
289 39 5167 if (uc == EQ)
291 3858 1309 if (i++) {
293 1266 2592 if (i == 4)
334 5 43 if (items > 1 && SvOK(ST(1))) {
3 2 if (items > 1 && SvOK(ST(1))) {
3 0 if (items > 1 && SvOK(ST(1))) {
0 3 if (items > 1 && SvOK(ST(1))) {
335 2 0 eol = SvPV(ST(1), eol_len);
341 3 45 binary = (items > 2 && SvTRUE(ST(2)));
3 0 binary = (items > 2 && SvTRUE(ST(2)));
0 3 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
0 3 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
0 3 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
3 0 binary = (items > 2 && SvTRUE(ST(2)));
3 0 binary = (items > 2 && SvTRUE(ST(2)));
0 3 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
3 0 binary = (items > 2 && SvTRUE(ST(2)));
0 0 binary = (items > 2 && SvTRUE(ST(2)));
343 48 0 beg = SvPV(sv, sv_len);
355 3627 56 while (p < end && qp_isplain(*p)) {
12 3615 while (p < end && qp_isplain(*p)) {
3417 198 while (p < end && qp_isplain(*p)) {
3416 1 while (p < end && qp_isplain(*p)) {
3385 31 while (p < end && qp_isplain(*p)) {
358 230 56 if (p == end || *p == '\n') {
33 197 if (p == end || *p == '\n') {
360 66 53 while (p > p_beg && (*(p - 1) == '\t' || *(p - 1) == ' '))
11 55 while (p > p_beg && (*(p - 1) == '\t' || *(p - 1) == ' '))
19 36 while (p > p_beg && (*(p - 1) == '\t' || *(p - 1) == ' '))
365 62 224 if (p_len) {
367 61 1 if (eol_len) {
368 20 61 while (p_len > MAX_LINE - 1 - linelen) {
378 62 0 if (p_len) {
384 48 238 if (p == end) {
387 24 214 else if (*p == '\n' && eol_len && !binary) {
23 1 else if (*p == '\n' && eol_len && !binary) {
20 3 else if (*p == '\n' && eol_len && !binary) {
388 2 18 if (linelen == 1 && SvCUR(RETVAL) > eol_len + 1 && (SvEND(RETVAL)-eol_len)[-2] == '=') {
2 0 if (linelen == 1 && SvCUR(RETVAL) > eol_len + 1 && (SvEND(RETVAL)-eol_len)[-2] == '=') {
2 0 if (linelen == 1 && SvCUR(RETVAL) > eol_len + 1 && (SvEND(RETVAL)-eol_len)[-2] == '=') {
402 217 1 if (eol_len && linelen > MAX_LINE - 4 && !(linelen == MAX_LINE - 3 && p + 1 < end && p[1] == '\n' && !binary)) {
17 200 if (eol_len && linelen > MAX_LINE - 4 && !(linelen == MAX_LINE - 3 && p + 1 < end && p[1] == '\n' && !binary)) {
5 12 if (eol_len && linelen > MAX_LINE - 4 && !(linelen == MAX_LINE - 3 && p + 1 < end && p[1] == '\n' && !binary)) {
4 1 if (eol_len && linelen > MAX_LINE - 4 && !(linelen == MAX_LINE - 3 && p + 1 < end && p[1] == '\n' && !binary)) {
1 3 if (eol_len && linelen > MAX_LINE - 4 && !(linelen == MAX_LINE - 3 && p + 1 < end && p[1] == '\n' && !binary)) {
0 1 if (eol_len && linelen > MAX_LINE - 4 && !(linelen == MAX_LINE - 3 && p + 1 < end && p[1] == '\n' && !binary)) {
413 201 37 if (SvLEN(RETVAL) > 80 && SvLEN(RETVAL) - SvCUR(RETVAL) < 3) {
2 199 if (SvLEN(RETVAL) > 80 && SvLEN(RETVAL) - SvCUR(RETVAL) < 3) {
415 2 0 SvGROW(RETVAL, expected_len);
2 0 SvGROW(RETVAL, expected_len);
419 47 1 if (SvCUR(RETVAL) && eol_len && linelen) {
46 1 if (SvCUR(RETVAL) && eol_len && linelen) {
31 15 if (SvCUR(RETVAL) && eol_len && linelen) {
424 1 47 if (had_utf8)
438 52 0 char *str = SvPVbyte(sv, len);
444 51 1 RETVAL = newSV(len ? len : 1);
447 3201 52 while (str < end) {
448 3080 121 if (*str == ' ' || *str == '\t') {
4 3076 if (*str == ' ' || *str == '\t') {
449 116 9 if (!whitespace)
453 7 3069 else if (*str == '\r' && (str + 1) < end && str[1] == '\n') {
7 0 else if (*str == '\r' && (str + 1) < end && str[1] == '\n') {
7 0 else if (*str == '\r' && (str + 1) < end && str[1] == '\n') {
456 34 3035 else if (*str == '\n') {
461 110 2925 if (whitespace) {
462 113 110 while (whitespace < str) {
467 115 2920 if (*str == '=') {
468 88 27 if ((str + 2) < end && isXDIGIT(str[1]) && isXDIGIT(str[2])) {
54 34 if ((str + 2) < end && isXDIGIT(str[1]) && isXDIGIT(str[2])) {
54 0 if ((str + 2) < end && isXDIGIT(str[1]) && isXDIGIT(str[2])) {
479 76 0 while (p < end && (*p == ' ' || *p == '\t'))
10 66 while (p < end && (*p == ' ' || *p == '\t'))
5 61 while (p < end && (*p == ' ' || *p == '\t'))
481 61 0 if (p < end && *p == '\n')
56 5 if (p < end && *p == '\n')
483 5 0 else if ((p + 1) < end && *p == '\r' && *(p + 1) == '\n')
3 2 else if ((p + 1) < end && *p == '\r' && *(p + 1) == '\n')
3 0 else if ((p + 1) < end && *p == '\r' && *(p + 1) == '\n')
494 1 51 if (whitespace) {
495 2 1 while (whitespace < str) {