5
. ./test-lib.sh
6
7
valid_ref() {
8
- test_expect_success "ref name '$1' is valid" \
9
- "git check-ref-format '$1'"
8
+ if test "$#" = 1
9
+ then
10
+ test_expect_success "ref name '$1' is valid" \
11
+ "git check-ref-format '$1'"
12
+ else
13
+ test_expect_success "ref name '$1' is valid with options $2" \
14
+ "git check-ref-format $2 '$1'"
15
+ fi
16
}
17
invalid_ref() {
12
- test_expect_success "ref name '$1' is not valid" \
13
- "test_must_fail git check-ref-format '$1'"
18
+ if test "$#" = 1
19
+ then
20
+ test_expect_success "ref name '$1' is invalid" \
21
+ "test_must_fail git check-ref-format '$1'"
22
+ else
23
+ test_expect_success "ref name '$1' is invalid with options $2" \
24
+ "test_must_fail git check-ref-format $2 '$1'"
25
+ fi
26
}
27
28
invalid_ref ''
29
invalid_ref '/'
18
-valid_ref 'heads/foo'
19
-invalid_ref 'foo'
30
+invalid_ref '/' --allow-onelevel
31
valid_ref 'foo/bar/baz'
32
valid_ref 'refs///heads/foo'
33
invalid_ref 'heads/foo/'
34
valid_ref '/heads/foo'
35
valid_ref '///heads/foo'
25
-invalid_ref '/foo'
36
invalid_ref './foo'
37
+invalid_ref './foo/bar'
38
+invalid_ref 'foo/./bar'
39
+invalid_ref 'foo/bar/.'
40
invalid_ref '.refs/foo'
41
invalid_ref 'heads/foo..bar'
42
invalid_ref 'heads/foo?bar'
51
invalid_ref "$(printf 'heads/foo\t')"
52
invalid_ref "$(printf 'heads/foo\177')"
53
valid_ref "$(printf 'heads/fu\303\237')"
54
+invalid_ref 'heads/*foo/bar' --refspec-pattern
55
+invalid_ref 'heads/foo*/bar' --refspec-pattern
56
+invalid_ref 'heads/f*o/bar' --refspec-pattern
57
+
58
+ref='foo'
59
+invalid_ref "$ref"
60
+valid_ref "$ref" --allow-onelevel
61
+invalid_ref "$ref" --refspec-pattern
62
+valid_ref "$ref" '--refspec-pattern --allow-onelevel'
63
+
64
+ref='foo/bar'
65
+valid_ref "$ref"
66
+valid_ref "$ref" --allow-onelevel
67
+valid_ref "$ref" --refspec-pattern
68
+valid_ref "$ref" '--refspec-pattern --allow-onelevel'
69
+
70
+ref='foo/*'
71
+invalid_ref "$ref"
72
+invalid_ref "$ref" --allow-onelevel
73
+valid_ref "$ref" --refspec-pattern
74
+valid_ref "$ref" '--refspec-pattern --allow-onelevel'
75
+
76
+ref='*/foo'
77
+invalid_ref "$ref"
78
+invalid_ref "$ref" --allow-onelevel
79
+valid_ref "$ref" --refspec-pattern
80
+valid_ref "$ref" '--refspec-pattern --allow-onelevel'
81
+
82
+ref='foo/*/bar'
83
+invalid_ref "$ref"
84
+invalid_ref "$ref" --allow-onelevel
85
+valid_ref "$ref" --refspec-pattern
86
+valid_ref "$ref" '--refspec-pattern --allow-onelevel'
87
+
88
+ref='*'
89
+invalid_ref "$ref"
90
+
91
+#invalid_ref "$ref" --allow-onelevel
92
+test_expect_failure "ref name '$ref' is invalid with options --allow-onelevel" \
93
+ "test_must_fail git check-ref-format --allow-onelevel '$ref'"
94
+
95
+invalid_ref "$ref" --refspec-pattern
96
+valid_ref "$ref" '--refspec-pattern --allow-onelevel'
97
+
98
+ref='foo/*/*'
99
+invalid_ref "$ref" --refspec-pattern
100
+invalid_ref "$ref" '--refspec-pattern --allow-onelevel'
101
+
102
+ref='*/foo/*'
103
+invalid_ref "$ref" --refspec-pattern
104
+invalid_ref "$ref" '--refspec-pattern --allow-onelevel'
105
+
106
+ref='*/*/foo'
107
+invalid_ref "$ref" --refspec-pattern
108
+invalid_ref "$ref" '--refspec-pattern --allow-onelevel'
109
+
110
+ref='/foo'
111
+invalid_ref "$ref"
112
+valid_ref "$ref" --allow-onelevel
113
+invalid_ref "$ref" --refspec-pattern
114
+valid_ref "$ref" '--refspec-pattern --allow-onelevel'
115
116
test_expect_success "check-ref-format --branch @{-1}" '
117
T=$(git write-tree) &&