git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [GSOC][PATCH 1/1] t3701: Avoid suppression of exit status of git

From
Andrei Rybak <rybak.a.v@gmail.com>
Date
Mar 26, 2023, 20:14 UTC
Message-ID
<be2f23ec-4b3c-eb9f-fc2d-fecdf76604e1@gmail.com>
In-Reply-To
<20230326173147.39626-2-edwinfernando734@gmail.com>
Hello, Edwin.

In subject line "t3701: Avoid suppression of exit status of git" -- the first word after a colon shouldn't be capitalized. By the way, similar existing commits call it:

   don't lose "git" exit codes
and
   preserve "git" exit codes
On 26/03/2023 19:31, Edwin Fernando wrote:
> Pipes and command substitution in bash suppress the exit codes of the

Bash is not the only Shell used for running Git's test suite, so referring to it like this in the commit message might not be a good idea.

See also similar commit 9fdc79ecba ("tests: don't lose misc "git" exit codes", 2023-02-06) for inspiration in writing the commit message.

Show 20 quoted lines
> first executed command. In the test scripts errors when running git
> should be exposed. Remove all such suppressions of git by writing
> output to files, chaining commands with &&, or other means.
> 
> Signed-off-by: Edwin Fernando <edwinfernando734@gmail.com>
> ---
>   t/t3701-add-interactive.sh | 25 ++++++++++++++++---------
>   1 file changed, 16 insertions(+), 9 deletions(-)
> 
> diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
> index 3a99837d9b..80446b311d 100755
> --- a/t/t3701-add-interactive.sh
> +++ b/t/t3701-add-interactive.sh
> @@ -292,8 +292,10 @@ test_expect_success FILEMODE 'patch does not affect mode' '
>   	echo content >>file &&
>   	chmod +x file &&
>   	printf "n\\ny\\n" | git add -p &&
> -	git show :file | grep content &&
> -	git diff file | grep "new mode"
> +	git show :file > show_file &&

Code style here and in all output redirections below: lose the space between redirection and the path, like so:

   git show :file >show_file
Also, the suffix "_file" is unnecessary.  Just
   git show :file >show
or
   git show :file >out
or
   git show :file >actual
might be better.
Show 32 quoted lines
> +	grep content show_file &&
> +	git diff file > diff_file &&
> +	grep "new mode" diff_file
>   '
>   
>   test_expect_success FILEMODE 'stage mode but not hunk' '
> @@ -301,8 +303,10 @@ test_expect_success FILEMODE 'stage mode but not hunk' '
>   	echo content >>file &&
>   	chmod +x file &&
>   	printf "y\\nn\\n" | git add -p &&
> -	git diff --cached file | grep "new mode" &&
> -	git diff          file | grep "+content"
> +	git diff --cached file > diff_file &&
> +	grep "new mode" diff_file &&
> +	git diff file > diff_file &&
> +	grep "+content" diff_file
>   '
>   
>   
> @@ -311,9 +315,12 @@ test_expect_success FILEMODE 'stage mode and hunk' '
>   	echo content >>file &&
>   	chmod +x file &&
>   	printf "y\\ny\\n" | git add -p &&
> -	git diff --cached file | grep "new mode" &&
> -	git diff --cached file | grep "+content" &&
> -	test -z "$(git diff file)"
> +	git diff --cached file > diff_file &&
> +	grep "new mode" diff_file &&
> +	git diff --cached file diff_file &&
> +	grep "+content" diff_file &&
> +	git diff file > diff_file &&
> +	test -z $(cat diff_file)

Function test_stdout_line_count can be used here instead of "test -z". test_stdout_line_count would produce a more helpful error message in case of test failure.

Show 14 quoted lines
>   '
>   
>   # end of tests disabled when filemode is not usable
> @@ -970,8 +977,8 @@ test_expect_success 'handle submodules' '
>   
>   	force_color git -C for-submodules add -p dirty-head >output 2>&1 <y &&
>   	git -C for-submodules ls-files --stage dirty-head >actual &&
> -	rev="$(git -C for-submodules/dirty-head rev-parse HEAD)" &&
> -	grep "$rev" actual
> +	git -C for-submodules/dirty-head rev-parse HEAD > rev &&
> +	grep -f rev actual
>   '
>   
>   test_expect_success 'set up pathological context' '
Previous: Edwin FernandoNext: Eric Sunshine
Message 3 of 13 in “Avoid suppression of git's exit code in tests”
  1. Edwin FernandoMar 26, 2023
  2. [GSOC][PATCH 1/1] t3701: Avoid suppression of exit status of gitEdwin Fernando, Mar 26, 2023
  3. Andrei RybakMar 26, 2023
  4. Eric SunshineMar 27, 2023
  5. [GSOC][PATCH v2] t3701: don't lose "git" exit codes in test scriptsEdwin Fernando, Apr 1, 2023
  6. Andrei RybakApr 2, 2023
  7. [GSOC][PATCH v3] t3701: don't lose "git" exit codes in test scriptsEdwin Fernando, Apr 2, 2023
  8. Eric SunshineApr 2, 2023
  9. [GSOC][PATCH v4] t3701: don't lose "git" exit codes in test scriptsEdwin Fernando, Apr 2, 2023
  10. Eric SunshineApr 3, 2023
  11. Edwin FernandoApr 3, 2023
  12. Edwin FernandoApr 3, 2023
  13. Eric SunshineApr 3, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.