]> git.ipfire.org Git - thirdparty/git.git/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 77a7a9777d1989b9482a4bb7a732ccea60b26acf..bef7618da24433f2245c3bbbd61dc0fd6008444b 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