Branch Coverage

ByteString.xs
Criterion Covered Total %
branch 143 384 37.2


line true false branch
26 0 40 if( visited_p >= visited_capacity ){
28 0 0 Renew(visited, visited_capacity, SV*);
35 182 26 for(unsigned char * str_end=str+len; str!=str_end; ++str){
36 0 182 if( *str < 0x20 ){
37 0 0 switch( *str ){
50 3 0 if( str!=str_begin && *(str-1)=='<' )
1 2 if( str!=str_begin && *(str-1)=='<' )
60 0 0 if( ch>9 )
66 0 0 if( ch<='9' )
68 0 0 if( ch<='Z' )
76 182 26 for(unsigned char * str_end=str+len; str!=str_end; ++str){
77 0 182 if( *str < 0x20 ){
110 3 0 if( str!=str_begin && *(str-1)=='<' )
1 2 if( str!=str_begin && *(str-1)=='<' )
136 9 1 if( str_end - str >= 3 && str[0]==(unsigned char)'\xEF' && str[1]==(unsigned char)'\xBB' && str[2]==(unsigned char)'\xBF' )
0 9 if( str_end - str >= 3 && str[0]==(unsigned char)'\xEF' && str[1]==(unsigned char)'\xBB' && str[2]==(unsigned char)'\xBF' )
0 0 if( str_end - str >= 3 && str[0]==(unsigned char)'\xEF' && str[1]==(unsigned char)'\xBB' && str[2]==(unsigned char)'\xBF' )
0 0 if( str_end - str >= 3 && str[0]==(unsigned char)'\xEF' && str[1]==(unsigned char)'\xBB' && str[2]==(unsigned char)'\xBF' )
142 53 8 while( str!=str_end && isSPACE(*str) )
0 53 while( str!=str_end && isSPACE(*str) )
148 2 0 return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}';
2 0 return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}';
2 0 return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}';
0 2 return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}';
0 0 return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}';
152 2 0 return !isSPACE(ch) && ch!=':';
2 0 return !isSPACE(ch) && ch!=':';
156 0 3 if( str==str_end )
161 3 0 if( *str=='+' || *str=='-' ){
0 3 if( *str=='+' || *str=='-' ){
166 3 0 if( str!=str_end && isDIGIT(*str) )
1 2 if( str!=str_end && isDIGIT(*str) )
168 4 0 while( str!=str_end && isDIGIT(*str) ){
1 3 while( str!=str_end && isDIGIT(*str) ){
172 3 0 if( str!=str_end && *str=='.' ){
0 3 if( str!=str_end && *str=='.' ){
176 3 0 if( str!=str_end && isDIGIT(*str) )
0 3 if( str!=str_end && isDIGIT(*str) )
178 3 0 while( str!=str_end && isDIGIT(*str) ){
0 3 while( str!=str_end && isDIGIT(*str) ){
182 2 1 if( !has_digit )
185 1 0 if( str!=str_end && (*str=='e' || *str=='E') ){
1 0 if( str!=str_end && (*str=='e' || *str=='E') ){
0 1 if( str!=str_end && (*str=='e' || *str=='E') ){
188 0 0 if( str!=str_end && (*str=='+' || *str=='-') ){
0 0 if( str!=str_end && (*str=='+' || *str=='-') ){
0 0 if( str!=str_end && (*str=='+' || *str=='-') ){
192 0 0 while( str!=str_end && isDIGIT(*str) ){
0 0 while( str!=str_end && isDIGIT(*str) ){
202 2 1 if( len<=0 ){
207 1 0 if( !*out ){
211 0 0 else if( *out_capacity_end - *out < len + 1 ){
220 1 0 if( *str=='+' || *str=='-' ){
0 1 if( *str=='+' || *str=='-' ){
225 1 1 while( len-- )
231 0 4 if( str==str_end )
233 1 3 if( *str=='"' || *str=='\'' ){
0 1 if( *str=='"' || *str=='\'' ){
238 0 28 if( str==str_end )
240 3 25 if( *str==delimiter )
242 0 25 if( *str=='\\' ){
248 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
250 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
252 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
254 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
257 0 0 if( d <= 0x7f )
259 0 0 else if( d <= 0x7ff )
261 0 0 else if( d <= 0xffff )
272 0 0 if( *(str-1)==delimiter )
286 1 1 while( str!=str_end && is_key(*str) ){
1 0 while( str!=str_end && is_key(*str) ){
295 0 7 if( str==str_end )
297 0 7 if( *str=='"' || *str=='\'' ){
0 0 if( *str=='"' || *str=='\'' ){
302 1 88 if( str==str_end )
304 6 82 if( *str==delimiter )
306 4 78 if( *str=='\\' ){
312 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
314 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
316 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
318 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
321 0 0 if( d <= 0x7f )
323 0 0 else if( d <= 0x7ff )
325 0 0 else if( d <= 0xffff )
336 1 1 if( *(str-1)==delimiter )
354 0 4 if( len==-1 ){
359 4 0 if( !*out ){
363 0 0 else if( *out_capacity_end - *out < len + 1 ){
372 1 3 if( *str=='"' || *str=='\'' ){
0 1 if( *str=='"' || *str=='\'' ){
376 3 25 if( *str==delimiter )
378 0 25 if( *str=='\\' ){
384 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
386 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
388 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
390 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
393 0 0 if( d <= 0x7f )
395 0 0 else if( d <= 0x7ff ){
399 0 0 else if( d <= 0xffff ){
435 0 0 if( *(str-1)!=delimiter )
445 1 1 while( str!=str_end && is_key(*str) )
1 0 while( str!=str_end && is_key(*str) )
453 1 6 if( len==-1 ){
458 6 0 if( !*out ){
462 0 0 else if( *out_capacity_end - *out < len + 1 ){
474 6 75 if( *str==delimiter )
476 4 71 if( *str=='\\' ){
482 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
484 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
486 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
488 0 0 if( str!=str_end && isXDIGIT(*str) )
0 0 if( str!=str_end && isXDIGIT(*str) )
491 0 0 if( d <= 0x7f )
493 0 0 else if( d <= 0x7ff ){
497 0 0 else if( d <= 0xffff ){
533 1 1 if( *(str-1)!=delimiter )
546 0 23 if( str==str_end )
556 0 10 if( str==str_end )
558 0 10 if( *str == ']' )
563 3 7 if( elem==NULL )
568 0 7 if( str==str_end )
570 4 3 if( *str == ']' )
572 3 0 if( *str==',' )
584 0 4 if( str==str_end ){
585 0 0 if( key_buffer )
589 0 4 if( *str=='}' ){
590 0 0 if( key_buffer )
595 0 4 if( !key_end ){
596 0 0 if( key_buffer )
603 3 1 if( *str==':' )
605 1 3 if( elem==NULL ){
612 0 3 if( str==str_end ){
616 3 0 if( *str=='}' ){
620 0 0 if( *str==',' )
632 1 6 if( !value_end )
643 5 0 if( str_end-str==4 || (str_end-str>4 && !is_identity(str[4])) ){
2 3 if( str_end-str==4 || (str_end-str>4 && !is_identity(str[4])) ){
2 0 if( str_end-str==4 || (str_end-str>4 && !is_identity(str[4])) ){
644 2 0 if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){
0 2 if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){
0 0 if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){
0 0 if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){
0 0 if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){
0 0 if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){
0 0 if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){
0 0 if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){
648 2 0 if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){
2 0 if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){
2 0 if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){
2 0 if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){
2 0 if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){
2 0 if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){
2 0 if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){
2 0 if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){
653 3 0 if( str_end-str==5 || (str_end-str>5 && !is_identity(str[5])) ){
0 3 if( str_end-str==5 || (str_end-str>5 && !is_identity(str[5])) ){
0 0 if( str_end-str==5 || (str_end-str>5 && !is_identity(str[5])) ){
654 0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
0 0 if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){
662 1 2 if( value_end ){
717 9 0 str = (unsigned char*) SvPV(json, len);
720 3 6 if( str_end != str_adv ){
721 1 2 if( warn2die )
729 1 5 else if( out==NULL ){
730 0 1 if( warn2die )
746 1 0 str = (unsigned char*) SvPV(json, len);
749 0 1 if( str_end != str_adv ){
753 0 1 else if( out==NULL )
760 0 1 Newx(visited, visited_capacity, SV*);