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

Re: [GSoC] [PATCH v5 1/1] t9811: Improve test coverage and clarity

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 9, 2025, 13:29 UTC
Message-ID
<xmqqa58ptqd9.fsf@gitster.g>
In-Reply-To
<CAOSofofyfDpFqFzApwMnmYdFb4nk8DS7WwWmYKLPbe+okOE=Tw@mail.gmail.com>
Anthony Wang <anthonywang513@gmail.com> writes:
Show 5 quoted lines
>> >     The tests grep tagnames they expect to exist from "git tag"
>>
>> s/tagnames/tag names/ perhaps?
>
> How does "t9811: be more precise to check importing of tags" sound?
Excellent.
Show 9 quoted lines
>> > > +             git tag &&
>> > > +             git show-ref --verify refs/tags/TAG_F1_1 &&
>> > > +             git show-ref --verify refs/tags/TAG_F1_2 &&
>> > > +             test_must_fail git show-ref --verify refs/tags/TAG_F1_ONLY &&
>>
>> Do we still need the standalone `git tag` invocation above?
>
> The original intent of the patch was to expose the exit code of
> `git tag`.

Is it? I somehow thought that "git tag" is not what is being tested by this script. Rather, it assumed that "git tag" works perfectly well, and validated what "git p4" left in the resulting repository based on that assumption, i.e. "git tag" works perfectly well to tell us what tags are in the repository.

It is true that "git tag" to list all available tags may fail, but then catching that is outside the scope of this script no? It is even more so, since now we do not even depend on the correct operation of "git tag" anymore to validate what "git p4" did---we now use "show-ref --verify" for that, so we do not even care if "git tag" segfaults in this part of the test, no?

Show 5 quoted lines
> However, because in this case the test itself does not correctly test
> for the intended behavior, we should modify because we are already
> touching this piece of code. Is this correct? Would it then be desired
> to check the rest of the tests in this file for further oversights and
> correct them as well, or would that be overstepping boundaries?

Just like any real world problems, there unfortunately is no bright red line between "yeah these are related enough and in the same spot and it is better to clean up while we are at it" and "that is way too much for this single topic" that can be described in a textbook. A rule of thumb I personally use is to put me in the shoes of an imaginary typical Git developer with moderate competence, who hasn't seen or worked on a particular part of the system being updated. If I can easily imagine that the developer can clearly see a need for clean up (in this case, "the part of the code only tests positive results and forgets about negative check") while fixing something else (in this case, "use of 'git tag' piped to 'grep' has at least two problems, loss of exit code and false match") and the additional effort would be smaller than 10-20 minutes, I'd say it would be worth doing and anything larger would be better to leave to another day, but a lot of ingredients in that statement are very much subjective (starting from "what's the average competence level we expect from our people?").

Previous: Anthony WangNext: Anthony Wang
Message 26 of 35 in “t9811: avoid using pipes”
  1. Anthony WangApr 5, 2025
  2. Patrick SteinhardtApr 7, 2025
  3. [GSoC] [PATCH v2 0/3] t9811: Improve test coverage and clarityAnthony Wang, Apr 7, 2025
  4. [GSoC] [PATCH v2 1/3] t9811: avoid using pipes to expose exit codesAnthony Wang, Apr 7, 2025
  5. Eric SunshineApr 7, 2025
  6. Junio C HamanoApr 7, 2025
  7. Anthony WangApr 7, 2025
  8. Junio C HamanoApr 8, 2025
  9. Anthony WangApr 8, 2025
  10. [GSoC] [PATCH v2 2/3] t9811: Remove the -q quiet mode from some instances of grepAnthony Wang, Apr 7, 2025
  11. Eric SunshineApr 7, 2025
  12. Junio C HamanoApr 7, 2025
  13. [GSoC] [PATCH v2 3/3] t9811: Change `grep` to `test_grep` for debug outputAnthony Wang, Apr 7, 2025
  14. [GSoC] [PATCH v3 0/3] t9811: Improve test coverage and clarityAnthony Wang, Apr 7, 2025
  15. [GSoC] [PATCH v3 1/3] t9811: avoid using pipes to expose exit codesAnthony Wang, Apr 7, 2025
  16. [GSoC] [PATCH v3 2/3] t9811: Remove the -q quiet mode from some instances of grepAnthony Wang, Apr 7, 2025
  17. [GSoC] [PATCH v3 3/3] t9811: Change `grep` to `test_grep` for debug outputAnthony Wang, Apr 7, 2025
  18. [GSoC] [PATCH v4 0/1] t9811: Improve test coverage and clarityAnthony Wang, Apr 8, 2025
  19. [GSoC] [PATCH v4 1/1] Remove the pipe following the `git tag`, ensuring the exit code is not hidden. Add explicit verification to check for expected and unexpected tags, increasing specificity and future-proofing a portion of the test.Anthony Wang, Apr 8, 2025
  20. Karthik NayakApr 8, 2025
  21. [GSoC] [PATCH v5 0/1] t9811: Improve test coverage and clarityAnthony Wang, Apr 8, 2025
  22. [GSoC] [PATCH v5 1/1] t9811: Improve test coverage and clarityAnthony Wang, Apr 8, 2025
  23. Junio C HamanoApr 8, 2025
  24. Eric SunshineApr 8, 2025
  25. Anthony WangApr 9, 2025
  26. Junio C HamanoApr 9, 2025
  27. [GSoC] [PATCH v6 0/1] t9811: be more precise to check importing of tagsAnthony Wang, Apr 12, 2025
  28. [GSoC] [PATCH v6 1/1] t9811: be more precise to check importing of tagsAnthony Wang, Apr 12, 2025
  29. Junio C HamanoApr 15, 2025
  30. Anthony WangApr 16, 2025
  31. [GSoC] [PATCH v7 0/1] t9811: be more precise to check importing of tagsAnthony Wang, Apr 16, 2025
  32. [GSoC] [PATCH v7 1/1] t9811: be more precise to check importing of tagsAnthony Wang, Apr 16, 2025
  33. Junio C HamanoApr 18, 2025
  34. Junio C HamanoApr 18, 2025
  35. Eric SunshineApr 18, 2025

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.