xref: /aosp_15_r20/external/curl/tests/data/test645 (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker<testcase>
2*6236dae4SAndroid Build Coastguard Worker<info>
3*6236dae4SAndroid Build Coastguard Worker<keywords>
4*6236dae4SAndroid Build Coastguard WorkerHTTP
5*6236dae4SAndroid Build Coastguard WorkerHTTP POST
6*6236dae4SAndroid Build Coastguard WorkerHTTP MIME POST
7*6236dae4SAndroid Build Coastguard Worker</keywords>
8*6236dae4SAndroid Build Coastguard Worker</info>
9*6236dae4SAndroid Build Coastguard Worker
10*6236dae4SAndroid Build Coastguard Worker#
11*6236dae4SAndroid Build Coastguard Worker# Server-side
12*6236dae4SAndroid Build Coastguard Worker<reply>
13*6236dae4SAndroid Build Coastguard Worker<data>
14*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK
15*6236dae4SAndroid Build Coastguard WorkerDate: Tue, 09 Nov 2010 14:49:00 GMT
16*6236dae4SAndroid Build Coastguard WorkerServer: test-server/fake swsclose
17*6236dae4SAndroid Build Coastguard WorkerConnection: close
18*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html
19*6236dae4SAndroid Build Coastguard Worker
20*6236dae4SAndroid Build Coastguard Workerhello
21*6236dae4SAndroid Build Coastguard Worker</data>
22*6236dae4SAndroid Build Coastguard Worker<datacheck>
23*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK
24*6236dae4SAndroid Build Coastguard WorkerDate: Tue, 09 Nov 2010 14:49:00 GMT
25*6236dae4SAndroid Build Coastguard WorkerServer: test-server/fake swsclose
26*6236dae4SAndroid Build Coastguard WorkerConnection: close
27*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html
28*6236dae4SAndroid Build Coastguard Worker
29*6236dae4SAndroid Build Coastguard Workerhello
30*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK
31*6236dae4SAndroid Build Coastguard WorkerDate: Tue, 09 Nov 2010 14:49:00 GMT
32*6236dae4SAndroid Build Coastguard WorkerServer: test-server/fake swsclose
33*6236dae4SAndroid Build Coastguard WorkerConnection: close
34*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html
35*6236dae4SAndroid Build Coastguard Worker
36*6236dae4SAndroid Build Coastguard Workerhello
37*6236dae4SAndroid Build Coastguard Worker</datacheck>
38*6236dae4SAndroid Build Coastguard Worker</reply>
39*6236dae4SAndroid Build Coastguard Worker
40*6236dae4SAndroid Build Coastguard Worker# Client-side
41*6236dae4SAndroid Build Coastguard Worker<client>
42*6236dae4SAndroid Build Coastguard Worker<features>
43*6236dae4SAndroid Build Coastguard WorkerMime
44*6236dae4SAndroid Build Coastguard Worker</features>
45*6236dae4SAndroid Build Coastguard Worker<server>
46*6236dae4SAndroid Build Coastguard Workerhttp
47*6236dae4SAndroid Build Coastguard Worker</server>
48*6236dae4SAndroid Build Coastguard Worker# tool is what to use instead of 'curl'
49*6236dae4SAndroid Build Coastguard Worker<tool>
50*6236dae4SAndroid Build Coastguard Workerlib%TESTNUMBER
51*6236dae4SAndroid Build Coastguard Worker</tool>
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard Worker<name>
54*6236dae4SAndroid Build Coastguard WorkerHTTP multi-part chunked mimepost using read callback for the file part
55*6236dae4SAndroid Build Coastguard Worker</name>
56*6236dae4SAndroid Build Coastguard Worker<command>
57*6236dae4SAndroid Build Coastguard Workerhttp://%HOSTIP:%HTTPPORT/%TESTNUMBER
58*6236dae4SAndroid Build Coastguard Worker</command>
59*6236dae4SAndroid Build Coastguard Worker</client>
60*6236dae4SAndroid Build Coastguard Worker
61*6236dae4SAndroid Build Coastguard Worker#
62*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot"
63*6236dae4SAndroid Build Coastguard Worker<verify>
64*6236dae4SAndroid Build Coastguard Worker<strippart>
65*6236dae4SAndroid Build Coastguard Workers/^--------------------------[A-Za-z0-9]*/------------------------------/
66*6236dae4SAndroid Build Coastguard Workers/boundary=------------------------[A-Za-z0-9]*/boundary=----------------------------/
67*6236dae4SAndroid Build Coastguard Worker</strippart>
68*6236dae4SAndroid Build Coastguard Worker# Note that the stripping above removes 12 bytes from every occurrence of the
69*6236dae4SAndroid Build Coastguard Worker# boundary string and since 5 of them are in the body contents, we see
70*6236dae4SAndroid Build Coastguard Worker# (5*12) == 60 bytes less
71*6236dae4SAndroid Build Coastguard Worker<protocol>
72*6236dae4SAndroid Build Coastguard WorkerPOST /%TESTNUMBER HTTP/1.1
73*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
74*6236dae4SAndroid Build Coastguard WorkerAccept: */*
75*6236dae4SAndroid Build Coastguard WorkerTransfer-Encoding: chunked
76*6236dae4SAndroid Build Coastguard WorkerContent-Type: multipart/form-data; boundary=----------------------------
77*6236dae4SAndroid Build Coastguard WorkerExpect: 100-continue
78*6236dae4SAndroid Build Coastguard Worker
79*6236dae4SAndroid Build Coastguard Worker%if hyper
80*6236dae4SAndroid Build Coastguard Worker7C
81*6236dae4SAndroid Build Coastguard Worker%else
82*6236dae4SAndroid Build Coastguard Worker7c
83*6236dae4SAndroid Build Coastguard Worker%endif
84*6236dae4SAndroid Build Coastguard Worker------------------------------
85*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="sendfile"; filename="postit2.c"
86*6236dae4SAndroid Build Coastguard Worker
87*6236dae4SAndroid Build Coastguard Workerd
88*6236dae4SAndroid Build Coastguard Worker1
89*6236dae4SAndroid Build Coastguard Workeru
90*6236dae4SAndroid Build Coastguard Worker1
91*6236dae4SAndroid Build Coastguard Workerm
92*6236dae4SAndroid Build Coastguard Worker1
93*6236dae4SAndroid Build Coastguard Workerm
94*6236dae4SAndroid Build Coastguard Worker1
95*6236dae4SAndroid Build Coastguard Workery
96*6236dae4SAndroid Build Coastguard Worker1
97*6236dae4SAndroid Build Coastguard Worker
98*6236dae4SAndroid Build Coastguard Worker
99*6236dae4SAndroid Build Coastguard Worker%if hyper
100*6236dae4SAndroid Build Coastguard Worker6B
101*6236dae4SAndroid Build Coastguard Worker%else
102*6236dae4SAndroid Build Coastguard Worker6b
103*6236dae4SAndroid Build Coastguard Worker%endif
104*6236dae4SAndroid Build Coastguard Worker
105*6236dae4SAndroid Build Coastguard Worker------------------------------
106*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="callbackdata"
107*6236dae4SAndroid Build Coastguard Worker
108*6236dae4SAndroid Build Coastguard Worker
109*6236dae4SAndroid Build Coastguard Worker1
110*6236dae4SAndroid Build Coastguard Workerd
111*6236dae4SAndroid Build Coastguard Worker1
112*6236dae4SAndroid Build Coastguard Workeru
113*6236dae4SAndroid Build Coastguard Worker1
114*6236dae4SAndroid Build Coastguard Workerm
115*6236dae4SAndroid Build Coastguard Worker1
116*6236dae4SAndroid Build Coastguard Workerm
117*6236dae4SAndroid Build Coastguard Worker1
118*6236dae4SAndroid Build Coastguard Workery
119*6236dae4SAndroid Build Coastguard Worker1
120*6236dae4SAndroid Build Coastguard Worker
121*6236dae4SAndroid Build Coastguard Worker
122*6236dae4SAndroid Build Coastguard Worker%if hyper
123*6236dae4SAndroid Build Coastguard Worker1B2
124*6236dae4SAndroid Build Coastguard Worker%else
125*6236dae4SAndroid Build Coastguard Worker1b2
126*6236dae4SAndroid Build Coastguard Worker%endif
127*6236dae4SAndroid Build Coastguard Worker
128*6236dae4SAndroid Build Coastguard Worker------------------------------
129*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="filename"
130*6236dae4SAndroid Build Coastguard Worker
131*6236dae4SAndroid Build Coastguard Workerpostit2.c
132*6236dae4SAndroid Build Coastguard Worker------------------------------
133*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="submit"
134*6236dae4SAndroid Build Coastguard Worker
135*6236dae4SAndroid Build Coastguard Workersend
136*6236dae4SAndroid Build Coastguard Worker------------------------------
137*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="somename"; filename="somefile.txt"
138*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/plain
139*6236dae4SAndroid Build Coastguard Worker
140*6236dae4SAndroid Build Coastguard Workerblah blah
141*6236dae4SAndroid Build Coastguard Worker--------------------------------
142*6236dae4SAndroid Build Coastguard Worker
143*6236dae4SAndroid Build Coastguard Worker0
144*6236dae4SAndroid Build Coastguard Worker
145*6236dae4SAndroid Build Coastguard WorkerPOST /%TESTNUMBER HTTP/1.1
146*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
147*6236dae4SAndroid Build Coastguard WorkerAccept: */*
148*6236dae4SAndroid Build Coastguard WorkerTransfer-Encoding: chunked
149*6236dae4SAndroid Build Coastguard WorkerContent-Type: multipart/form-data; boundary=----------------------------
150*6236dae4SAndroid Build Coastguard WorkerExpect: 100-continue
151*6236dae4SAndroid Build Coastguard Worker
152*6236dae4SAndroid Build Coastguard Worker%if hyper
153*6236dae4SAndroid Build Coastguard Worker8A
154*6236dae4SAndroid Build Coastguard Worker%else
155*6236dae4SAndroid Build Coastguard Worker8a
156*6236dae4SAndroid Build Coastguard Worker%endif
157*6236dae4SAndroid Build Coastguard Worker------------------------------
158*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="sendfile alternative"; filename="file name 2"
159*6236dae4SAndroid Build Coastguard Worker
160*6236dae4SAndroid Build Coastguard Workerd
161*6236dae4SAndroid Build Coastguard Worker1
162*6236dae4SAndroid Build Coastguard Workeru
163*6236dae4SAndroid Build Coastguard Worker1
164*6236dae4SAndroid Build Coastguard Workerm
165*6236dae4SAndroid Build Coastguard Worker1
166*6236dae4SAndroid Build Coastguard Workerm
167*6236dae4SAndroid Build Coastguard Worker1
168*6236dae4SAndroid Build Coastguard Workery
169*6236dae4SAndroid Build Coastguard Worker1
170*6236dae4SAndroid Build Coastguard Worker
171*6236dae4SAndroid Build Coastguard Worker
172*6236dae4SAndroid Build Coastguard Worker%if hyper
173*6236dae4SAndroid Build Coastguard Worker6B
174*6236dae4SAndroid Build Coastguard Worker%else
175*6236dae4SAndroid Build Coastguard Worker6b
176*6236dae4SAndroid Build Coastguard Worker%endif
177*6236dae4SAndroid Build Coastguard Worker
178*6236dae4SAndroid Build Coastguard Worker------------------------------
179*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="callbackdata"
180*6236dae4SAndroid Build Coastguard Worker
181*6236dae4SAndroid Build Coastguard Worker
182*6236dae4SAndroid Build Coastguard Worker1
183*6236dae4SAndroid Build Coastguard Workerd
184*6236dae4SAndroid Build Coastguard Worker1
185*6236dae4SAndroid Build Coastguard Workeru
186*6236dae4SAndroid Build Coastguard Worker1
187*6236dae4SAndroid Build Coastguard Workerm
188*6236dae4SAndroid Build Coastguard Worker1
189*6236dae4SAndroid Build Coastguard Workerm
190*6236dae4SAndroid Build Coastguard Worker1
191*6236dae4SAndroid Build Coastguard Workery
192*6236dae4SAndroid Build Coastguard Worker1
193*6236dae4SAndroid Build Coastguard Worker
194*6236dae4SAndroid Build Coastguard Worker
195*6236dae4SAndroid Build Coastguard Worker%if hyper
196*6236dae4SAndroid Build Coastguard Worker1B2
197*6236dae4SAndroid Build Coastguard Worker%else
198*6236dae4SAndroid Build Coastguard Worker1b2
199*6236dae4SAndroid Build Coastguard Worker%endif
200*6236dae4SAndroid Build Coastguard Worker
201*6236dae4SAndroid Build Coastguard Worker------------------------------
202*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="filename"
203*6236dae4SAndroid Build Coastguard Worker
204*6236dae4SAndroid Build Coastguard Workerpostit2.c
205*6236dae4SAndroid Build Coastguard Worker------------------------------
206*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="submit"
207*6236dae4SAndroid Build Coastguard Worker
208*6236dae4SAndroid Build Coastguard Workersend
209*6236dae4SAndroid Build Coastguard Worker------------------------------
210*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="somename"; filename="somefile.txt"
211*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/plain
212*6236dae4SAndroid Build Coastguard Worker
213*6236dae4SAndroid Build Coastguard Workerblah blah
214*6236dae4SAndroid Build Coastguard Worker--------------------------------
215*6236dae4SAndroid Build Coastguard Worker
216*6236dae4SAndroid Build Coastguard Worker0
217*6236dae4SAndroid Build Coastguard Worker
218*6236dae4SAndroid Build Coastguard Worker</protocol>
219*6236dae4SAndroid Build Coastguard Worker</verify>
220*6236dae4SAndroid Build Coastguard Worker</testcase>
221