xref: /aosp_15_r20/external/curl/tests/data/test1465 (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 Worker--libcurl
7*6236dae4SAndroid Build Coastguard Worker</keywords>
8*6236dae4SAndroid Build Coastguard Worker</info>
9*6236dae4SAndroid Build Coastguard Worker
10*6236dae4SAndroid Build Coastguard Worker# Server-side
11*6236dae4SAndroid Build Coastguard Worker<reply>
12*6236dae4SAndroid Build Coastguard Worker<data>
13*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK
14*6236dae4SAndroid Build Coastguard WorkerDate: Thu, 29 Jul 2008 14:49:00 GMT
15*6236dae4SAndroid Build Coastguard WorkerServer: test-server/fake
16*6236dae4SAndroid Build Coastguard WorkerContent-Length: 0
17*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/plain
18*6236dae4SAndroid Build Coastguard WorkerConnection: close
19*6236dae4SAndroid Build Coastguard Worker
20*6236dae4SAndroid Build Coastguard Worker</data>
21*6236dae4SAndroid Build Coastguard Worker</reply>
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Worker# Client-side
24*6236dae4SAndroid Build Coastguard Worker<client>
25*6236dae4SAndroid Build Coastguard Worker<server>
26*6236dae4SAndroid Build Coastguard Workerhttp
27*6236dae4SAndroid Build Coastguard Worker</server>
28*6236dae4SAndroid Build Coastguard Worker<name>
29*6236dae4SAndroid Build Coastguard Worker--libcurl for POST with binary content
30*6236dae4SAndroid Build Coastguard Worker</name>
31*6236dae4SAndroid Build Coastguard Worker<setenv>
32*6236dae4SAndroid Build Coastguard WorkerSSL_CERT_FILE=
33*6236dae4SAndroid Build Coastguard Worker</setenv>
34*6236dae4SAndroid Build Coastguard Worker<command>
35*6236dae4SAndroid Build Coastguard Workerhttp://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER --libcurl %LOGDIR/test%TESTNUMBER.c --data-binary @%LOGDIR/%TESTNUMBER-upload
36*6236dae4SAndroid Build Coastguard Worker</command>
37*6236dae4SAndroid Build Coastguard Worker# "ab\x81""cd\0e\\\"?\r\n\t\x01""fghi%x1Ajklm%xFD"
38*6236dae4SAndroid Build Coastguard Worker<file name="%LOGDIR/%TESTNUMBER-upload" nonewline="yes">
39*6236dae4SAndroid Build Coastguard Worker%hex[ab%81cd%00e\"?%0D%0A%09%01fghi%1Ajklm%FD]hex%
40*6236dae4SAndroid Build Coastguard Worker</file>
41*6236dae4SAndroid Build Coastguard Worker</client>
42*6236dae4SAndroid Build Coastguard Worker
43*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot"
44*6236dae4SAndroid Build Coastguard Worker<verify>
45*6236dae4SAndroid Build Coastguard Worker<protocol nonewline="yes">
46*6236dae4SAndroid Build Coastguard WorkerPOST /we/want/%TESTNUMBER HTTP/1.1
47*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
48*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION
49*6236dae4SAndroid Build Coastguard WorkerAccept: */*
50*6236dae4SAndroid Build Coastguard WorkerContent-Length: 24
51*6236dae4SAndroid Build Coastguard WorkerContent-Type: application/x-www-form-urlencoded
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard Worker%hex[ab%81cd%00e\"?%0D%0A%09%01fghi%1Ajklm%FD]hex%
54*6236dae4SAndroid Build Coastguard Worker</protocol>
55*6236dae4SAndroid Build Coastguard Worker<stripfile>
56*6236dae4SAndroid Build Coastguard Worker
57*6236dae4SAndroid Build Coastguard Worker# CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
58*6236dae4SAndroid Build Coastguard Worker# configurations - just ignore them
59*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_SSL_VERIFYPEER/
60*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
61*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_HTTP_VERSION/
62*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_INTERLEAVEDATA/
63*6236dae4SAndroid Build Coastguard Worker</stripfile>
64*6236dae4SAndroid Build Coastguard Worker<file name="%LOGDIR/test%TESTNUMBER.c" mode="text">
65*6236dae4SAndroid Build Coastguard Worker/********* Sample code generated by the curl command line tool **********
66*6236dae4SAndroid Build Coastguard Worker * All curl_easy_setopt() options are documented at:
67*6236dae4SAndroid Build Coastguard Worker * https://curl.se/libcurl/c/curl_easy_setopt.html
68*6236dae4SAndroid Build Coastguard Worker ************************************************************************/
69*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h>
70*6236dae4SAndroid Build Coastguard Worker
71*6236dae4SAndroid Build Coastguard Workerint main(int argc, char *argv[])
72*6236dae4SAndroid Build Coastguard Worker{
73*6236dae4SAndroid Build Coastguard Worker  CURLcode ret;
74*6236dae4SAndroid Build Coastguard Worker  CURL *hnd;
75*6236dae4SAndroid Build Coastguard Worker
76*6236dae4SAndroid Build Coastguard Worker  hnd = curl_easy_init();
77*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L);
78*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER");
79*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "ab\201cd\000e\\\"\?\r\n\t\001fghi\x1ajklm\xfd");
80*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_POSTFIELDSIZE_LARGE, (curl_off_t)24);
81*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/%VERSION");
82*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
83*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
84*6236dae4SAndroid Build Coastguard Worker%if ftp
85*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L);
86*6236dae4SAndroid Build Coastguard Worker%endif
87*6236dae4SAndroid Build Coastguard Worker  curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
88*6236dae4SAndroid Build Coastguard Worker
89*6236dae4SAndroid Build Coastguard Worker  /* Here is a list of options the curl code used that cannot get generated
90*6236dae4SAndroid Build Coastguard Worker     as source easily. You may choose to either not use them or implement
91*6236dae4SAndroid Build Coastguard Worker     them yourself.
92*6236dae4SAndroid Build Coastguard Worker
93*6236dae4SAndroid Build Coastguard Worker  CURLOPT_WRITEDATA was set to an object pointer
94*6236dae4SAndroid Build Coastguard Worker  CURLOPT_WRITEFUNCTION was set to a function pointer
95*6236dae4SAndroid Build Coastguard Worker  CURLOPT_READDATA was set to an object pointer
96*6236dae4SAndroid Build Coastguard Worker  CURLOPT_READFUNCTION was set to a function pointer
97*6236dae4SAndroid Build Coastguard Worker  CURLOPT_SEEKDATA was set to an object pointer
98*6236dae4SAndroid Build Coastguard Worker  CURLOPT_SEEKFUNCTION was set to a function pointer
99*6236dae4SAndroid Build Coastguard Worker  CURLOPT_ERRORBUFFER was set to an object pointer
100*6236dae4SAndroid Build Coastguard Worker  CURLOPT_STDERR was set to an object pointer
101*6236dae4SAndroid Build Coastguard Worker  CURLOPT_DEBUGFUNCTION was set to a function pointer
102*6236dae4SAndroid Build Coastguard Worker  CURLOPT_DEBUGDATA was set to an object pointer
103*6236dae4SAndroid Build Coastguard Worker  CURLOPT_HEADERFUNCTION was set to a function pointer
104*6236dae4SAndroid Build Coastguard Worker  CURLOPT_HEADERDATA was set to an object pointer
105*6236dae4SAndroid Build Coastguard Worker
106*6236dae4SAndroid Build Coastguard Worker  */
107*6236dae4SAndroid Build Coastguard Worker
108*6236dae4SAndroid Build Coastguard Worker  ret = curl_easy_perform(hnd);
109*6236dae4SAndroid Build Coastguard Worker
110*6236dae4SAndroid Build Coastguard Worker  curl_easy_cleanup(hnd);
111*6236dae4SAndroid Build Coastguard Worker  hnd = NULL;
112*6236dae4SAndroid Build Coastguard Worker
113*6236dae4SAndroid Build Coastguard Worker  return (int)ret;
114*6236dae4SAndroid Build Coastguard Worker}
115*6236dae4SAndroid Build Coastguard Worker/**** End of sample code ****/
116*6236dae4SAndroid Build Coastguard Worker</file>
117*6236dae4SAndroid Build Coastguard Worker</verify>
118*6236dae4SAndroid Build Coastguard Worker</testcase>
119