X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=t%2Ft6002-rev-list-bisect.sh;h=693de9b32dea04140d58ba98d0db07ac0e724a6b;hb=162f41292167a800432fc6bbacfcd9f93a90b0c8;hp=99d86ae5aeb131a97fe3cf40545d7a3bd03f9590;hpb=148519b7dc5a45ee73a85d39e4647099976be3b8;p=git.git diff --git a/t/t6002-rev-list-bisect.sh b/t/t6002-rev-list-bisect.sh index 99d86ae5..693de9b3 100755 --- a/t/t6002-rev-list-bisect.sh +++ b/t/t6002-rev-list-bisect.sh @@ -7,20 +7,6 @@ test_description='Tests git-rev-list --bisect functionality' . ./test-lib.sh . ../t6000lib.sh # t6xxx specific functions -bc_expr() -{ -bc <=0) { return (x); } else { return (-x); } -} -define floor(x) { - save=scale; scale=0; result=x/1; scale=save; return (result); -} -$* -EOF -} - # usage: test_bisection max-diff bisect-option head ^prune... # # e.g. test_bisection 1 --bisect l1 ^l0 @@ -35,12 +21,23 @@ test_bisection_diff() _head=$1 shift 1 _bisection_size=$(git-rev-list $_bisection "$@" | wc -l) - [ -n "$_list_size" -a -n "$_bisection_size" ] || error "test_bisection_diff failed" - test_expect_success "bisection diff $_bisect_option $_head $* <= $_max_diff" "[ $(bc_expr "floor(abs($_list_size/2)-$_bisection_size)") -le $_max_diff ]" + [ -n "$_list_size" -a -n "$_bisection_size" ] || + error "test_bisection_diff failed" + + # Test if bisection size is close to half of list size within + # tolerance. + # + _bisect_err=`expr $_list_size - $_bisection_size \* 2` + test "$_bisect_err" -lt 0 && _bisect_err=`expr 0 - $_bisect_err` + _bisect_err=`expr $_bisect_err / 2` ; # floor + + test_expect_success \ + "bisection diff $_bisect_option $_head $* <= $_max_diff" \ + 'test $_bisect_err -le $_max_diff' } date >path0 -git-update-cache --add path0 +git-update-index --add path0 save_tag tree git-write-tree on_committer_date "1971-08-16 00:00:00" hide_error save_tag root unique_commit root tree on_committer_date "1971-08-16 00:00:01" save_tag l0 unique_commit l0 tree -p root @@ -61,7 +58,7 @@ on_committer_date "1971-08-16 00:00:15" save_tag a4 unique_commit a4 tree -p a3 on_committer_date "1971-08-16 00:00:16" save_tag l3 unique_commit l3 tree -p a4 on_committer_date "1971-08-16 00:00:17" save_tag l4 unique_commit l4 tree -p l3 on_committer_date "1971-08-16 00:00:18" save_tag l5 unique_commit l5 tree -p l4 -tag l5 > .git/HEAD +git-update-ref HEAD $(tag l5) # E