Code

Merge branch 'as/graph'
[git.git] / t / t5511-refspec.sh
1 #!/bin/sh
3 test_description='refspec parsing'
5 . ./test-lib.sh
7 test_refspec () {
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 }
25 test_refspec push ''                                            invalid
26 test_refspec push ':'                                           invalid
28 test_refspec fetch ''
29 test_refspec fetch ':'
31 test_refspec push 'refs/heads/*:refs/remotes/frotz/*'
32 test_refspec push 'refs/heads/*:refs/remotes/frotz'             invalid
33 test_refspec push 'refs/heads:refs/remotes/frotz/*'             invalid
34 test_refspec push 'refs/heads/master:refs/remotes/frotz/xyzzy'
37 # These have invalid LHS, but we do not have a formal "valid sha-1
38 # expression syntax checker" so they are not checked with the current
39 # code.  They will be caught downstream anyway, but we may want to
40 # have tighter check later...
42 : test_refspec push 'refs/heads/master::refs/remotes/frotz/xyzzy'       invalid
43 : test_refspec push 'refs/heads/maste :refs/remotes/frotz/xyzzy'        invalid
45 test_refspec fetch 'refs/heads/*:refs/remotes/frotz/*'
46 test_refspec fetch 'refs/heads/*:refs/remotes/frotz'            invalid
47 test_refspec fetch 'refs/heads:refs/remotes/frotz/*'            invalid
48 test_refspec fetch 'refs/heads/master:refs/remotes/frotz/xyzzy'
49 test_refspec fetch 'refs/heads/master::refs/remotes/frotz/xyzzy'        invalid
50 test_refspec fetch 'refs/heads/maste :refs/remotes/frotz/xyzzy' invalid
52 test_refspec push 'master~1:refs/remotes/frotz/backup'
53 test_refspec fetch 'master~1:refs/remotes/frotz/backup'         invalid
54 test_refspec push 'HEAD~4:refs/remotes/frotz/new'
55 test_refspec fetch 'HEAD~4:refs/remotes/frotz/new'              invalid
57 test_refspec push 'HEAD'
58 test_refspec fetch 'HEAD'
59 test_refspec push 'refs/heads/ nitfol'                          invalid
60 test_refspec fetch 'refs/heads/ nitfol'                         invalid
62 test_refspec push 'HEAD:'                                       invalid
63 test_refspec fetch 'HEAD:'
64 test_refspec push 'refs/heads/ nitfol:'                         invalid
65 test_refspec fetch 'refs/heads/ nitfol:'                        invalid
67 test_refspec push ':refs/remotes/frotz/deleteme'
68 test_refspec fetch ':refs/remotes/frotz/HEAD-to-me'
69 test_refspec push ':refs/remotes/frotz/delete me'               invalid
70 test_refspec fetch ':refs/remotes/frotz/HEAD to me'             invalid
72 test_done