for-each-ref: add '--points-at' option
[git] / t / t6302-for-each-ref-filter.sh
1 #!/bin/sh
2
3 test_description='test for-each-refs usage of ref-filter APIs'
4
5 . ./test-lib.sh
6 . "$TEST_DIRECTORY"/lib-gpg.sh
7
8 if ! test_have_prereq GPG
9 then
10         skip_all="skipping for-each-ref tests, GPG not available"
11         test_done
12 fi
13
14 test_expect_success 'setup some history and refs' '
15         test_commit one &&
16         test_commit two &&
17         test_commit three &&
18         git checkout -b side &&
19         test_commit four &&
20         git tag -s -m "A signed tag message" signed-tag &&
21         git tag -s -m "Annonated doubly" double-tag signed-tag &&
22         git checkout master &&
23         git update-ref refs/odd/spot master
24 '
25
26 test_expect_success 'filtering with --points-at' '
27         cat >expect <<-\EOF &&
28         refs/heads/master
29         refs/odd/spot
30         refs/tags/three
31         EOF
32         git for-each-ref --format="%(refname)" --points-at=master >actual &&
33         test_cmp expect actual
34 '
35
36 test_expect_success 'check signed tags with --points-at' '
37         sed -e "s/Z$//" >expect <<-\EOF &&
38         refs/heads/side Z
39         refs/tags/four Z
40         refs/tags/signed-tag four
41         EOF
42         git for-each-ref --format="%(refname) %(*subject)" --points-at=side >actual &&
43         test_cmp expect actual
44 '
45
46 test_done