Subject: Re: [PATCH 03/11] t6002: make test "set -e" clean

From: Junio C Hamano <[email-masked]>
Date: Wed, 25 Mar 2026 08:45:54 -0700

Patrick Steinhardt <[email-masked]> writes:

> I've got this alternate fix, which I find a bit cleaner overall. With
> `$((...))` we don't have to worry about the return value of expr.
>
> Patrick

Yup.  I agree that arithmetic expansion is much easier to grok.

> diff --git a/t/t6002-rev-list-bisect.sh b/t/t6002-rev-list-bisect.sh
> index daa009c9a1..f2de40b5ed 100755
> --- a/t/t6002-rev-list-bisect.sh
> +++ b/t/t6002-rev-list-bisect.sh
> @@ -27,13 +27,16 @@ test_bisection_diff()
>  	# 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'
> +	_bisect_err=$(($_list_size - $_bisection_size * 2))
> +	if test "$_bisect_err" -lt 0
> +	then
> +		_bisect_err=$((0 - $_bisect_err))
> +	fi
> +	_bisect_err=$(($_bisect_err / 2)) ; # floor
> +
> +	test_expect_success "bisection diff $_bisect_option $_head $* <= $_max_diff" '
> +		test $_bisect_err -le $_max_diff
> +	'
>  }
>  
>  date >path0