aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/data/test1904
-rwxr-xr-xtests/runtests.pl26
2 files changed, 24 insertions, 6 deletions
diff --git a/tests/data/test190 b/tests/data/test190
index 78b179e82..ab241a760 100644
--- a/tests/data/test190
+++ b/tests/data/test190
@@ -15,10 +15,10 @@ ftp
FTP download with strict timeout and slow CWD
</name>
<command>
-ftp://%HOSTIP:%FTPPORT/path/to/file/190 -m 3
+ftp://%HOSTIP:%FTPPORT/path/to/file/190 -m %FTPTIME2
</command>
<file name="log/ftpserver.cmd">
-DELAY CWD 15
+DELAY CWD 60
</file>
</client>
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 388113b06..d53989896 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -82,7 +82,7 @@ my $TFTP6PIDFILE=".tftp6.pid";
# invoke perl like this:
my $perl="perl -I$srcdir";
-my $server_response_maxtime=8;
+my $server_response_maxtime=13;
# this gets set if curl is compiled with debugging:
my $curl_debug=0;
@@ -99,6 +99,7 @@ my $valgrind = checkcmd("valgrind");
my $valgrind_logfile="--logfile";
my $start;
my $forkserver=0;
+my $ftpchecktime; # time it took to verify our test FTP server
my $valgrind_tool;
if($valgrind) {
@@ -473,9 +474,6 @@ sub verifyftp {
logmsg "RUN: $cmd\n" if($verbose);
my $line;
- # if this took more than 2 secs, we assume it "hung" on a weird server
- my $took = time()-$time;
-
foreach $line (@data) {
if ( $line =~ /WE ROOLZ: (\d+)/ ) {
# this is our test server with a known pid!
@@ -488,6 +486,15 @@ sub verifyftp {
logmsg "RUN: Unknown server on our FTP port: $port\n";
return 0;
}
+ # we can/should use the time it took to verify the FTP server as a measure
+ # on how fast/slow this host/FTP is.
+ my $took = time()-$time;
+
+ if($verbose) {
+ logmsg "RUN: Verifying our test FTP server took $took seconds!\n";
+ }
+ $ftpchecktime = $took?$took:1; # make sure it never is zero
+
return $pid;
}
@@ -1093,6 +1100,17 @@ sub subVariables {
$$thing =~ s/%PWD/$pwd/g;
$$thing =~ s/%TFTPPORT/$TFTPPORT/g;
$$thing =~ s/%TFTP6PORT/$TFTP6PORT/g;
+
+ # The purpose of FTPTIME2 and FTPTIME3 is to provide times that can be
+ # used for time-out tests and that whould work on most hosts as these
+ # adjust for the startup/check time for this particular host. We needed
+ # to do this to make the test suite run better on very slow hosts.
+
+ my $ftp2 = $ftpchecktime * 2;
+ my $ftp3 = $ftpchecktime * 3;
+
+ $$thing =~ s/%FTPTIME2/$ftp2/g;
+ $$thing =~ s/%FTPTIME3/$ftp3/g;
}
sub fixarray {