Branch Coverage

c-lib/s-bsdiff.c
Criterion Covered Total %
branch 141 192 73.4


line true false branch
112 119332824 3577272 for(i = 0; i < aftlen; ++i)
113 100249416 19083408 if(aftdat[i] != befdat[i])
125 51913344 928997880 if(en - st < 2){
129 0 51913344 if(x > y){
140 100873920 828123960 if(memcmp(aftdat + Ip[x], befdat, (size_t)y) < 0)
155 0 2016 y = lt0 ? -x : x;
167 0 2016 if(lt0)
184 288 0 if(dcp->dc_mem.mc_alloc != NULL){
190 288 0 if(dcp->dc_magic_window <= 0)
199 0 288 if(dcp->dc_before_len >= s_BSDIPA_OFF_MAX -sizeof(struct s_bsdipa_header) -sizeof(struct s_bsdipa_ctrl_triple))
201 0 288 if(dcp->dc_before_len + 1 >= SIZE_MAX / sizeof(saidx_t))
206 0 288 if(dcp->dc_after_len >= s_BSDIPA_OFF_MAX)
208 0 288 if(dcp->dc_after_len + 1 >= SIZE_MAX / sizeof(saidx_t))
217 0 288 if(dcp->dc_extra_dat == NULL)
224 0 288 if(Ip == NULL)
228 0 288 if(aftlen == 0 && beflen == 0)
0 0 if(aftlen == 0 && beflen == 0)
237 288 0 if(aftlen != 0 && beflen != 0){
288 0 if(aftlen != 0 && beflen != 0){
240 48 240 if(aftlen > 4096l * 25){
242 0 48 if(divsufsort(aftdat, Ip, aftlen, dcp))
247 0 240 if(a_bsdiff_qsufsort(Ip, aftdat, aftlen, dcp))
260 0 288 if(aftlen == 0)
263 288408 288 while(scan < beflen){
266 51913344 288 for(i = (scan += len); scan < beflen; ++scan){
270 52850112 51913344 for(; i < scan + len; ++i)
271 26089944 26760168 if(i + lastoff < aftlen && aftdat[i + lastoff] == befdat[i])
1225008 24864936 if(i + lastoff < aftlen && aftdat[i + lastoff] == befdat[i])
274 41184696 10728648 if((len == aftscore && len != 0) || len > aftscore + dcp->dc_magic_window)
40896576 288120 if((len == aftscore && len != 0) || len > aftscore + dcp->dc_magic_window)
51625224 0 if((len == aftscore && len != 0) || len > aftscore + dcp->dc_magic_window)
277 24864936 26760288 if(scan + lastoff < aftlen && aftdat[scan + lastoff] == befdat[scan])
0 24864936 if(scan + lastoff < aftlen && aftdat[scan + lastoff] == befdat[scan])
281 288240 168 if(len != aftscore || scan == beflen) Jaftlen0_bypass:{
288120 120 if(len != aftscore || scan == beflen) Jaftlen0_bypass:{
284 0 288 if(aftlen == 0){
292 26090112 120 for(i = 0; lastscan + i < scan && lastpos + i < aftlen;){
26089944 168 for(i = 0; lastscan + i < scan && lastpos + i < aftlen;){
293 1225008 24864936 if(aftdat[lastpos + i] == befdat[lastscan + i])
296 1225008 24864936 if((s * 2) - i > (Sf * 2) - lenf){
303 0 288 if(scan < beflen){
307 0 0 for(i = 1; scan >= lastscan + i && pos >= i; ++i){
0 0 for(i = 1; scan >= lastscan + i && pos >= i; ++i){
308 0 0 if(aftdat[pos - i] == befdat[scan - i])
310 0 0 if((s * 2) - i > (Sb * 2) - lenb){
317 0 288 if(lastscan + lenf > scan - lenb){
322 0 0 for(i = 0; i < overlap; ++i){
324 0 0 ] == aftdat[lastpos + lenf - overlap + i])
326 0 0 if(befdat[scan - lenb + i] == aftdat[pos - lenb + i])
328 0 0 if(s > Ss){
338 1225008 288 for(i = 0; i < lenf; ++i){
350 51625224 288 for(i = 0; i < j; ++i)
356 168 120 if(lenf != 0 || j != 0){
168 0 if(lenf != 0 || j != 0){
357 0 288 if(need_dump){
363 0 288 if(ccpp == NULL || --ctrlno == 0){
0 0 if(ccpp == NULL || --ctrlno == 0){
369 0 288 if(ccp == NULL)
371 288 0 if(ccpp == NULL)
387 0 288 if(dcp->dc_ctrl_len > ctrl_len_max){
400 288 0 if(need_dump){
429 288 288 while((ccp = dcp->dc_ctrl) != NULL){
434 288 0 if(dcp->dc_extra_dat != NULL)
446 291264 292224 if(len<16) {
447 3009576 291264 for(k=start;k
449 15610152 3009576 for(i=1;k+i
450 13437816 2172336 if(V[I[k+i]+h]
454 13441104 2169048 if(V[I[k+i]+h]==x) {
459 3012216 3009576 for(i=0;i
460 3008016 1560 if(j==1) I[k]=-1;
467 65414160 292224 for(i=start;i
468 12716712 52697448 if(V[I[i]+h]
469 39663744 25750416 if(V[I[i]+h]==x) kk++;
474 54143160 292224 while(i
475 12716712 41426448 if(V[I[i]+h]
477 32564736 8861712 } else if(V[I[i]+h]==x) {
486 7138008 292224 while(jj+j
487 7099008 39000 if(V[I[jj+j]+h]==x) {
495 289032 3192 if(jj>start) a_bsdiff_split(I,V,start,jj-start,h);
497 39663744 292224 for(i=0;i
498 281928 10296 if(jj==kk-1) I[jj]=-1;
500 281208 11016 if(start+len>kk) a_bsdiff_split(I,V,kk,start+len-kk,h);
511 0 240 if(V == NULL)
515 3289992 240 for(i=0;i
516 61200 240 for(i=1;i<256;i++) buckets[i]+=buckets[i-1];
517 61200 240 for(i=255;i>0;i--) buckets[i]=buckets[i-1];
520 3289992 240 for(i=0;i
522 3289992 240 for(i=0;i
524 48 61152 for(i=1;i<256;i++) if(buckets[i]==buckets[i-1]+1) I[buckets[i]]=-1;
61200 240 for(i=1;i<256;i++) if(buckets[i]==buckets[i-1]+1) I[buckets[i]]=-1;
527 2712 240 for(h=1;I[0]!=-(aftlen+1);h+=h) {
529 3314448 2712 for(i=0;i
530 3301200 13248 if(I[i]<0) {
534 10800 2448 if(len) I[i-len]=-len;
541 408 2304 if(len) I[i-len]=-len;
544 3290232 240 for(i=0;i