]> Kevux Git Server - rit/commitdiff
t7004: dynamically grab expected state in tests
authorSiddharth Shrimali <r.siddharth.shrimali@gmail.com>
Tue, 21 Apr 2026 05:33:33 +0000 (11:03 +0530)
committerJunio C Hamano <gitster@pobox.com>
Tue, 21 Apr 2026 07:20:42 +0000 (00:20 -0700)
The tests for 'Multiple -l or --list options' and 'trying to delete
tags without params', hardcodes that exactly one or two specific tags
('myhead', 'mytag') exist in the repository.

If other tests are added, modified, or removed earlier in the script,
this expected global state will change, resulting in these tests to fail
for completely unrelated reasons.

Instead of hardcoding the expected tags, dynamically grab the state
of the repository before running the commands under test ('git tag -l'
and 'git tag -d'), and verify that the output matches or remains
unchanged afterward. This keeps the tests independent from the script's
overall state.

Signed-off-by: Siddharth Shrimali <r.siddharth.shrimali@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7004-tag.sh

index 77a7a97..bef7618 100755 (executable)
@@ -145,9 +145,7 @@ test_expect_success 'listing all tags if one exists should succeed' '
 '
 
 test_expect_success 'Multiple -l or --list options are equivalent to one -l option' '
-       cat >expect <<-\EOF &&
-       mytag
-       EOF
+       git tag -l >expect &&
        git tag -l -l >actual &&
        test_cmp expect actual &&
        git tag --list --list >actual &&
@@ -226,12 +224,7 @@ test_expect_success 'trying to delete an unknown tag should fail' '
 '
 
 test_expect_success 'trying to delete tags without params should succeed and do nothing' '
-       cat >expect <<-\EOF &&
-       myhead
-       mytag
-       EOF
-       git tag -l >actual &&
-       test_cmp expect actual &&
+       git tag -l >expect &&
        git tag -d &&
        git tag -l >actual &&
        test_cmp expect actual