Branch Coverage

Config.xs
Criterion Covered Total %
branch 89 120 74.1


line true false branch
47 6779 49 for ( max = ptr + len ; ptr < max; ++ptr ) {
48 1 6778 if ( ! *ptr ) continue; /* skip \0 so we can parse binaries strings */
49 36 6742 if ( *ptr == line_feed ) continue; /* ignore \r */
54 522 6220 if ( found_comment ) {
55 36 486 if ( *ptr == eol ) found_comment = 0;
59 2098 4122 if ( (need_field == 0 && found_sep) || (need_field && found_sep == need_field) ) {
1984 114 if ( (need_field == 0 && found_sep) || (need_field && found_sep == need_field) ) {
4122 1984 if ( (need_field == 0 && found_sep) || (need_field && found_sep == need_field) ) {
101 4021 if ( (need_field == 0 && found_sep) || (need_field && found_sep == need_field) ) {
60 198 17 if ( *ptr == ' ' || *ptr == '\t' ) continue;
0 198 if ( *ptr == ' ' || *ptr == '\t' ) continue;
61 100 98 if (need_field == 0) found_sep = 0;
68 331 5872 if ( found_eol ) { /* starting a line */
70 331 0 if ( *ptr == ' ' || *ptr == '\t' || *ptr == line_feed )
331 0 if ( *ptr == ' ' || *ptr == '\t' || *ptr == line_feed )
0 331 if ( *ptr == ' ' || *ptr == '\t' || *ptr == line_feed )
72 36 295 if ( *ptr == comment ) {
86 990 5177 if ( *ptr == sep ) {
88 730 260 if (need_field) ++found_sep;
89 234 756 if ( !end_key ) {
91 100 134 if ( !need_field) found_sep = 1;
94 730 260 if ( need_field && found_sep == need_field + 2 ) {
80 650 if ( need_field && found_sep == need_field + 2 ) {
99 277 4900 } else if ( *ptr == eol ) { /* only handle the line once we reach a \n */
126 142 135 __PARSE_STRING_LINE_FIELD
62 80 __PARSE_STRING_LINE_FIELD
197 0 __PARSE_STRING_LINE_FIELD
277 0 __PARSE_STRING_LINE_FIELD
0 277 __PARSE_STRING_LINE_FIELD
216 61 __PARSE_STRING_LINE_FIELD
187 36 __PARSE_STRING_LINE_FIELD
164 23 __PARSE_STRING_LINE_FIELD
6 158 __PARSE_STRING_LINE_FIELD
1 157 __PARSE_STRING_LINE_FIELD
0 157 __PARSE_STRING_LINE_FIELD
180 36 __PARSE_STRING_LINE_FIELD
157 23 __PARSE_STRING_LINE_FIELD
134 18 31 if ( start_key ) {
135 0 18 __PARSE_STRING_LINE_FIELD
0 0 __PARSE_STRING_LINE_FIELD
18 0 __PARSE_STRING_LINE_FIELD
18 0 __PARSE_STRING_LINE_FIELD
0 18 __PARSE_STRING_LINE_FIELD
18 0 __PARSE_STRING_LINE_FIELD
18 0 __PARSE_STRING_LINE_FIELD
18 0 __PARSE_STRING_LINE_FIELD
0 18 __PARSE_STRING_LINE_FIELD
0 18 __PARSE_STRING_LINE_FIELD
0 18 __PARSE_STRING_LINE_FIELD
18 0 __PARSE_STRING_LINE_FIELD
18 0 __PARSE_STRING_LINE_FIELD
147 50 0 if ( sv && SvPOK(sv) ) {
50 0 if ( sv && SvPOK(sv) ) {
149 1 49 if ( items > 2 )
151 25 24 if ( items == 2 ) {
153 0 25 if ( !SvOK(sv_field) || !SvIOK(sv_field) )
0 0 if ( !SvOK(sv_field) || !SvIOK(sv_field) )
0 0 if ( !SvOK(sv_field) || !SvIOK(sv_field) )
0 25 if ( !SvOK(sv_field) || !SvIOK(sv_field) )
155 25 0 field = SvIV(sv_field);