From 082e8a3b03d2c47d237994675bface127ab23c29 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Fri, 11 Nov 2011 19:46:44 +0100 Subject: [PATCH] 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 --- tests/data/DISABLED | 9 +++- tests/data/Makefile.am | 7 +-- tests/data/test1206 | 53 ++++++++++++++++++++ tests/data/test1207 | 53 ++++++++++++++++++++ tests/data/test1208 | 53 ++++++++++++++++++++ tests/data/test1209 | 53 ++++++++++++++++++++ tests/data/{test589 => test591} | 24 ++++++---- tests/data/test592 | 72 ++++++++++++++++++++++++++++ tests/data/test593 | 72 ++++++++++++++++++++++++++++ tests/data/test594 | 72 ++++++++++++++++++++++++++++ tests/libtest/Makefile.inc | 8 ++-- tests/libtest/{lib589.c => lib591.c} | 9 +++- 12 files changed, 465 insertions(+), 20 deletions(-) create mode 100644 tests/data/test1206 create mode 100644 tests/data/test1207 create mode 100644 tests/data/test1208 create mode 100644 tests/data/test1209 rename tests/data/{test589 => test591} (64%) create mode 100644 tests/data/test592 create mode 100644 tests/data/test593 create mode 100644 tests/data/test594 rename tests/libtest/{lib589.c => lib591.c} (92%) diff --git a/tests/data/DISABLED b/tests/data/DISABLED index db9bc6eb24..b0637dcbe4 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 ff6c1d3f8f..fdfa75547a 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 0000000000..862c4bdf42 --- /dev/null +++ b/tests/data/test1206 @@ -0,0 +1,53 @@ + + + +FTP +PORT +RETR +NODATACONN425 + + +# Server-side + + +some bytes + + +NODATACONN425 + + + +# Client-side + + +ftp + + +FTP PORT and 425 on download + + +--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1206 -P - + + + + +# Verify data after the test has been "shot" + + +s/^EPRT \|1\|(.*)/EPRT \|1\|/ + + +USER anonymous +PASS ftp@example.com +PWD +EPRT |1| +TYPE I +SIZE 1206 +RETR 1206 +QUIT + + +19 + + + diff --git a/tests/data/test1207 b/tests/data/test1207 new file mode 100644 index 0000000000..acc6427b79 --- /dev/null +++ b/tests/data/test1207 @@ -0,0 +1,53 @@ + + + +FTP +PORT +RETR +NODATACONN421 + + +# Server-side + + +some bytes + + +NODATACONN421 + + + +# Client-side + + +ftp + + +FTP PORT and 421 on download + + +--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1207 -P - + + + + +# Verify data after the test has been "shot" + + +s/^EPRT \|1\|(.*)/EPRT \|1\|/ + + +USER anonymous +PASS ftp@example.com +PWD +EPRT |1| +TYPE I +SIZE 1207 +RETR 1207 +QUIT + + +19 + + + diff --git a/tests/data/test1208 b/tests/data/test1208 new file mode 100644 index 0000000000..7a81eecd91 --- /dev/null +++ b/tests/data/test1208 @@ -0,0 +1,53 @@ + + + +FTP +PORT +RETR +NODATACONN150 + + +# Server-side + + +some bytes + + +NODATACONN150 + + + +# Client-side + + +ftp + + +FTP PORT download, no data conn and no transient negative reply + + +--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1208 -P - + + + + +# Verify data after the test has been "shot" + + +s/^EPRT \|1\|(.*)/EPRT \|1\|/ + + +USER anonymous +PASS ftp@example.com +PWD +EPRT |1| +TYPE I +SIZE 1208 +RETR 1208 +QUIT + + +19 + + + diff --git a/tests/data/test1209 b/tests/data/test1209 new file mode 100644 index 0000000000..a106f09cfd --- /dev/null +++ b/tests/data/test1209 @@ -0,0 +1,53 @@ + + + +FTP +PORT +RETR +NODATACONN + + +# Server-side + + +some bytes + + +NODATACONN + + + +# Client-side + + +ftp + + +FTP PORT download, no data conn and no positive preliminary reply + + +--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1209 -P - + + + + +# Verify data after the test has been "shot" + + +s/^EPRT \|1\|(.*)/EPRT \|1\|/ + + +USER anonymous +PASS ftp@example.com +PWD +EPRT |1| +TYPE I +SIZE 1209 +RETR 1209 +QUIT + + +19 + + + diff --git a/tests/data/test589 b/tests/data/test591 similarity index 64% rename from tests/data/test589 rename to tests/data/test591 index 29cb972170..0d4bac7dd7 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. # @@ -10,6 +11,7 @@ PORT STOR multi EPRT refused +NODATACONN425 @@ -18,6 +20,7 @@ EPRT refused +NODATACONN425 REPLY EPRT 500 we don't like EPRT now @@ -28,16 +31,16 @@ REPLY EPRT 500 we don't like EPRT now ftp -lib589 +lib591 -FTP PORT upload using multi interface timeout, EPRT doesn't work +FTP multi PORT and 425 on upload -ftp://%HOSTIP:%FTPPORT/path/589 log/upload589 +ftp://%HOSTIP:%FTPPORT/path/591 %FTPTIME2 log/upload591 - -Moooooooooooo for 589 + +Moooooooooooo for 591 upload this @@ -57,12 +60,13 @@ CWD path EPRT |1| PORT TYPE I -STOR 589 +STOR 591 QUIT + +28 + -Moooooooooooo for 589 - upload this diff --git a/tests/data/test592 b/tests/data/test592 new file mode 100644 index 0000000000..4af04e31c7 --- /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. +# + + + +FTP +PORT +STOR +multi +EPRT refused +NODATACONN421 + + + +# Server-side + + + + +NODATACONN421 +REPLY EPRT 500 we don't like EPRT now + + + +# Client-side + + +ftp + + +lib591 + + +FTP multi PORT and 421 on upload + + +ftp://%HOSTIP:%FTPPORT/path/592 %FTPTIME2 log/upload592 + + +Moooooooooooo for 592 + upload this + + + +# Verify data after the test has been "shot" + +# Strip off parts of the PORT and EPRT commands that might differ + +s/^PORT (.*)/PORT/ +s/^EPRT \|1\|(.*)/EPRT \|1\|/ + + +USER anonymous +PASS ftp@example.com +PWD +CWD path +EPRT |1| +PORT +TYPE I +STOR 592 +QUIT + + +28 + + + + + diff --git a/tests/data/test593 b/tests/data/test593 new file mode 100644 index 0000000000..811bf93c6c --- /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. +# + + + +FTP +PORT +STOR +multi +EPRT refused +NODATACONN150 + + + +# Server-side + + + + +NODATACONN150 +REPLY EPRT 500 we don't like EPRT now + + + +# Client-side + + +ftp + + +lib591 + + +FTP multi PORT upload, no data conn and no transient neg. reply + + +ftp://%HOSTIP:%FTPPORT/path/593 %FTPTIME2 log/upload593 + + +Moooooooooooo for 593 + upload this + + + +# Verify data after the test has been "shot" + +# Strip off parts of the PORT and EPRT commands that might differ + +s/^PORT (.*)/PORT/ +s/^EPRT \|1\|(.*)/EPRT \|1\|/ + + +USER anonymous +PASS ftp@example.com +PWD +CWD path +EPRT |1| +PORT +TYPE I +STOR 593 +QUIT + + +28 + + + + + diff --git a/tests/data/test594 b/tests/data/test594 new file mode 100644 index 0000000000..77b5864d76 --- /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. +# + + + +FTP +PORT +STOR +multi +EPRT refused +NODATACONN + + + +# Server-side + + + + +NODATACONN +REPLY EPRT 500 we don't like EPRT now + + + +# Client-side + + +ftp + + +lib591 + + +FTP multi PORT upload, no data conn and no positive prelim. reply + + +ftp://%HOSTIP:%FTPPORT/path/594 %FTPTIME2 log/upload594 + + +Moooooooooooo for 594 + upload this + + + +# Verify data after the test has been "shot" + +# Strip off parts of the PORT and EPRT commands that might differ + +s/^PORT (.*)/PORT/ +s/^EPRT \|1\|(.*)/EPRT \|1\|/ + + +USER anonymous +PASS ftp@example.com +PWD +CWD path +EPRT |1| +PORT +TYPE I +STOR 594 +QUIT + + +28 + + + + + diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc index 86e5e99993..4a7f78cf20 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 similarity index 92% rename from tests/libtest/lib589.c rename to tests/libtest/lib591.c index 9ce36ed154..101f2db261 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 #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);