Branch Coverage

ucs2_utf8.c
Criterion Covered Total %
branch 93 284 32.7


line true false branch
27 0 541 if( sv_str==&PL_sv_undef )
31 0 541 if( SvGMAGICAL(sv_str) )
35 0 541 if( !SvOK(sv_str) )
44 541 0 SV_Buf_init(&result,len*3/2+4);
0 541 SV_Buf_init(&result,len*3/2+4);
46 0 541 if( len&1 )
51 541 541 for(; src
54 0 541 if( ucs2<0x80 )
56 0 0 SV_Buf_append_ch(&result,(UJ_UINT8)ucs2);
0 0 SV_Buf_append_ch(&result,(UJ_UINT8)ucs2);
0 0 SV_Buf_append_ch(&result,(UJ_UINT8)ucs2);
57 4 537 }else if( ucs2<0x800 )
61 0 4 SV_Buf_append_mem(&result, buf, 2);
0 0 SV_Buf_append_mem(&result, buf, 2);
0 0 SV_Buf_append_mem(&result, buf, 2);
62 516 21 }else if( !(0xd800 <= ucs2 && ucs2 <= 0xdfff) )
516 0 }else if( !(0xd800 <= ucs2 && ucs2 <= 0xdfff) )
67 0 537 SV_Buf_append_mem(&result, buf, 3);
0 0 SV_Buf_append_mem(&result, buf, 3);
0 0 SV_Buf_append_mem(&result, buf, 3);
70 0 0 if( src+2
92 0 0 SV_Buf_append_ch(&result,'?');
0 0 SV_Buf_append_ch(&result,'?');
0 0 SV_Buf_append_ch(&result,'?');
98 0 0 SV_Buf_append_ch(&result,'?');
0 0 SV_Buf_append_ch(&result,'?');
0 0 SV_Buf_append_ch(&result,'?');
121 0 35 if( sv_str==&PL_sv_undef )
125 12 23 if( SvGMAGICAL(sv_str) )
129 0 35 if( !SvOK(sv_str) )
138 35 0 SV_Buf_init(&result,len*2);
0 35 SV_Buf_init(&result,len*2);
140 35 35 while( src
143 1 34 if( *src<=0x7f )
145 1 0 SV_Buf_append_ch2(&result,htons(*src));
1 0 SV_Buf_append_ch2(&result,htons(*src));
0 1 SV_Buf_append_ch2(&result,htons(*src));
149 34 0 if( 0xc0<=*src && *src<=0xdf )
1 33 if( 0xc0<=*src && *src<=0xdf )
154 1 0 if( src+1>=src_end ||
155 1 0 src[1]<0x80 || 0xbf
0 1 src[1]<0x80 || 0xbf
157 0 0 SV_Buf_append_ch2(&result,htons(*src));
0 0 SV_Buf_append_ch2(&result,htons(*src));
0 0 SV_Buf_append_ch2(&result,htons(*src));
165 0 1 if( ucs_min<=ucs && ucs<=ucs_max )
0 0 if( ucs_min<=ucs && ucs<=ucs_max )
169 0 1 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
174 33 0 }else if( 0xe0<=*src && *src<=0xef )
30 3 }else if( 0xe0<=*src && *src<=0xef )
179 30 0 if( src+2>=src_end ||
180 30 0 src[1]<0x80 || 0xbf
30 0 src[1]<0x80 || 0xbf
181 30 0 src[2]<0x80 || 0xbf
0 30 src[2]<0x80 || 0xbf
183 0 0 SV_Buf_append_ch2(&result,htons(*src));
0 0 SV_Buf_append_ch2(&result,htons(*src));
0 0 SV_Buf_append_ch2(&result,htons(*src));
191 29 1 if( ucs_min<=ucs && ucs<=ucs_max )
29 0 if( ucs_min<=ucs && ucs<=ucs_max )
195 0 1 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
199 12 17 if( ucs<0xD800 || ucs>0xDBFF )
0 12 if( ucs<0xD800 || ucs>0xDBFF )
203 0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
208 3 0 }else if( 0xf0<=*src && *src<=0xf7 )
1 2 }else if( 0xf0<=*src && *src<=0xf7 )
213 1 0 if( src+3>=src_end ||
214 1 0 src[1]<0x80 || 0xbf
1 0 src[1]<0x80 || 0xbf
215 1 0 src[2]<0x80 || 0xbf
1 0 src[2]<0x80 || 0xbf
216 1 0 src[3]<0x80 || 0xbf
0 1 src[3]<0x80 || 0xbf
218 0 0 SV_Buf_append_ch2(&result,htons(*src));
0 0 SV_Buf_append_ch2(&result,htons(*src));
0 0 SV_Buf_append_ch2(&result,htons(*src));
227 0 1 if( ucs_min<=ucs && ucs<=ucs_max )
0 0 if( ucs_min<=ucs && ucs<=ucs_max )
231 0 1 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
244 0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
250 2 0 }else if( 0xf8<=*src && *src<=0xfb )
1 1 }else if( 0xf8<=*src && *src<=0xfb )
253 0 1 if( src+utf8_len<=src_end )
257 0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
262 1 0 if( 0x80<=src[1] && src[1]<=0xbf && 0x80<=src[2] && src[2]<=0xbf
1 0 if( 0x80<=src[1] && src[1]<=0xbf && 0x80<=src[2] && src[2]<=0xbf
1 0 if( 0x80<=src[1] && src[1]<=0xbf && 0x80<=src[2] && src[2]<=0xbf
1 0 if( 0x80<=src[1] && src[1]<=0xbf && 0x80<=src[2] && src[2]<=0xbf
263 1 0 && 0x80<=src[3] && src[3]<=0xbf && 0x80<=src[4] && src[4]<=0xbf )
1 0 && 0x80<=src[3] && src[3]<=0xbf && 0x80<=src[4] && src[4]<=0xbf )
1 0 && 0x80<=src[3] && src[3]<=0xbf && 0x80<=src[4] && src[4]<=0xbf )
1 0 && 0x80<=src[3] && src[3]<=0xbf && 0x80<=src[4] && src[4]<=0xbf )
267 0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
274 0 1 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
276 1 0 }else if( 0xfc<=*src && *src<=0xfd )
1 0 }else if( 0xfc<=*src && *src<=0xfd )
279 0 1 if( src+utf8_len<=src_end )
283 0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
288 1 0 if( 0x80<=src[1] && src[1]<=0xbf && 0x80<=src[2] && src[2]<=0xbf
1 0 if( 0x80<=src[1] && src[1]<=0xbf && 0x80<=src[2] && src[2]<=0xbf
1 0 if( 0x80<=src[1] && src[1]<=0xbf && 0x80<=src[2] && src[2]<=0xbf
1 0 if( 0x80<=src[1] && src[1]<=0xbf && 0x80<=src[2] && src[2]<=0xbf
289 1 0 && 0x80<=src[3] && src[3]<=0xbf && 0x80<=src[4] && src[4]<=0xbf
1 0 && 0x80<=src[3] && src[3]<=0xbf && 0x80<=src[4] && src[4]<=0xbf
1 0 && 0x80<=src[3] && src[3]<=0xbf && 0x80<=src[4] && src[4]<=0xbf
1 0 && 0x80<=src[3] && src[3]<=0xbf && 0x80<=src[4] && src[4]<=0xbf
290 1 0 && 0x80<=src[5] && src[5]<=0xbf )
1 0 && 0x80<=src[5] && src[5]<=0xbf )
294 0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
301 0 1 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
305 0 0 SV_Buf_append_ch2(&result,htons(*src));
0 0 SV_Buf_append_ch2(&result,htons(*src));
0 0 SV_Buf_append_ch2(&result,htons(*src));
310 0 29 if( ucs & ~0xFFFF )
312 0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
0 0 SV_Buf_append_ch2(&result,htons('?'));
315 0 29 SV_Buf_append_ch2(&result,htons(ucs));
0 0 SV_Buf_append_ch2(&result,htons(ucs));
0 0 SV_Buf_append_ch2(&result,htons(ucs));