]> git.ipfire.org Git - thirdparty/git.git/blob - t/t5561-http-backend.sh
path.c: don't call the match function without value in trie_find()
[thirdparty/git.git] / t / t5561-http-backend.sh
1 #!/bin/sh
2
3 test_description='test git-http-backend'
4 . ./test-lib.sh
5 . "$TEST_DIRECTORY"/lib-httpd.sh
6
7 if ! test_have_prereq CURL; then
8 skip_all='skipping raw http-backend tests, curl not available'
9 test_done
10 fi
11
12 start_httpd
13
14 GET() {
15 curl --include "$HTTPD_URL/$SMART/repo.git/$1" >out &&
16 tr '\015' Q <out |
17 sed '
18 s/Q$//
19 1q
20 ' >act &&
21 echo "HTTP/1.1 $2" >exp &&
22 test_cmp exp act
23 }
24
25 POST() {
26 curl --include --data "$2" \
27 --header "Content-Type: application/x-$1-request" \
28 "$HTTPD_URL/smart/repo.git/$1" >out &&
29 tr '\015' Q <out |
30 sed '
31 s/Q$//
32 1q
33 ' >act &&
34 echo "HTTP/1.1 $3" >exp &&
35 test_cmp exp act
36 }
37
38 . "$TEST_DIRECTORY"/t556x_common
39
40 grep '^[^#]' >exp <<EOF
41
42 ### refs/heads/master
43 ###
44 GET /smart/repo.git/refs/heads/master HTTP/1.1 404 -
45
46 ### getanyfile default
47 ###
48 GET /smart/repo.git/HEAD HTTP/1.1 200
49 GET /smart/repo.git/info/refs HTTP/1.1 200
50 GET /smart/repo.git/objects/info/packs HTTP/1.1 200
51 GET /smart/repo.git/objects/info/alternates HTTP/1.1 200 -
52 GET /smart/repo.git/objects/info/http-alternates HTTP/1.1 200 -
53 GET /smart/repo.git/$LOOSE_URL HTTP/1.1 200
54 GET /smart/repo.git/$PACK_URL HTTP/1.1 200
55 GET /smart/repo.git/$IDX_URL HTTP/1.1 200
56
57 ### no git-daemon-export-ok
58 ###
59 GET /smart_noexport/repo.git/HEAD HTTP/1.1 404 -
60 GET /smart_noexport/repo.git/info/refs HTTP/1.1 404 -
61 GET /smart_noexport/repo.git/objects/info/packs HTTP/1.1 404 -
62 GET /smart_noexport/repo.git/objects/info/alternates HTTP/1.1 404 -
63 GET /smart_noexport/repo.git/objects/info/http-alternates HTTP/1.1 404 -
64 GET /smart_noexport/repo.git/$LOOSE_URL HTTP/1.1 404 -
65 GET /smart_noexport/repo.git/$PACK_URL HTTP/1.1 404 -
66 GET /smart_noexport/repo.git/$IDX_URL HTTP/1.1 404 -
67
68 ### git-daemon-export-ok
69 ###
70 GET /smart_noexport/repo.git/HEAD HTTP/1.1 200
71 GET /smart_noexport/repo.git/info/refs HTTP/1.1 200
72 GET /smart_noexport/repo.git/objects/info/packs HTTP/1.1 200
73 GET /smart_noexport/repo.git/objects/info/alternates HTTP/1.1 200 -
74 GET /smart_noexport/repo.git/objects/info/http-alternates HTTP/1.1 200 -
75 GET /smart_noexport/repo.git/$LOOSE_URL HTTP/1.1 200
76 GET /smart_noexport/repo.git/$PACK_URL HTTP/1.1 200
77 GET /smart_noexport/repo.git/$IDX_URL HTTP/1.1 200
78
79 ### getanyfile true
80 ###
81 GET /smart/repo.git/HEAD HTTP/1.1 200
82 GET /smart/repo.git/info/refs HTTP/1.1 200
83 GET /smart/repo.git/objects/info/packs HTTP/1.1 200
84 GET /smart/repo.git/objects/info/alternates HTTP/1.1 200 -
85 GET /smart/repo.git/objects/info/http-alternates HTTP/1.1 200 -
86 GET /smart/repo.git/$LOOSE_URL HTTP/1.1 200
87 GET /smart/repo.git/$PACK_URL HTTP/1.1 200
88 GET /smart/repo.git/$IDX_URL HTTP/1.1 200
89
90 ### getanyfile false
91 ###
92 GET /smart/repo.git/HEAD HTTP/1.1 403 -
93 GET /smart/repo.git/info/refs HTTP/1.1 403 -
94 GET /smart/repo.git/objects/info/packs HTTP/1.1 403 -
95 GET /smart/repo.git/objects/info/alternates HTTP/1.1 403 -
96 GET /smart/repo.git/objects/info/http-alternates HTTP/1.1 403 -
97 GET /smart/repo.git/$LOOSE_URL HTTP/1.1 403 -
98 GET /smart/repo.git/$PACK_URL HTTP/1.1 403 -
99 GET /smart/repo.git/$IDX_URL HTTP/1.1 403 -
100
101 ### uploadpack default
102 ###
103 GET /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
104 POST /smart/repo.git/git-upload-pack HTTP/1.1 200 -
105
106 ### uploadpack true
107 ###
108 GET /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
109 POST /smart/repo.git/git-upload-pack HTTP/1.1 200 -
110
111 ### uploadpack false
112 ###
113 GET /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1 403 -
114 POST /smart/repo.git/git-upload-pack HTTP/1.1 403 -
115
116 ### receivepack default
117 ###
118 GET /smart/repo.git/info/refs?service=git-receive-pack HTTP/1.1 403 -
119 POST /smart/repo.git/git-receive-pack HTTP/1.1 403 -
120
121 ### receivepack true
122 ###
123 GET /smart/repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
124 POST /smart/repo.git/git-receive-pack HTTP/1.1 200 -
125
126 ### receivepack false
127 ###
128 GET /smart/repo.git/info/refs?service=git-receive-pack HTTP/1.1 403 -
129 POST /smart/repo.git/git-receive-pack HTTP/1.1 403 -
130 EOF
131 test_expect_success 'server request log matches test results' '
132 check_access_log exp
133 '
134
135 test_done