From: Anthony Wang <anthonywang513@gmail.com>
To: Eric Sunshine <sunshine@sunshineco.com>
Cc: Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, ps@pks.im, karthik.188@gmail.com,
shejialuo@gmail.com, christian.couder@gmail.com,
shyamthakkar001@gmail.com,
Anthony Wang <anthonywang03@icloud.com>
Subject: Re: [GSoC] [PATCH v5 1/1] t9811: Improve test coverage and clarity
Date: Wed, 9 Apr 2025 10:15:53 +0200 [thread overview]
Message-ID: <CAOSofofyfDpFqFzApwMnmYdFb4nk8DS7WwWmYKLPbe+okOE=Tw@mail.gmail.com> (raw)
In-Reply-To: <CAPig+cSo2hPpA0DOn7Tr3pcYfN6jxyyo+n0Y0QetvKvNVoLqbA@mail.gmail.com>
On Tue, Apr 8, 2025 at 11:28 PM Eric Sunshine <sunshine@sunshineco.com> wrote:
>
> On Tue, Apr 8, 2025 at 5:21 PM Junio C Hamano <gitster@pobox.com> wrote:
> > t9811: be more precise to check tag creation
> >
> > 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?
The tags are created in the p4 repository, and what we care about is if
`git p4 sync --import-labels` correctly imports the labels from the p4
repository. Specifying tags instead of tag indicates that there are
multiple tags, which is the whole purpose of the test.
>
> > output, which can be fooled by false positive if an unexpected
> > tag whose name has the expected tagname as its substring. Fix
> > them by using "git show-ref --verify" instead.
> >
> > While we are at it, add a negative test to verify that a tag
> > that is involved in earlier tests that is not supposed to appear
> > in the result does indeed not appear in the resulting
> > repository.
> >
> > Incidentally, this would also correct the problem the original
> > had, which lost the exit status of "git tag" that was placed
> > upstream of a pipe.
> >
> > or something, perhaps?
>
> Yes, better and much more illuminating.
I see, that message does communicate the intentions of the changes
much better than I did. I will expand the message and write something
along the lines of what you have recommended.
>
> > > - git tag | grep TAG_F1 &&
> > > - git tag | grep -q TAG_F1_1 &&
> > > - git tag | grep -q TAG_F1_2 &&
> > > + 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`. By keeping the standalone `git tag` we are able to pick up
the exit code if there are any issues, such as if `git p4 sync
--import-labels` somehow breaks `git tag`. I believe this is the intent
of the standalone `git tag` in the section below, and as such, I added
it to the top section in order to test the `git tag` functionality, as we
removed the other `git tag` instances. However, I can understand
if it is unnecessary, and I will remove it.
>
> > > @@ -208,7 +209,7 @@ test_expect_success 'use git config to enable import/export of tags' '
> > > git p4 submit --verbose &&
> > > git tag &&
> > > - git tag | grep TAG_F1_1
> > > + git show-ref --verify refs/tags/TAG_F1_1 &&
>
> Similarly, it's not clear why there is a standalone `git tag`
> invocation here. Does it buy us anything or am I missing something
> obvious? The originating commit[*] doesn't explain its purpose.
>
Again, as we have removed the other `git tag` instances, it might
still have value to test the result of running the `git tag` command.
> [*] e71f6a53e2 (git p4: add test for tag import/export enabled via
> config, 2012-05-11)
Thank you very much for the valuable feedback, it has been very
eye opening to see how you two approach patching code like this.
I wanted to bump one of my previous questions, as I am very
curious about what the best practice is here:
To this point, I have a question about when to modify code when making
patches. My understanding is that we should try to only modify the code
necessary to fix the bug, and not modify other parts of the code.
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?
next prev parent reply other threads:[~2025-04-09 8:16 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-05 10:37 [GSoC] [PATCH 1/1] t9811: avoid using pipes Anthony Wang
2025-04-07 7:51 ` Patrick Steinhardt
2025-04-07 11:18 ` [GSoC] [PATCH v2 0/3] t9811: Improve test coverage and clarity Anthony Wang
2025-04-07 11:18 ` [GSoC] [PATCH v2 1/3] t9811: avoid using pipes to expose exit codes Anthony Wang
2025-04-07 16:17 ` Eric Sunshine
2025-04-07 17:19 ` Junio C Hamano
2025-04-07 21:28 ` Anthony Wang
2025-04-08 0:17 ` Junio C Hamano
2025-04-08 7:35 ` Anthony Wang
2025-04-07 11:18 ` [GSoC] [PATCH v2 2/3] t9811: Remove the -q quiet mode from some instances of grep Anthony Wang
2025-04-07 16:26 ` Eric Sunshine
2025-04-07 22:11 ` Junio C Hamano
2025-04-07 11:18 ` [GSoC] [PATCH v2 3/3] t9811: Change `grep` to `test_grep` for debug output Anthony Wang
2025-04-07 17:25 ` [GSoC] [PATCH v3 0/3] t9811: Improve test coverage and clarity Anthony Wang
2025-04-07 17:25 ` [GSoC] [PATCH v3 1/3] t9811: avoid using pipes to expose exit codes Anthony Wang
2025-04-07 17:25 ` [GSoC] [PATCH v3 2/3] t9811: Remove the -q quiet mode from some instances of grep Anthony Wang
2025-04-07 17:25 ` [GSoC] [PATCH v3 3/3] t9811: Change `grep` to `test_grep` for debug output Anthony Wang
2025-04-08 8:08 ` [GSoC] [PATCH v4 0/1] t9811: Improve test coverage and clarity Anthony Wang
2025-04-08 8:08 ` [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
2025-04-08 9:55 ` Karthik Nayak
2025-04-08 11:48 ` [GSoC] [PATCH v5 0/1] t9811: Improve test coverage and clarity Anthony Wang
2025-04-08 11:48 ` [GSoC] [PATCH v5 1/1] " Anthony Wang
2025-04-08 21:21 ` Junio C Hamano
2025-04-08 21:28 ` Eric Sunshine
2025-04-09 8:15 ` Anthony Wang [this message]
2025-04-09 13:29 ` Junio C Hamano
2025-04-12 6:19 ` [GSoC] [PATCH v6 0/1] t9811: be more precise to check importing of tags Anthony Wang
2025-04-12 6:19 ` [GSoC] [PATCH v6 1/1] " Anthony Wang
2025-04-15 14:55 ` Junio C Hamano
2025-04-16 15:03 ` Anthony Wang
2025-04-16 14:59 ` [GSoC] [PATCH v7 0/1] " Anthony Wang
2025-04-16 14:59 ` [GSoC] [PATCH v7 1/1] " Anthony Wang
2025-04-18 18:12 ` Junio C Hamano
2025-04-18 21:03 ` Junio C Hamano
2025-04-18 21:41 ` Eric Sunshine
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAOSofofyfDpFqFzApwMnmYdFb4nk8DS7WwWmYKLPbe+okOE=Tw@mail.gmail.com' \
--to=anthonywang513@gmail.com \
--cc=anthonywang03@icloud.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.com \
--cc=ps@pks.im \
--cc=shejialuo@gmail.com \
--cc=shyamthakkar001@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).