Loading tests/data/DISABLED +1 −0 Original line number Diff line number Diff line Loading @@ -3,3 +3,4 @@ # per line. # Lines starting with '#' letters are treated as comments. 811 589 tests/data/Makefile.am +1 −1 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ test542 test543 test544 test545 test546 test547 test548 test549 test550 \ test551 test552 test553 test554 test555 test556 test557 test560 test561 \ test562 test563 test564 test565 test566 test567 test568 test569 test570 \ test571 test572 test573 test574 test575 test576 test578 test579 test580 \ test581 test582 test583 test584 test585 test586 test587 test588 \ test581 test582 test583 test584 test585 test586 test587 test588 test589 \ test600 test601 test602 test603 test604 \ test605 test606 test607 test608 test609 test610 test611 test612 test613 \ test614 test615 test616 test617 test618 test619 test620 test621 test622 \ Loading tests/data/test589 0 → 100644 +68 −0 Original line number Diff line number Diff line # # For this test the server rejects the EPRT command # and code in lib589 makes use of curl_multi_timeout() # <testcase> <info> <keywords> FTP PORT STOR multi EPRT refused </keywords> </info> # Server-side <reply> <data> </data> <servercmd> REPLY EPRT 500 we don't like EPRT now </servercmd> </reply> # Client-side <client> <server> ftp </server> <tool> lib589 </tool> <name> FTP PORT upload using multi interface timeout, EPRT doesn't work </name> <command> ftp://%HOSTIP:%FTPPORT/path/589 log/upload589 </command> <file name="log/upload589"> Moooooooooooo for 589 upload this </file> </client> # Verify data after the test has been "shot" <verify> # Strip off parts of the PORT and EPRT commands that might differ <strippart> s/^PORT (.*)/PORT/ s/^EPRT \|1\|(.*)/EPRT \|1\|/ </strippart> <protocol> USER anonymous PASS ftp@example.com PWD CWD path EPRT |1| PORT TYPE I STOR 589 QUIT </protocol> <upload> Moooooooooooo for 589 upload this </upload> </verify> </testcase> tests/libtest/Makefile.inc +3 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ noinst_PROGRAMS = chkhostname \ lib579 lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 \ lib543 lib544 lib545 lib547 lib548 lib549 lib552 lib553 lib554 lib555 \ lib556 lib539 lib557 lib560 lib562 lib564 lib565 lib566 lib567 lib568 \ lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib589 chkhostname_SOURCES = chkhostname.c $(top_srcdir)/lib/curl_gethostname.c chkhostname_LDADD = @CURL_NETWORK_LIBS@ Loading Loading @@ -169,3 +169,5 @@ lib585_CPPFLAGS = $(AM_CPPFLAGS) -DLIB585 lib587_SOURCES = lib554.c $(SUPPORTFILES) lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587 lib589_SOURCES = lib589.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) tests/libtest/lib589.c 0 → 100644 +110 −0 Original line number Diff line number Diff line /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "test.h" #include <fcntl.h> #include "testutil.h" #include "warnless.h" #include "memdebug.h" #define TEST_HANG_TIMEOUT 60 * 1000 int test(char *URL) { CURL *easy = NULL; CURLM *multi = NULL; int res = 0; int running; int msgs_left; CURLMsg *msg; start_test_timing(); global_init(CURL_GLOBAL_ALL); easy_init(easy); easy_setopt(easy, CURLOPT_URL, URL); easy_setopt(easy, CURLOPT_VERBOSE, 1L); easy_setopt(easy, CURLOPT_UPLOAD, 1L); easy_setopt(easy, CURLOPT_FTPPORT, "-"); multi_init(multi); multi_add_handle(multi, easy); for(;;) { struct timeval interval; fd_set fdread; fd_set fdwrite; fd_set fdexcep; long timeout = -99; int maxfd = -99; multi_perform(multi, &running); abort_on_test_timeout(); if(!running) break; /* done */ FD_ZERO(&fdread); FD_ZERO(&fdwrite); FD_ZERO(&fdexcep); multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd); /* At this point, maxfd is guaranteed to be greater or equal than -1. */ multi_timeout(multi, &timeout); /* At this point, timeout is guaranteed to be greater or equal than -1. */ if(timeout != -1L) { interval.tv_sec = timeout/1000; interval.tv_usec = (timeout%1000)*1000; } else { interval.tv_sec = 5; interval.tv_usec = 0; } select_test(maxfd+1, &fdread, &fdwrite, &fdexcep, &interval); abort_on_test_timeout(); } msg = curl_multi_info_read(multi, &msgs_left); if(msg) res = msg->data.result; test_cleanup: /* undocumented cleanup sequence - type UA */ curl_multi_cleanup(multi); curl_easy_cleanup(easy); curl_global_cleanup(); return res; } Loading
tests/data/DISABLED +1 −0 Original line number Diff line number Diff line Loading @@ -3,3 +3,4 @@ # per line. # Lines starting with '#' letters are treated as comments. 811 589
tests/data/Makefile.am +1 −1 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ test542 test543 test544 test545 test546 test547 test548 test549 test550 \ test551 test552 test553 test554 test555 test556 test557 test560 test561 \ test562 test563 test564 test565 test566 test567 test568 test569 test570 \ test571 test572 test573 test574 test575 test576 test578 test579 test580 \ test581 test582 test583 test584 test585 test586 test587 test588 \ test581 test582 test583 test584 test585 test586 test587 test588 test589 \ test600 test601 test602 test603 test604 \ test605 test606 test607 test608 test609 test610 test611 test612 test613 \ test614 test615 test616 test617 test618 test619 test620 test621 test622 \ Loading
tests/data/test589 0 → 100644 +68 −0 Original line number Diff line number Diff line # # For this test the server rejects the EPRT command # and code in lib589 makes use of curl_multi_timeout() # <testcase> <info> <keywords> FTP PORT STOR multi EPRT refused </keywords> </info> # Server-side <reply> <data> </data> <servercmd> REPLY EPRT 500 we don't like EPRT now </servercmd> </reply> # Client-side <client> <server> ftp </server> <tool> lib589 </tool> <name> FTP PORT upload using multi interface timeout, EPRT doesn't work </name> <command> ftp://%HOSTIP:%FTPPORT/path/589 log/upload589 </command> <file name="log/upload589"> Moooooooooooo for 589 upload this </file> </client> # Verify data after the test has been "shot" <verify> # Strip off parts of the PORT and EPRT commands that might differ <strippart> s/^PORT (.*)/PORT/ s/^EPRT \|1\|(.*)/EPRT \|1\|/ </strippart> <protocol> USER anonymous PASS ftp@example.com PWD CWD path EPRT |1| PORT TYPE I STOR 589 QUIT </protocol> <upload> Moooooooooooo for 589 upload this </upload> </verify> </testcase>
tests/libtest/Makefile.inc +3 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ noinst_PROGRAMS = chkhostname \ lib579 lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 \ lib543 lib544 lib545 lib547 lib548 lib549 lib552 lib553 lib554 lib555 \ lib556 lib539 lib557 lib560 lib562 lib564 lib565 lib566 lib567 lib568 \ lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib589 chkhostname_SOURCES = chkhostname.c $(top_srcdir)/lib/curl_gethostname.c chkhostname_LDADD = @CURL_NETWORK_LIBS@ Loading Loading @@ -169,3 +169,5 @@ lib585_CPPFLAGS = $(AM_CPPFLAGS) -DLIB585 lib587_SOURCES = lib554.c $(SUPPORTFILES) lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587 lib589_SOURCES = lib589.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
tests/libtest/lib589.c 0 → 100644 +110 −0 Original line number Diff line number Diff line /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "test.h" #include <fcntl.h> #include "testutil.h" #include "warnless.h" #include "memdebug.h" #define TEST_HANG_TIMEOUT 60 * 1000 int test(char *URL) { CURL *easy = NULL; CURLM *multi = NULL; int res = 0; int running; int msgs_left; CURLMsg *msg; start_test_timing(); global_init(CURL_GLOBAL_ALL); easy_init(easy); easy_setopt(easy, CURLOPT_URL, URL); easy_setopt(easy, CURLOPT_VERBOSE, 1L); easy_setopt(easy, CURLOPT_UPLOAD, 1L); easy_setopt(easy, CURLOPT_FTPPORT, "-"); multi_init(multi); multi_add_handle(multi, easy); for(;;) { struct timeval interval; fd_set fdread; fd_set fdwrite; fd_set fdexcep; long timeout = -99; int maxfd = -99; multi_perform(multi, &running); abort_on_test_timeout(); if(!running) break; /* done */ FD_ZERO(&fdread); FD_ZERO(&fdwrite); FD_ZERO(&fdexcep); multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd); /* At this point, maxfd is guaranteed to be greater or equal than -1. */ multi_timeout(multi, &timeout); /* At this point, timeout is guaranteed to be greater or equal than -1. */ if(timeout != -1L) { interval.tv_sec = timeout/1000; interval.tv_usec = (timeout%1000)*1000; } else { interval.tv_sec = 5; interval.tv_usec = 0; } select_test(maxfd+1, &fdread, &fdwrite, &fdexcep, &interval); abort_on_test_timeout(); } msg = curl_multi_info_read(multi, &msgs_left); if(msg) res = msg->data.result; test_cleanup: /* undocumented cleanup sequence - type UA */ curl_multi_cleanup(multi); curl_easy_cleanup(easy); curl_global_cleanup(); return res; }