diff options
author | Yang Tse <yangsita@gmail.com> | 2011-11-11 19:46:44 +0100 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2011-11-11 19:46:44 +0100 |
commit | 082e8a3b03d2c47d237994675bface127ab23c29 (patch) | |
tree | 66030bb59a9fcd22104e1af8b8f0b382adc92431 /tests | |
parent | fd765c627fc3d0e3d6dad033833b7f9eb82f2d4c (diff) |
Active mode FTP test cases with server not establishing data connection
591 -> FTP multi PORT and 425 on upload
592 -> FTP multi PORT and 421 on upload
593 -> FTP multi PORT upload, no data conn and no transient neg. reply
594 -> FTP multi PORT upload, no data conn and no positive prelim. reply
1206 -> FTP PORT and 425 on download
1207 -> FTP PORT and 421 on download
1208 -> FTP PORT download, no data conn and no transient negative reply
1209 -> FTP PORT download, no data conn and no positive preliminary reply
Diffstat (limited to 'tests')
-rw-r--r-- | tests/data/DISABLED | 9 | ||||
-rw-r--r-- | tests/data/Makefile.am | 7 | ||||
-rw-r--r-- | tests/data/test1206 | 53 | ||||
-rw-r--r-- | tests/data/test1207 | 53 | ||||
-rw-r--r-- | tests/data/test1208 | 53 | ||||
-rw-r--r-- | tests/data/test1209 | 53 | ||||
-rw-r--r-- | tests/data/test591 (renamed from tests/data/test589) | 24 | ||||
-rw-r--r-- | tests/data/test592 | 72 | ||||
-rw-r--r-- | tests/data/test593 | 72 | ||||
-rw-r--r-- | tests/data/test594 | 72 | ||||
-rw-r--r-- | tests/libtest/Makefile.inc | 8 | ||||
-rw-r--r-- | tests/libtest/lib591.c (renamed from tests/libtest/lib589.c) | 9 |
12 files changed, 465 insertions, 20 deletions
diff --git a/tests/data/DISABLED b/tests/data/DISABLED index db9bc6eb2..b0637dcbe 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -3,4 +3,11 @@ # per line. # Lines starting with '#' letters are treated as comments. 811 -589 +591 +592 +593 +594 +1206 +1207 +1208 +1209 diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index ff6c1d3f8..fdfa75547 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -47,8 +47,8 @@ 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 test589 \ -test590 \ +test581 test582 test583 test584 test585 test586 test587 test588 test590 \ +test591 test592 test593 test594 \ test600 test601 test602 test603 test604 \ test605 test606 test607 test608 test609 test610 test611 test612 test613 \ test614 test615 test616 test617 test618 test619 test620 test621 test622 \ @@ -75,7 +75,8 @@ test1102 test1103 test1104 test1105 test1106 test1107 test1108 test1109 \ test1110 test1111 test1112 test1113 test1114 test1115 test1116 test1117 \ test1118 test1119 test1120 test1121 test1122 test1123 test1124 test1125 \ test1126 test1127 test1128 test1129 test1130 test1131 \ -test1200 test1201 test1202 test1203 test1204 test1205 \ +test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \ +test1208 test1209 \ test1300 test1301 test1302 test1303 test1304 test1305 \ test1306 test1307 test1308 test1309 test1310 test1311 test1312 test1313 \ test1314 \ diff --git a/tests/data/test1206 b/tests/data/test1206 new file mode 100644 index 000000000..862c4bdf4 --- /dev/null +++ b/tests/data/test1206 @@ -0,0 +1,53 @@ +<testcase> +<info> +<keywords> +FTP +PORT +RETR +NODATACONN425 +</keywords> +</info> +# Server-side +<reply> +<data nocheck="yes"> +some bytes +</data> +<servercmd> +NODATACONN425 +</servercmd> +</reply> + +# Client-side +<client> +<server> +ftp +</server> + <name> +FTP PORT and 425 on download + </name> + <command> +--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1206 -P - +</command> + +</client> + +# Verify data after the test has been "shot" +<verify> +<strippart> +s/^EPRT \|1\|(.*)/EPRT \|1\|/ +</strippart> +<protocol> +USER anonymous
+PASS ftp@example.com
+PWD
+EPRT |1| +TYPE I
+SIZE 1206
+RETR 1206
+QUIT
+</protocol> +<errorcode> +19 +</errorcode> +</verify> +</testcase> diff --git a/tests/data/test1207 b/tests/data/test1207 new file mode 100644 index 000000000..acc6427b7 --- /dev/null +++ b/tests/data/test1207 @@ -0,0 +1,53 @@ +<testcase> +<info> +<keywords> +FTP +PORT +RETR +NODATACONN421 +</keywords> +</info> +# Server-side +<reply> +<data nocheck="yes"> +some bytes +</data> +<servercmd> +NODATACONN421 +</servercmd> +</reply> + +# Client-side +<client> +<server> +ftp +</server> + <name> +FTP PORT and 421 on download + </name> + <command> +--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1207 -P - +</command> + +</client> + +# Verify data after the test has been "shot" +<verify> +<strippart> +s/^EPRT \|1\|(.*)/EPRT \|1\|/ +</strippart> +<protocol> +USER anonymous
+PASS ftp@example.com
+PWD
+EPRT |1| +TYPE I
+SIZE 1207
+RETR 1207
+QUIT
+</protocol> +<errorcode> +19 +</errorcode> +</verify> +</testcase> diff --git a/tests/data/test1208 b/tests/data/test1208 new file mode 100644 index 000000000..7a81eecd9 --- /dev/null +++ b/tests/data/test1208 @@ -0,0 +1,53 @@ +<testcase> +<info> +<keywords> +FTP +PORT +RETR +NODATACONN150 +</keywords> +</info> +# Server-side +<reply> +<data nocheck="yes"> +some bytes +</data> +<servercmd> +NODATACONN150 +</servercmd> +</reply> + +# Client-side +<client> +<server> +ftp +</server> + <name> +FTP PORT download, no data conn and no transient negative reply + </name> + <command> +--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1208 -P - +</command> + +</client> + +# Verify data after the test has been "shot" +<verify> +<strippart> +s/^EPRT \|1\|(.*)/EPRT \|1\|/ +</strippart> +<protocol> +USER anonymous
+PASS ftp@example.com
+PWD
+EPRT |1| +TYPE I
+SIZE 1208
+RETR 1208
+QUIT
+</protocol> +<errorcode> +19 +</errorcode> +</verify> +</testcase> diff --git a/tests/data/test1209 b/tests/data/test1209 new file mode 100644 index 000000000..a106f09cf --- /dev/null +++ b/tests/data/test1209 @@ -0,0 +1,53 @@ +<testcase> +<info> +<keywords> +FTP +PORT +RETR +NODATACONN +</keywords> +</info> +# Server-side +<reply> +<data nocheck="yes"> +some bytes +</data> +<servercmd> +NODATACONN +</servercmd> +</reply> + +# Client-side +<client> +<server> +ftp +</server> + <name> +FTP PORT download, no data conn and no positive preliminary reply + </name> + <command> +--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1209 -P - +</command> + +</client> + +# Verify data after the test has been "shot" +<verify> +<strippart> +s/^EPRT \|1\|(.*)/EPRT \|1\|/ +</strippart> +<protocol> +USER anonymous
+PASS ftp@example.com
+PWD
+EPRT |1| +TYPE I
+SIZE 1209
+RETR 1209
+QUIT
+</protocol> +<errorcode> +19 +</errorcode> +</verify> +</testcase> diff --git a/tests/data/test589 b/tests/data/test591 index 29cb97217..0d4bac7dd 100644 --- a/tests/data/test589 +++ b/tests/data/test591 @@ -1,6 +1,7 @@ # -# For this test the server rejects the EPRT command -# and code in lib589 makes use of curl_multi_timeout() +# For this test the server rejects the EPRT command, +# code in lib591 makes use of curl_multi_timeout() +# and server does not establish data connection. # <testcase> <info> @@ -10,6 +11,7 @@ PORT STOR multi EPRT refused +NODATACONN425 </keywords> </info> @@ -18,6 +20,7 @@ EPRT refused <data> </data> <servercmd> +NODATACONN425 REPLY EPRT 500 we don't like EPRT now </servercmd> </reply> @@ -28,16 +31,16 @@ REPLY EPRT 500 we don't like EPRT now ftp </server> <tool> -lib589 +lib591 </tool> <name> -FTP PORT upload using multi interface timeout, EPRT doesn't work +FTP multi PORT and 425 on upload </name> <command> -ftp://%HOSTIP:%FTPPORT/path/589 log/upload589 +ftp://%HOSTIP:%FTPPORT/path/591 %FTPTIME2 log/upload591 </command> -<file name="log/upload589"> -Moooooooooooo for 589 +<file name="log/upload591"> +Moooooooooooo for 591 upload this </file> </client> @@ -57,12 +60,13 @@ CWD path EPRT |1| PORT TYPE I
-STOR 589
+STOR 591
QUIT
</protocol> +<errorcode> +28 +</errorcode> <upload> -Moooooooooooo for 589 - upload this </upload> </verify> </testcase> diff --git a/tests/data/test592 b/tests/data/test592 new file mode 100644 index 000000000..4af04e31c --- /dev/null +++ b/tests/data/test592 @@ -0,0 +1,72 @@ +# +# For this test the server rejects the EPRT command, +# code in lib591 makes use of curl_multi_timeout() +# and server does not establish data connection. +# +<testcase> +<info> +<keywords> +FTP +PORT +STOR +multi +EPRT refused +NODATACONN421 +</keywords> +</info> + +# Server-side +<reply> +<data> +</data> +<servercmd> +NODATACONN421 +REPLY EPRT 500 we don't like EPRT now +</servercmd> +</reply> + +# Client-side +<client> +<server> +ftp +</server> +<tool> +lib591 +</tool> + <name> +FTP multi PORT and 421 on upload + </name> + <command> +ftp://%HOSTIP:%FTPPORT/path/592 %FTPTIME2 log/upload592 +</command> +<file name="log/upload592"> +Moooooooooooo for 592 + 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 592
+QUIT
+</protocol> +<errorcode> +28 +</errorcode> +<upload> +</upload> +</verify> +</testcase> diff --git a/tests/data/test593 b/tests/data/test593 new file mode 100644 index 000000000..811bf93c6 --- /dev/null +++ b/tests/data/test593 @@ -0,0 +1,72 @@ +# +# For this test the server rejects the EPRT command, +# code in lib591 makes use of curl_multi_timeout() +# and server does not establish data connection. +# +<testcase> +<info> +<keywords> +FTP +PORT +STOR +multi +EPRT refused +NODATACONN150 +</keywords> +</info> + +# Server-side +<reply> +<data> +</data> +<servercmd> +NODATACONN150 +REPLY EPRT 500 we don't like EPRT now +</servercmd> +</reply> + +# Client-side +<client> +<server> +ftp +</server> +<tool> +lib591 +</tool> + <name> +FTP multi PORT upload, no data conn and no transient neg. reply + </name> + <command> +ftp://%HOSTIP:%FTPPORT/path/593 %FTPTIME2 log/upload593 +</command> +<file name="log/upload593"> +Moooooooooooo for 593 + 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 593
+QUIT
+</protocol> +<errorcode> +28 +</errorcode> +<upload> +</upload> +</verify> +</testcase> diff --git a/tests/data/test594 b/tests/data/test594 new file mode 100644 index 000000000..77b5864d7 --- /dev/null +++ b/tests/data/test594 @@ -0,0 +1,72 @@ +# +# For this test the server rejects the EPRT command, +# code in lib591 makes use of curl_multi_timeout() +# and server does not establish data connection. +# +<testcase> +<info> +<keywords> +FTP +PORT +STOR +multi +EPRT refused +NODATACONN +</keywords> +</info> + +# Server-side +<reply> +<data> +</data> +<servercmd> +NODATACONN +REPLY EPRT 500 we don't like EPRT now +</servercmd> +</reply> + +# Client-side +<client> +<server> +ftp +</server> +<tool> +lib591 +</tool> + <name> +FTP multi PORT upload, no data conn and no positive prelim. reply + </name> + <command> +ftp://%HOSTIP:%FTPPORT/path/594 %FTPTIME2 log/upload594 +</command> +<file name="log/upload594"> +Moooooooooooo for 594 + 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 594
+QUIT
+</protocol> +<errorcode> +28 +</errorcode> +<upload> +</upload> +</verify> +</testcase> diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc index 86e5e9999..4a7f78cf2 100644 --- a/tests/libtest/Makefile.inc +++ b/tests/libtest/Makefile.inc @@ -15,8 +15,8 @@ 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 lib589 \ - lib590 + lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib590 \ + lib591 chkhostname_SOURCES = chkhostname.c $(top_srcdir)/lib/curl_gethostname.c chkhostname_LDADD = @CURL_NETWORK_LIBS@ @@ -171,6 +171,6 @@ lib585_CPPFLAGS = $(AM_CPPFLAGS) -DLIB585 lib587_SOURCES = lib554.c $(SUPPORTFILES) lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587 -lib589_SOURCES = lib589.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) - lib590_SOURCES = lib590.c $(SUPPORTFILES) + +lib591_SOURCES = lib591.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) diff --git a/tests/libtest/lib589.c b/tests/libtest/lib591.c index 9ce36ed15..101f2db26 100644 --- a/tests/libtest/lib589.c +++ b/tests/libtest/lib591.c @@ -21,6 +21,8 @@ ***************************************************************************/ #include "test.h" +/* lib591 is used for test cases 591, 592, 593 and 594 */ + #include <fcntl.h> #include "testutil.h" @@ -42,12 +44,12 @@ int test(char *URL) start_test_timing(); - upload = fopen(libtest_arg2, "rb"); + upload = fopen(libtest_arg3, "rb"); if(!upload) { error = ERRNO; fprintf(stderr, "fopen() failed with error: %d (%s)\n", error, strerror(error)); - fprintf(stderr, "Error opening file: (%s)\n", libtest_arg2); + fprintf(stderr, "Error opening file: (%s)\n", libtest_arg3); return TEST_ERR_FOPEN; } @@ -74,6 +76,9 @@ int test(char *URL) /* use active mode FTP */ easy_setopt(easy, CURLOPT_FTPPORT, "-"); + /* server connection timeout */ + easy_setopt(easy, CURLOPT_CONNECTTIMEOUT, strtol(libtest_arg2, NULL, 10)); + multi_init(multi); multi_add_handle(multi, easy); |