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

Re: [PATCH] t3501: use test_path_is_* functions

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Mar 30, 2022, 22:11 UTC
Message-ID
<220331.86bkxnt77a.gmgdl@evledraar.gmail.com>
In-Reply-To
<pull.1195.git.1648676585765.gitgitgadget@gmail.com>
On Wed, Mar 30 2022, Labnan via GitGitGadget wrote:
Show 6 quoted lines
> From: Labnann <khalid.masum.92@gmail.com>
>
> Two test -f are present in t3501. They can be replaced with appropriate
> helper function: test_path_is_file
>
> Signed-off-by: Labnann <khalid.masum.92@gmail.com>

Thanks for contributing to git, this is a much needed area of improvement.

Show 12 quoted lines
> diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
> index 8617efaaf1e..45492a7ed09 100755
> --- a/t/t3501-revert-cherry-pick.sh
> +++ b/t/t3501-revert-cherry-pick.sh
> @@ -67,7 +67,7 @@ test_expect_success 'cherry-pick after renaming branch' '
>  	git checkout rename2 &&
>  	git cherry-pick added &&
>  	test $(git rev-parse HEAD^) = $(git rev-parse rename2) &&
> -	test -f opos &&
> +	test_path_is_file opos &&
>  	grep "Add extra line at the end" opos &&
>  	git reflog -1 | grep cherry-pick

While perfect shouldn't be the enemy of the good, I think it would also be a very nice use of review bandwidth to end up with some good end-state here if possible.

I.e. a pre-existing issue here is:
 * We are hiding the exit code of git due to using "test", see
   c419562860e (checkout tests: don't ignore "git <cmd>" exit code,
   2022-03-07) for one example of how to fixthat.
 * The "test -f" here is really redundant to begin with, because we'd
   get an error from "grep" if opos didn't exist.
 * Ditto ignoring the exit code of "git reflog -1".
Show 7 quoted lines
> @@ -78,7 +78,7 @@ test_expect_success 'revert after renaming branch' '
>  	git checkout rename1 &&
>  	git revert added &&
>  	test $(git rev-parse HEAD^) = $(git rev-parse rename1) &&
> -	test -f spoo &&
> +	test_path_is_file spoo &&
>  	! grep "Add extra line at the end" spoo &&

Same issues here, except that the "test -f" aka "test_path_is_file" isn't redundant, as the grep is inverted.

It seems to me (other issues aside) that what this test actually wants
to express is something like this:
	
	diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
	index 8617efaaf1e..00096b75376 100755
	--- a/t/t3501-revert-cherry-pick.sh
	+++ b/t/t3501-revert-cherry-pick.sh
	@@ -78,8 +78,9 @@ test_expect_success 'revert after renaming branch' '
	 	git checkout rename1 &&
	 	git revert added &&
	 	test $(git rev-parse HEAD^) = $(git rev-parse rename1) &&
	-	test -f spoo &&
	-	! grep "Add extra line at the end" spoo &&
	+	git rev-parse initial:oops >expect &&
	+	git rev-parse HEAD:spoo >actual &&
	+	test_cmp expect actual &&
	 	git reflog -1 | grep revert
	 
	 '

I.e. we did a revert of a file we had so that it's the same as in "initial", but now it's at a different path, which we can exhaustively do by checking the blob OIDs.

>  	git reflog -1 | grep revert
>  
>
> base-commit: 805e0a68082a217f0112db9ee86a022227a9c81b
Previous: Labnan via GitGitGadgetNext: Labnann
Message 2 of 16 in “t3501: use test_path_is_* functions”
  1. t3501: use test_path_is_* functionsLabnan via GitGitGadget, Mar 30, 2022
  2. Ævar Arnfjörð BjarmasonMar 30, 2022
  3. 0/3 [GSoC] t3501: remove test and test -fLabnann, Mar 31, 2022
  4. 1/3 t3501: use test_path_is_* functionsLabnann, Mar 31, 2022
  5. 2/3 t3501: don't ignore "git <cmd>" exit codeLabnann, Mar 31, 2022
  6. Junio C HamanoApr 1, 2022
  7. 3/3 t3501: test cherry-pick revert with oidsLabnann, Mar 31, 2022
  8. Junio C HamanoApr 1, 2022
  9. 0/1 [GSoC] t3501: remove redundant file checking and stop ignoring git <cmd> exit codeLabnann, Apr 2, 2022
  10. 1/1 t3501: remove redundant file check and stop ignoring git <cmd> exit codeLabnann, Apr 2, 2022
  11. Junio C HamanoApr 4, 2022
  12. 0/1 [GSoC] t3501: remove test -f and stop ignoring git <cmd> exit codeKhalid Masum, Apr 5, 2022
  13. 1/1 t3501: remove test -f and stop ignoring git <cmd> exit codeKhalid Masum, Apr 5, 2022
  14. 0/1 [GSoC] t3501: remove test -f and stop ignoring git <cmd> exit codeKhalid Masum, Apr 5, 2022
  15. 1/1 t3501: remove test -f and stop ignoring git <cmd> exit codeKhalid Masum, Apr 5, 2022
  16. t3501: remove test -f and stop ignoring git <cmd> exit codeLabnan via GitGitGadget, Apr 22, 2022

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.