Branch Coverage

c-lib/s-bsdiff.c
Criterion Covered Total %
branch 199 286 69.5


line true false branch
141 8 2228 y = lt0 ? -x : x;
153 8 2228 if(lt0)
165 0 324 if(ctrlp->c_need_dump){
171 8 316 if(ctrlp->c_ccpp == NULL || --ctrlp->c_no == 0){
0 8 if(ctrlp->c_ccpp == NULL || --ctrlp->c_no == 0){
176 0 316 if(ccp == NULL){
181 316 0 if(ctrlp->c_ccpp == NULL)
199 0 324 if(dcp->dc_ctrl_len > ctrlp->c_len_max){
219 316 0 if(dcp->dc_mem.mc_alloc != NULL){
227 288 28 !dcp->dc_text_mode &&
229 288 0 dcp->dc_magic_window <= 0)
238 0 316 if(dcp->dc_before_len >= s_BSDIPA_OFF_MAX -sizeof(struct s_bsdipa_header) -sizeof(struct s_bsdipa_ctrl_triple))
240 0 316 if(dcp->dc_before_len + 1 >= SIZE_MAX / sizeof(saidx_t))
243 0 316 if(dcp->dc_after_len >= s_BSDIPA_OFF_MAX)
245 0 316 if(dcp->dc_after_len + 1 >= SIZE_MAX / sizeof(saidx_t))
252 0 316 if(dcp->dc_extra_dat == NULL)
258 0 316 if((dcp->dc_after_len | dcp->dc_before_len) == 0){
261 0 316 }else if(dcp->dc_before_len == 0){
266 28 288 else if(dcp->dc_text_mode)
272 0 316 if(rv == s_BSDIPA_OK){
288 316 316 while((ccp = dcp->dc_ctrl) != NULL){
293 316 0 if(dcp->dc_extra_dat != NULL)
305 119332824 3577272 for(i = 0; i < aftlen; ++i)
306 100249416 19083408 if(aftdat[i] != befdat[i])
318 51913344 928997880 if(en - st < 2){
322 0 51913344 if(x > y){
333 100873920 828123960 if(memcmp(aftdat + Ip[x], befdat, (size_t)y) < 0)
366 0 288 if(Ip == NULL)
372 48 240 if(aftlen > 4096 * 25){
374 0 48 if(divsufsort(aftdat, Ip, aftlen, dcp))
380 0 240 if(a_bsdiff_qsufsort(Ip, aftdat, aftlen, dcp))
389 0 288 if(aftlen == 0)
392 288408 288 while(scan < beflen){
395 51913344 288 for(i = (scan += len); scan < beflen; ++scan){
399 52850112 51913344 for(; i < scan + len; ++i)
400 26089944 26760168 if(i + lastoff < aftlen && aftdat[i + lastoff] == befdat[i])
1225008 24864936 if(i + lastoff < aftlen && aftdat[i + lastoff] == befdat[i])
403 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)
406 24864936 26760288 if(scan + lastoff < aftlen && aftdat[scan + lastoff] == befdat[scan])
0 24864936 if(scan + lastoff < aftlen && aftdat[scan + lastoff] == befdat[scan])
410 288240 168 if(len != aftscore || scan == beflen) Jaftlen0_bypass:{
288120 120 if(len != aftscore || scan == beflen) Jaftlen0_bypass:{
413 0 288 if(aftlen == 0){
421 26090112 120 for(i = 0; lastscan + i < scan && aftpos + i < aftlen;){
26089944 168 for(i = 0; lastscan + i < scan && aftpos + i < aftlen;){
422 1225008 24864936 if(aftdat[aftpos + i] == befdat[lastscan + i])
425 1225008 24864936 if((s * 2) - i > (Sf * 2) - diffl){
432 0 288 if(scan < beflen){
436 0 0 for(i = 1; scan >= lastscan + i && pos >= i; ++i){
0 0 for(i = 1; scan >= lastscan + i && pos >= i; ++i){
437 0 0 if(aftdat[pos - i] == befdat[scan - i])
439 0 0 if((s * 2) - i > (Sb * 2) - lenb){
446 0 288 if(lastscan + diffl > scan - lenb){
451 0 0 for(i = 0; i < overlap; ++i){
453 0 0 ] == aftdat[aftpos + diffl - overlap + i])
455 0 0 if(befdat[scan - lenb + i] == aftdat[pos - lenb + i])
457 0 0 if(s > Ss){
467 1225008 288 for(i = 0; i < diffl; ++i){
480 51625224 288 for(i = 0; i < extral; ++i)
488 168 120 if(diffl != 0 || extral != 0){
168 0 if(diffl != 0 || extral != 0){
490 0 288 if(rv != s_BSDIPA_OK)
501 288 0 if(ctrl.c_need_dump){
512 288 0 if(Ip != NULL)
526 291264 292224 if(len<16) {
527 3009576 291264 for(k=start;k
529 15610152 3009576 for(i=1;k+i
530 13437816 2172336 if(V[I[k+i]+h]
534 13441104 2169048 if(V[I[k+i]+h]==x) {
539 3012216 3009576 for(i=0;i
540 3008016 1560 if(j==1) I[k]=-1;
547 65414160 292224 for(i=start;i
548 12716712 52697448 if(V[I[i]+h]
549 39663744 25750416 if(V[I[i]+h]==x) kk++;
554 54143160 292224 while(i
555 12716712 41426448 if(V[I[i]+h]
557 32564736 8861712 } else if(V[I[i]+h]==x) {
566 7138008 292224 while(jj+j
567 7099008 39000 if(V[I[jj+j]+h]==x) {
575 289032 3192 if(jj>start) a_bsdiff_split(I,V,start,jj-start,h);
577 39663744 292224 for(i=0;i
578 281928 10296 if(jj==kk-1) I[jj]=-1;
580 281208 11016 if(start+len>kk) a_bsdiff_split(I,V,kk,start+len-kk,h);
591 0 240 if(V == NULL)
595 3289992 240 for(i=0;i
596 61200 240 for(i=1;i<256;i++) buckets[i]+=buckets[i-1];
597 61200 240 for(i=255;i>0;i--) buckets[i]=buckets[i-1];
600 3289992 240 for(i=0;i
602 3289992 240 for(i=0;i
604 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;
607 2712 240 for(h=1;I[0]!=-(aftlen+1);h+=h) {
609 3314448 2712 for(i=0;i
610 3301200 13248 if(I[i]<0) {
614 10800 2448 if(len) I[i-len]=-len;
621 408 2304 if(len) I[i-len]=-len;
624 3290232 240 for(i=0;i
703 28 0 if(xlen > 0){
714 72048 28 while(xlen > 0){
717 72040 8 if(end != NULL){
731 272 71776 if(alcp->lc_no == sizeof(alcp->lc_la) / sizeof(alcp->lc_la[0])) Jalc_go:{
736 0 300 if(lcp == NULL)
740 28 272 if(alcp_head == NULL){
752 72020 28 if(alp != NULL)
758 0 72048 if(hptf == NULL)
759 0 0 a_CSHASH_HASH(alp->l_hash, beg, alp->l_len);
0 0 a_CSHASH_HASH(alp->l_hash, beg, alp->l_len);
765 28 0 if(cnt <= 0xAD9 * 5)
767 0 0 else if(cnt <= 0x36E9 * 5)
769 0 0 else if((size_t)cnt >= (((((size_t)UINT32_MAX < (size_t)s_BSDIPA_OFF_MAX)
778 0 28 if(alhpp == NULL)
782 72048 28 while(alp != NULL){
816 72040 28 for(alp = NULL; xlen > 0;){
822 72040 0 if(end != NULL){
835 72040 0 if(alhpp != NULL){
838 0 72040 if(hptf == NULL)
839 0 0 a_CSHASH_HASH(h, beg, ll);
0 0 a_CSHASH_HASH(h, beg, ll);
844 72012 28 if(alp != NULL){
850 72012 0 if(lp != NULL && h == lp->l_hash && ll == (s_bsdipa_off_t)lp->l_len &&
72004 8 if(lp != NULL && h == lp->l_hash && ll == (s_bsdipa_off_t)lp->l_len &&
72004 0 if(lp != NULL && h == lp->l_hash && ll == (s_bsdipa_off_t)lp->l_len &&
851 72004 0 !memcmp(beg, lp->l_dat, (size_t)ll)){
852 0 72004 if(diffl >= s_BSDIPA_OFF_MAX - ll - 1)
866 36 0 if(alp != NULL){
867 36 0 do if(h == alp->l_hash && ll == (s_bsdipa_off_t)alp->l_len &&
36 0 do if(h == alp->l_hash && ll == (s_bsdipa_off_t)alp->l_len &&
868 36 0 !memcmp(beg, alp->l_dat, ll))
870 0 0 while((alp = alp->l_hashnxt) != NULL);
872 36 0 if(alp != NULL){
878 28 8 if((diffl | extral) != 0 || (!ctrl.c_need_dump && p != aabspos)){
28 0 if((diffl | extral) != 0 || (!ctrl.c_need_dump && p != aabspos)){
0 28 if((diffl | extral) != 0 || (!ctrl.c_need_dump && p != aabspos)){
880 0 8 if(rv != s_BSDIPA_OK)
886 8 28 if(p != aabspos){
909 0 0 if(extral >= s_BSDIPA_OFF_MAX - ll - 1)
919 28 0 if((diffl | extral) != 0){
921 0 28 if(rv != s_BSDIPA_OK)
925 28 0 if(ctrl.c_need_dump){
937 28 0 if(alhpp != NULL)
940 300 28 for(alcp = alcp_head; alcp != NULL;){