diff mbox series

[GSoC,v7,1/1] t9811: be more precise to check importing of tags

Message ID 20250416145939.24207-2-anthonywang03@icloud.com (mailing list archive)
State Accepted
Commit dccf1296d85aac93156d151253f2669f1b34a152
Headers show
Series t9811: be more precise to check importing of tags | expand

Commit Message

Anthony Wang April 16, 2025, 2:59 p.m. UTC
The tests use grep to search the output of `git tag` for tagnames they 
expect to exist, which can incorrectly pass if an unxpected tag
has the expected tag as its substring. We fix this by using `git 
show-ref --verify` instead.

Additionally, we add a negative test to verify that a possible
uninteded tag does not show up in the imported repository.

This change also fixes an additional problem, where piping the
output of `git tag` caused the exit codes to be lost.

Signed-off-by: Anthony Wang <anthonywang513@gmail.com>
---
 t/t9811-git-p4-label-import.sh | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Junio C Hamano April 18, 2025, 6:12 p.m. UTC | #1
Anthony Wang <anthonywang513@gmail.com> writes:

> Additionally, we add a negative test to verify that a possible
> uninteded tag does not show up in the imported repository.

With this we tightened the tests to insist that TAG_F1_ONLY does not
exist, but it seems that our CI tests at least on macos seems to
think that the tag should exist.

https://github.com/git/git/actions/runs/14526556144/job/40759116464#step:4:1944

> +		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 &&

And because of that, this third line which does not correspond to
any tests in the original makes the thing fail.

I think negative test was what I suggested, but I didn't know if
that particular tag used for the negative test should or should not
exist in the test at that point (I do not do Perforce, so I still do
not know the answer to that question; in any case, due to lack of p4
in my environment, my local testing did not catch this breakage).

Sorry about the confusion.

Let's add this on top.

-- >8 ---- >8 ---- >8 --
Subject: [PATCH] t9811: fix misconversion of test

The previous commit started to insist TAG_F1_ONLY to be missing,
which was not in the original.  Let's not to be overly eager in the
conversion.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 t/t9811-git-p4-label-import.sh | 1 -
 1 file changed, 1 deletion(-)

diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
index 39856629c0..9637a46d6f 100755
--- a/t/t9811-git-p4-label-import.sh
+++ b/t/t9811-git-p4-label-import.sh
@@ -97,7 +97,6 @@ test_expect_success 'two labels on the same changelist' '
 
 		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 &&
 
 		cd main &&
Junio C Hamano April 18, 2025, 9:03 p.m. UTC | #2
Junio C Hamano <gitster@pobox.com> writes:

> Let's add this on top.

Well, it turns out that it wasn't enough.

--- >8 ------ >8 ------ >8 ---
Subject: [PATCH] t9811: fix misconversion of test

The previous commit started to insist TAG_F1_ONLY to be missing,
which was not in the original.  Let's not to be overly eager in the
conversion.

Aso, the other hunk in the commit introduced shell syntax errors,
breaking the test to fail.  Fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 t/t9811-git-p4-label-import.sh | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
index 39856629c0..7614dfbd95 100755
--- a/t/t9811-git-p4-label-import.sh
+++ b/t/t9811-git-p4-label-import.sh
@@ -97,7 +97,6 @@ test_expect_success 'two labels on the same changelist' '
 
 		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 &&
 
 		cd main &&
 
@@ -207,7 +206,7 @@ test_expect_success 'use git config to enable import/export of tags' '
 		git tag CFG_A_GIT_TAG &&
 		git p4 rebase --verbose &&
 		git p4 submit --verbose &&
-		git show-ref --verify refs/tags/TAG_F1_1 &&
+		git show-ref --verify refs/tags/TAG_F1_1
 	) &&
 	(
 		cd "$cli" &&
Eric Sunshine April 18, 2025, 9:41 p.m. UTC | #3
On Fri, Apr 18, 2025 at 5:03 PM Junio C Hamano <gitster@pobox.com> wrote:
> Subject: [PATCH] t9811: fix misconversion of test
>
> The previous commit started to insist TAG_F1_ONLY to be missing,
> which was not in the original.  Let's not to be overly eager in the
> conversion.

s/to be/be/

> Aso, the other hunk in the commit introduced shell syntax errors,
> breaking the test to fail.  Fix it.

s/Aso/Also/
s/breaking/causing/

> Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff mbox series

Patch

diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
index 5ac5383fb7..39856629c0 100755
--- a/t/t9811-git-p4-label-import.sh
+++ b/t/t9811-git-p4-label-import.sh
@@ -95,9 +95,9 @@  test_expect_success 'two labels on the same changelist' '
 		cd "$git" &&
 		git p4 sync --import-labels &&
 
-		git tag | grep TAG_F1 &&
-		git tag | grep -q TAG_F1_1 &&
-		git tag | grep -q TAG_F1_2 &&
+		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 &&
 
 		cd main &&
 
@@ -207,8 +207,7 @@  test_expect_success 'use git config to enable import/export of tags' '
 		git tag CFG_A_GIT_TAG &&
 		git p4 rebase --verbose &&
 		git p4 submit --verbose &&
-		git tag &&
-		git tag | grep TAG_F1_1
+		git show-ref --verify refs/tags/TAG_F1_1 &&
 	) &&
 	(
 		cd "$cli" &&