diff mbox series

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

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

Commit Message

Anthony Wang April 12, 2025, 6:19 a.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 the original 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 15, 2025, 2:55 p.m. UTC | #1
Anthony Wang <anthonywang513@gmail.com> writes:

> 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 the original problem, where piping the
> output of `git tag` caused the exit codes to be lost.

The word "original" is misleading; perhaps phase it as "additional"
instead?

That is because not allowing to notice potential breakage by hiding
the exit status behind pipes is just as bad as falsely taking a
partial tagname match as success, and there is no reason to call one
"original" problem, implying the other problem(s) are different.

Other than that, looks excellent.

Thanks.


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