]>
Commit | Line | Data |
---|---|---|
46220ca1 JH |
1 | #!/bin/sh |
2 | ||
3 | test_description='refspec parsing' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_refspec () { | |
8 | ||
9 | kind=$1 refspec=$2 expect=$3 | |
10 | git config remote.frotz.url "." && | |
11 | git config --remove-section remote.frotz && | |
12 | git config remote.frotz.url "." && | |
13 | git config "remote.frotz.$kind" "$refspec" && | |
14 | if test "$expect" != invalid | |
15 | then | |
16 | title="$kind $refspec" | |
17 | test='git ls-remote frotz' | |
18 | else | |
19 | title="$kind $refspec (invalid)" | |
20 | test='test_must_fail git ls-remote frotz' | |
21 | fi | |
22 | test_expect_success "$title" "$test" | |
23 | } | |
24 | ||
25 | test_refspec push '' invalid | |
a83619d6 PB |
26 | test_refspec push ':' |
27 | test_refspec push '::' invalid | |
28 | test_refspec push '+:' | |
46220ca1 JH |
29 | |
30 | test_refspec fetch '' | |
31 | test_refspec fetch ':' | |
a83619d6 | 32 | test_refspec fetch '::' invalid |
46220ca1 JH |
33 | |
34 | test_refspec push 'refs/heads/*:refs/remotes/frotz/*' | |
35 | test_refspec push 'refs/heads/*:refs/remotes/frotz' invalid | |
36 | test_refspec push 'refs/heads:refs/remotes/frotz/*' invalid | |
37 | test_refspec push 'refs/heads/master:refs/remotes/frotz/xyzzy' | |
38 | ||
39 | ||
40 | # These have invalid LHS, but we do not have a formal "valid sha-1 | |
41 | # expression syntax checker" so they are not checked with the current | |
42 | # code. They will be caught downstream anyway, but we may want to | |
43 | # have tighter check later... | |
44 | ||
45 | : test_refspec push 'refs/heads/master::refs/remotes/frotz/xyzzy' invalid | |
46 | : test_refspec push 'refs/heads/maste :refs/remotes/frotz/xyzzy' invalid | |
47 | ||
48 | test_refspec fetch 'refs/heads/*:refs/remotes/frotz/*' | |
49 | test_refspec fetch 'refs/heads/*:refs/remotes/frotz' invalid | |
50 | test_refspec fetch 'refs/heads:refs/remotes/frotz/*' invalid | |
51 | test_refspec fetch 'refs/heads/master:refs/remotes/frotz/xyzzy' | |
52 | test_refspec fetch 'refs/heads/master::refs/remotes/frotz/xyzzy' invalid | |
53 | test_refspec fetch 'refs/heads/maste :refs/remotes/frotz/xyzzy' invalid | |
54 | ||
55 | test_refspec push 'master~1:refs/remotes/frotz/backup' | |
56 | test_refspec fetch 'master~1:refs/remotes/frotz/backup' invalid | |
57 | test_refspec push 'HEAD~4:refs/remotes/frotz/new' | |
58 | test_refspec fetch 'HEAD~4:refs/remotes/frotz/new' invalid | |
59 | ||
60 | test_refspec push 'HEAD' | |
61 | test_refspec fetch 'HEAD' | |
62 | test_refspec push 'refs/heads/ nitfol' invalid | |
63 | test_refspec fetch 'refs/heads/ nitfol' invalid | |
64 | ||
65 | test_refspec push 'HEAD:' invalid | |
66 | test_refspec fetch 'HEAD:' | |
67 | test_refspec push 'refs/heads/ nitfol:' invalid | |
68 | test_refspec fetch 'refs/heads/ nitfol:' invalid | |
69 | ||
70 | test_refspec push ':refs/remotes/frotz/deleteme' | |
71 | test_refspec fetch ':refs/remotes/frotz/HEAD-to-me' | |
72 | test_refspec push ':refs/remotes/frotz/delete me' invalid | |
73 | test_refspec fetch ':refs/remotes/frotz/HEAD to me' invalid | |
74 | ||
abd2bde7 DB |
75 | test_refspec fetch 'refs/heads/*/for-linus:refs/remotes/mine/*-blah' invalid |
76 | test_refspec push 'refs/heads/*/for-linus:refs/remotes/mine/*-blah' invalid | |
77 | ||
78 | test_refspec fetch 'refs/heads*/for-linus:refs/remotes/mine/*' invalid | |
79 | test_refspec push 'refs/heads*/for-linus:refs/remotes/mine/*' invalid | |
80 | ||
81 | test_refspec fetch 'refs/heads/*/*/for-linus:refs/remotes/mine/*' invalid | |
82 | test_refspec push 'refs/heads/*/*/for-linus:refs/remotes/mine/*' invalid | |
83 | ||
84 | test_refspec fetch 'refs/heads/*/for-linus:refs/remotes/mine/*' | |
85 | test_refspec push 'refs/heads/*/for-linus:refs/remotes/mine/*' | |
86 | ||
46220ca1 | 87 | test_done |