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 |
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 --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" &&
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(-)