]>
Commit | Line | Data |
---|---|---|
c3e23dc1 MH |
1 | #!/bin/sh |
2 | ||
3 | test_description='for-each-ref errors for broken refs' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
8125a58b | 7 | ZEROS=$ZERO_OID |
c3e23dc1 MH |
8 | |
9 | test_expect_success setup ' | |
abe3db14 | 10 | MISSING=$(test_oid deadbeef) && |
c3e23dc1 MH |
11 | git commit --allow-empty -m "Initial" && |
12 | git tag testtag && | |
13 | git for-each-ref >full-list && | |
14 | git for-each-ref --format="%(objectname) %(refname)" >brief-list | |
15 | ' | |
16 | ||
8afc493d | 17 | test_expect_success 'Broken refs are reported correctly' ' |
c3e23dc1 MH |
18 | r=refs/heads/bogus && |
19 | : >.git/$r && | |
20 | test_when_finished "rm -f .git/$r" && | |
21 | echo "warning: ignoring broken ref $r" >broken-err && | |
22 | git for-each-ref >out 2>err && | |
1108cea7 ÆAB |
23 | test_cmp full-list out && |
24 | test_cmp broken-err err | |
c3e23dc1 MH |
25 | ' |
26 | ||
501cf47c | 27 | test_expect_success 'NULL_SHA1 refs are reported correctly' ' |
c3e23dc1 MH |
28 | r=refs/heads/zeros && |
29 | echo $ZEROS >.git/$r && | |
30 | test_when_finished "rm -f .git/$r" && | |
31 | echo "warning: ignoring broken ref $r" >zeros-err && | |
32 | git for-each-ref >out 2>err && | |
33 | test_cmp full-list out && | |
1108cea7 | 34 | test_cmp zeros-err err && |
c3e23dc1 MH |
35 | git for-each-ref --format="%(objectname) %(refname)" >brief-out 2>brief-err && |
36 | test_cmp brief-list brief-out && | |
1108cea7 | 37 | test_cmp zeros-err brief-err |
c3e23dc1 MH |
38 | ' |
39 | ||
40 | test_expect_success 'Missing objects are reported correctly' ' | |
41 | r=refs/heads/missing && | |
42 | echo $MISSING >.git/$r && | |
43 | test_when_finished "rm -f .git/$r" && | |
44 | echo "fatal: missing object $MISSING for $r" >missing-err && | |
45 | test_must_fail git for-each-ref 2>err && | |
1108cea7 | 46 | test_cmp missing-err err && |
c3e23dc1 MH |
47 | ( |
48 | cat brief-list && | |
49 | echo "$MISSING $r" | |
50 | ) | sort -k 2 >missing-brief-expected && | |
51 | git for-each-ref --format="%(objectname) %(refname)" >brief-out 2>brief-err && | |
52 | test_cmp missing-brief-expected brief-out && | |
53 | test_must_be_empty brief-err | |
54 | ' | |
55 | ||
56 | test_done |