Home | History | Annotate | Download | only in data
      1 <testcase>
      2 # Derived from test227
      3 <info>
      4 <keywords>
      5 FTP
      6 post-quote
      7 pre-quote
      8 --libcurl
      9 </keywords>
     10 </info>
     11 # Server-side
     12 <reply>
     13 <data>
     14 data
     15     to
     16       see
     17 that FTP
     18 works
     19   so does it?
     20 </data>
     21 <servercmd>
     22 REPLY EPSV 500 no such command
     23 REPLY FAIL 500 this might not be a failure!
     24 </servercmd>
     25 </reply>
     26 
     27 # Client-side
     28 <client>
     29 <server>
     30 ftp
     31 </server>
     32  <name>
     33 --libcurl for FTP with quote ops
     34  </name>
     35  <command>
     36 ftp://%HOSTIP:%FTPPORT/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/test1405.c
     37 </command>
     38 </client>
     39 
     40 # Verify data after the test has been "shot"
     41 <verify>
     42 <protocol>
     43 USER anonymous
     44 PASS ftp (a] example.com
     45 PWD
     46 NOOP 1
     47 FAIL
     48 EPSV
     49 PASV
     50 TYPE I
     51 NOOP 2
     52 FAIL HARD
     53 SIZE 1405
     54 RETR 1405
     55 NOOP 3
     56 QUIT
     57 </protocol>
     58 <file name="log/test1405.c" mode="text">
     59 /********* Sample code generated by the curl command line tool **********
     60  * All curl_easy_setopt() options are documented at:
     61  * https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
     62  ************************************************************************/
     63 #include <curl/curl.h>
     64 
     65 int main(int argc, char *argv[])
     66 {
     67   CURLcode ret;
     68   CURL *hnd;
     69   struct curl_slist *slist1;
     70   struct curl_slist *slist2;
     71   struct curl_slist *slist3;
     72 
     73   slist1 = NULL;
     74   slist1 = curl_slist_append(slist1, "NOOP 1");
     75   slist1 = curl_slist_append(slist1, "*FAIL");
     76   slist2 = NULL;
     77   slist2 = curl_slist_append(slist2, "NOOP 3");
     78   slist3 = NULL;
     79   slist3 = curl_slist_append(slist3, "NOOP 2");
     80   slist3 = curl_slist_append(slist3, "*FAIL HARD");
     81 
     82   hnd = curl_easy_init();
     83   curl_easy_setopt(hnd, CURLOPT_URL, "ftp://%HOSTIP:%FTPPORT/1405");
     84   curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
     85   curl_easy_setopt(hnd, CURLOPT_QUOTE, slist1);
     86   curl_easy_setopt(hnd, CURLOPT_POSTQUOTE, slist2);
     87   curl_easy_setopt(hnd, CURLOPT_PREQUOTE, slist3);
     88   curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
     89   curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
     90 
     91   /* Here is a list of options the curl code used that cannot get generated
     92      as source easily. You may select to either not use them or implement
     93      them yourself.
     94 
     95   CURLOPT_WRITEDATA set to a objectpointer
     96   CURLOPT_INTERLEAVEDATA set to a objectpointer
     97   CURLOPT_WRITEFUNCTION set to a functionpointer
     98   CURLOPT_READDATA set to a objectpointer
     99   CURLOPT_READFUNCTION set to a functionpointer
    100   CURLOPT_SEEKDATA set to a objectpointer
    101   CURLOPT_SEEKFUNCTION set to a functionpointer
    102   CURLOPT_ERRORBUFFER set to a objectpointer
    103   CURLOPT_STDERR set to a objectpointer
    104   CURLOPT_DEBUGFUNCTION set to a functionpointer
    105   CURLOPT_DEBUGDATA set to a objectpointer
    106   CURLOPT_HEADERFUNCTION set to a functionpointer
    107   CURLOPT_HEADERDATA set to a objectpointer
    108 
    109   */
    110 
    111   ret = curl_easy_perform(hnd);
    112 
    113   curl_easy_cleanup(hnd);
    114   hnd = NULL;
    115   curl_slist_free_all(slist1);
    116   slist1 = NULL;
    117   curl_slist_free_all(slist2);
    118   slist2 = NULL;
    119   curl_slist_free_all(slist3);
    120   slist3 = NULL;
    121 
    122   return (int)ret;
    123 }
    124 /**** End of sample code ****/
    125 </file>
    126 <stripfile>
    127 # CURLOPT_USERAGENT and CURLOPT_MAXREDIRS requires HTTP protocol
    128 # support, IOW depends on configuration - just ignore these.
    129 $_ = '' if /CURLOPT_USERAGENT/
    130 $_ = '' if /CURLOPT_MAXREDIRS/
    131 # CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
    132 # configurations - just ignore them
    133 $_ = '' if /CURLOPT_SSL_VERIFYPEER/
    134 $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
    135 $_ = '' if /CURLOPT_HTTP_VERSION/
    136 </stripfile>
    137 </verify>
    138 </testcase>
    139