Branch Coverage

XS.xs
Criterion Covered Total %
branch 118 222 53.1


line true false branch
26 0 480 return AvFILL(av) + 1;
46 0 150 if(!target)
63 2 103 if(!SvPOK(p))
65 0 103 if(SvUTF8(p))
69 103 0 const char *in = SvPVbyte(p, len);
77 0 103 if(*end != '\0') {
85 97 6 if(len >= 3) { // && *(end - 1) == '\x0A' && *(end - 2) == '\x0D') {
86 477 31 while(*ptr && ptr < end) {
477 0 while(*ptr && ptr < end) {
93 270 276 while(*ptr >= '0' && *ptr <= '9') {
270 0 while(*ptr >= '0' && *ptr <= '9') {
97 20 256 if(ptr + 2 > end) {
100 256 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 256 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
106 253 3 if(n > 0) {
121 1 1 while(*ptr >= '0' && *ptr <= '9') {
1 0 while(*ptr >= '0' && *ptr <= '9') {
125 0 1 if(ptr + 2 > end) {
128 1 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 1 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
134 1 0 if(n > 0) {
149 1 1 while(*ptr >= '0' && *ptr <= '9') {
1 0 while(*ptr >= '0' && *ptr <= '9') {
153 0 1 if(ptr + 2 > end) {
159 1 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 1 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
164 0 1 if(n > 0) {
180 1 62 if(*ptr == '-') {
184 63 63 while(*ptr >= '0' && *ptr <= '9' && ptr < end) {
63 0 while(*ptr >= '0' && *ptr <= '9' && ptr < end) {
63 0 while(*ptr >= '0' && *ptr <= '9' && ptr < end) {
188 1 62 if(negative) {
191 6 57 if(ptr + 2 > end) {
194 57 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 57 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
199 52 5 if(ps) {
209 0 5 if(terminator == NULL) {
224 5 0 if (e) {
228 0 5 if (! end_ptr) {
237 0 5 if(ptr + 2 > end) {
240 5 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 5 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
244 0 5 if(ps) {
256 0 0 if(ptr[0] == '-' && ptr[1] == '1') {
0 0 if(ptr[0] == '-' && ptr[1] == '1') {
257 0 0 if(ptr + 4 > end) {
264 0 0 while(*ptr >= '0' && *ptr <= '9' && ptr < end) {
0 0 while(*ptr >= '0' && *ptr <= '9' && ptr < end) {
0 0 while(*ptr >= '0' && *ptr <= '9' && ptr < end) {
268 0 0 if(ptr + n + 4 > end) {
271 0 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
278 0 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
282 0 0 if(ps) {
293 240 20 while(*ptr && (ptr[0] != '\x0D' && ptr[1] != '\x0A' && ptr < end)) {
131 109 while(*ptr && (ptr[0] != '\x0D' && ptr[1] != '\x0A' && ptr < end)) {
131 0 while(*ptr && (ptr[0] != '\x0D' && ptr[1] != '\x0A' && ptr < end)) {
131 0 while(*ptr && (ptr[0] != '\x0D' && ptr[1] != '\x0A' && ptr < end)) {
296 30 99 if(ptr + 2 > end) {
299 99 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 99 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
305 98 1 if(ps) {
315 12 0 while(*ptr && (ptr[0] != '\x0D' && ptr[1] != '\x0A' && ptr < end)) {
10 2 while(*ptr && (ptr[0] != '\x0D' && ptr[1] != '\x0A' && ptr < end)) {
10 0 while(*ptr && (ptr[0] != '\x0D' && ptr[1] != '\x0A' && ptr < end)) {
10 0 while(*ptr && (ptr[0] != '\x0D' && ptr[1] != '\x0A' && ptr < end)) {
318 0 2 if(ptr + 2 > end) {
321 2 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 2 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
332 2 0 ptr = SvPVbyte(p, len);
334 2 0 if(hv_exists((HV *) rv, "error", 5)) {
336 2 0 if(cv_ptr) {
341 0 2 PUSHMARK(SP);
342 0 2 EXTEND(SP, 1);
346 2 0 FREETMPS;
362 0 0 if(ptr + 2 > end) {
365 0 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
0 0 if(ptr[0] != '\x0D' || ptr[1] != '\x0A') {
369 0 0 if(ps) {
385 418 21 while(ps && av_count(ps->data) >= ps->expected) {
18 400 while(ps && av_count(ps->data) >= ps->expected) {
389 10 8 if(ps) {
399 1 0 if(hv_exists((HV *) rv, "pubsub", 6)) {
401 1 0 if(cv_ptr) {
406 0 1 PUSHMARK(SP);
408 1 0 if(count) {
409 1 0 EXTEND(SP, count);
0 1 EXTEND(SP, count);
410 1 1 for(int i = 0; i < count; ++i) {
416 1 0 FREETMPS;
433 0 0 if(hv_exists((HV *) rv, "attribute", 9)) {
435 0 0 if(cv_ptr) {
440 0 0 PUSHMARK(SP);
441 0 0 EXTEND(SP, 1);
445 0 0 FREETMPS;
477 19 402 if(extracted_item) {
480 19 0 ptr = SvPVbyte(p, len);
484 19 0 if (GIMME_V == G_SCALAR && av_count(results) > 0) {
10 9 if (GIMME_V == G_SCALAR && av_count(results) > 0) {
10 0 if (GIMME_V == G_SCALAR && av_count(results) > 0) {
493 240 103 while(ps) {
500 103 0 if (GIMME_V == G_LIST) {
51 52 if (GIMME_V == G_LIST) {
502 8 43 if(count) {
503 8 0 EXTEND(SP, count);
0 8 EXTEND(SP, count);
504 8 8 for(int i = 0; i < count; ++i) {
508 52 0 } else if (GIMME_V == G_SCALAR) {
52 0 } else if (GIMME_V == G_SCALAR) {
509 0 52 mXPUSHs(extracted);