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

Re: [GSoC][PATCH v2 3/3] t3600: use helpers to replace test -d/f/e/s <path>

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 8, 2019, 05:38 UTC
Message-ID
<xmqq7edancws.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<CAPig+cT_YT-1=ymAYiTpjgRQEe8906Y6yyBU=XuP_wbw+ixxiQ@mail.gmail.com>
Eric Sunshine <sunshine@sunshineco.com> writes:
Show 20 quoted lines
> This patch, due to its length and repetitive nature, falls under the
> category of being tedious to review, which makes it all the more
> likely that a reviewer will overlook a problem.
>
> And, it's not always obvious at a glance that a change is correct. For
> instance, taking a look at the final patch band:
>
>     - ! test -d submod &&
>     - ! test -d submod/subsubmod/.git &&
>     + test_path_is_missing submod &&
>     + test_path_is_missing submod/subsubmod/.git &&
>
> Superficially, the transformation seems straightforward. However, that
> doesn't mean it maintains fidelity with the original or even means the
> same thing. To review this change properly requires understanding the
> original intent of "! test -d".
>
> ... , and
> many (volunteer) reviewers simply don't have the time to delve that
> deeply to make a proper judgment.

True. The microproject was supposed to be a gentle introduction to and a practice session of the process of modifying, committing, submitting, and responding to reviews. Learning the usual Git contributor workflow, without spending too much community resources like reviewers' time (as opposed to the real "here is my itch; let's improve the system, and please help me doing so").

In any case, I have spent some time with the patch and I think the changes are generaly OK; some (like using "test_path_is_missing foo" instead of "test ! -f foo" after "git rm foo" to ensure the path no longer exists) are improvements.

An unrelated tangent, but what do you think of this patch? In the context of testing "git rm", if foo is a dangling symbolic link, "git rm foo && test_path_is_missing foo" would need something like this to work correctly, I would think.

 t/test-lib-functions.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index 681c41ba32..dfe0d4aff4 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -603,7 +603,7 @@ test_file_not_empty () {
 }
 
 test_path_is_missing () {
-	if test -e "$1"
+	if test -e "$1" || test -L "$1"
 	then
 		echo "Path exists:"
 		ls -ld "$1"
Previous: Rohit AshiwalNext: Eric Sunshine
Message 34 of 37 in “Use helper functions in test script”
  1. Rohit AshiwalMar 3, 2019
  2. 1/3 test functions: Add new function `test_file_not_empty`Rohit Ashiwal, Mar 3, 2019
  3. Junio C HamanoMar 3, 2019
  4. Rohit Ashiwal, Mar 3, 2019
  5. Junio C HamanoMar 3, 2019
  6. Clearing logicRohit Ashiwal, Mar 3, 2019
  7. Thomas GummererMar 3, 2019
  8. 2/3 t3600: refactor code according to contemporary guidelinesRohit Ashiwal, Mar 3, 2019
  9. Junio C HamanoMar 3, 2019
  10. Rohit AshiwalMar 3, 2019
  11. 3/3 t3600: use helper functions from test-lib-functionsRohit Ashiwal, Mar 3, 2019
  12. Junio C HamanoMar 3, 2019
  13. [GSoC][PATCH v2 0/3] Use helper functions in test scriptRohit Ashiwal, Mar 3, 2019
  14. [GSoC][PATCH v2 1/3] test functions: add function `test_file_not_empty`Rohit Ashiwal, Mar 3, 2019
  15. Junio C HamanoMar 4, 2019
  16. [GSoC][PATCH v2 2/3] t3600: restructure code according to contemporary guidelinesRohit Ashiwal, Mar 3, 2019
  17. Junio C HamanoMar 4, 2019
  18. [GSoC][PATCH v2 3/3] t3600: use helpers to replace test -d/f/e/s <path>Rohit Ashiwal, Mar 3, 2019
  19. [GSoC][PATCH v3 0/3] Use helper functions in test scriptRohit Ashiwal, Mar 4, 2019
  20. [GSoC][PATCH v3 1/3] test functions: add function `test_file_not_empty`Rohit Ashiwal, Mar 4, 2019
  21. Eric SunshineMar 5, 2019
  22. Junio C HamanoMar 5, 2019
  23. Rohit AshiwalMar 5, 2019
  24. [GSoC][PATCH v3 2/3] t3600: modernize styleRohit Ashiwal, Mar 4, 2019
  25. Eric SunshineMar 5, 2019
  26. Junio C HamanoMar 5, 2019
  27. [GSoC][PATCH v3 3/3] t3600: use helpers to replace test -d/f/e/s <path>Rohit Ashiwal, Mar 4, 2019
  28. Eric SunshineMar 5, 2019
  29. Rohit AshiwalMar 5, 2019
  30. Eric SunshineMar 5, 2019
  31. Rohit AshiwalMar 5, 2019
  32. Eric SunshineMar 5, 2019
  33. Rohit AshiwalMar 5, 2019
  34. Junio C HamanoMar 8, 2019
  35. Eric SunshineMar 8, 2019
  36. Junio C HamanoMar 11, 2019
  37. Eric SunshineMar 5, 2019

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.