3 test_description
='refspec parsing'
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
16 title
="$kind $refspec"
17 test='git ls-remote frotz'
19 title
="$kind $refspec (invalid)"
20 test='test_must_fail git ls-remote frotz'
22 test_expect_success
"$title" "$test"
25 test_refspec push
'' invalid
26 test_refspec push
':' invalid
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