t7004: drop hardcoded tag count for state verification

The test 'trying to create a tag with a non-valid name should fail', checked that exactly one tag existed in the repository before and after attempting to create invalid tags. As pointed out by Junio, this makes the test brittle by relying on a specific global tag count. If future tests are added or removed before this test, the expected state changes and this test would break for completely unrelated reasons. Modernize the test by taking a snapshot of the existing tags before the failure attempts and comparing it to a snapshot taken after. This provides a "belt-and-suspenders" approach: we verify that 'git tag' both exits with the expected error code and leaves the repository state untouched, without being brittle to the specific number of tags present. This replaces the hardcoded 'test_line_count = 1' checks with 'test_cmp' to ensure the tag list remains identical. Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Siddharth Shrimali <r.siddharth.shrimali@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Siddharth Shrimali committed Apr 21, 2026 at 11:03 UTC 7002d6cd16047c0ed0b6befc22b5a7d54d4d6fde
1 file changed +3 -4
t/t7004-tag.sh
+3 -4
@@ -191,15 +191,14 @@ test_expect_success 'trying to create a tag with the name of one existing should
191 '
192
193 test_expect_success 'trying to create a tag with a non-valid name should fail' '
194 - git tag -l >actual &&
195 - test_line_count = 1 actual &&
194 + git tag -l >tags-before &&
195 test_must_fail git tag "" &&
196 test_must_fail git tag .othertag &&
197 test_must_fail git tag "other tag" &&
198 test_must_fail git tag "othertag^" &&
199 test_must_fail git tag "other~tag" &&
201 - git tag -l >actual &&
202 - test_line_count = 1 actual
200 + git tag -l >tags-after &&
201 + test_cmp tags-before tags-after
202 '
203
204 test_expect_success 'creating a tag using HEAD directly should succeed' '