Subject: Re: [PATCH v2 1/3] t0006: add support for approxidate test date adjustment

From: Junio C Hamano <[email-masked]>
Date: Wed, 13 May 2026 01:34:50 +0900

Tuomas Ahola <[email-masked]> writes:

>  check_approxidate() {
> +	old_date=$GIT_TEST_DATE_NOW
> +	GIT_TEST_DATE_NOW=$(($old_date${4:-+0}*60*60)); export GIT_TEST_DATE_NOW
> +	caption=$1
> +	if [ ! -z $4 ]; then
> +		caption="$caption; offset $4h"
> +	fi

As you are not doing the test-date-now adjustment when $4 is not
given, wouldn't it be a lot easier to read if you did something like

	old_date=$GIT_TEST_DATE_NOW
	if test -n "$4"
	then
		# the convention for $4 is a bit weird in that it 
		# comes with its own +/- operator in front.
		GIT_TEST_DATE_NOW=$(( $old_date $4 * 60 * 60 ))
		caption="$1; offset $4h"
	else
        	caption=$1
	fi

instead?  Other two minor points are

 - Documentation/SubmittingPatches prefers an explicit "test" over
   "[ ... ]", and have "then", "else", etc. on their own lines.

 - As you never "unset" GIT_TEST_DATE_NOW, you do not have to keep
   exporting it.  It is not like there are two variables (one for
   shell, the other for environment) and every time you set the
   shell one you need to export to reflect the value to the
   environment one.  Rather, a single "export" marks a shell
   variable and every time it changes value, it is updated in the
   environment as well.

>  	echo "$1 -> $2 +0000" >expect
> -	test_expect_${3:-success} "parse approxidate ($1)" "
> +	test_expect_${3:-success} "parse approxidate ($caption)" "
>  	test-tool date approxidate '$1' >actual &&
>  	test_cmp expect actual
>  	"
> +	GIT_TEST_DATE_NOW=$old_date; export GIT_TEST_DATE_NOW
>  }
>  
>  check_approxidate now '2009-08-30 19:20:00'
> @@ -182,6 +189,8 @@ check_approxidate 'noon today' '2009-08-30 12:00:00'
>  check_approxidate 'noon yesterday' '2009-08-29 12:00:00'
>  check_approxidate 'January 5th noon pm' '2009-01-05 12:00:00'
>  check_approxidate '10am noon' '2009-08-29 12:00:00'
> +check_approxidate 'January 5th yesterday' '2009-01-29 19:20:00'
> +check_approxidate 'January 5th yesterday' '2008-12-31 19:20:00' success +48
>  
>  check_approxidate 'last tuesday' '2009-08-25 19:20:00'
>  check_approxidate 'July 5th' '2009-07-05 19:20:00'