aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/FILEFORMAT8
-rw-r--r--tests/ftpserver.pl10
-rwxr-xr-xtests/httpserver.pl20
3 files changed, 38 insertions, 0 deletions
diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT
index 40fab2406..8f4a77ebb 100644
--- a/tests/FILEFORMAT
+++ b/tests/FILEFORMAT
@@ -23,6 +23,14 @@ if the data is sent but this is what should be checked afterwards
<size>
number to return on a ftp SIZE command
</size>
+<cmd>
+special purpose server-command to control its behavior *before* the
+reply is sent
+</cmd>
+<postcmd>
+special purpose server-command to control its behavior *after* the
+reply is sent
+</oistcmd>
</reply>
<client>
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index 956ff4d85..ef3478775 100644
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -326,6 +326,7 @@ sub PORT_command {
$SIG{CHLD} = \&REAPER;
my %customreply;
+my %delayreply;
sub customize {
undef %customreply;
open(CUSTOM, "<log/ftpserver.cmd") ||
@@ -337,6 +338,9 @@ sub customize {
if($_ =~ /REPLY ([A-Z]+) (.*)/) {
$customreply{$1}=$2;
}
+ elsif($_ =~ /DELAY ([A-Z]+) (\d*)/) {
+ $delayreply{$1}=$2;
+ }
}
close(CUSTOM);
}
@@ -416,6 +420,12 @@ for ( $waitedpid = 0;
$state = $newstate;
}
+ my $delay = $delayreply{$FTPCMD};
+ if($delay) {
+ # just go sleep this many seconds!
+ sleep($delay);
+ }
+
my $text;
$text = $customreply{$FTPCMD};
my $fake = $text;
diff --git a/tests/httpserver.pl b/tests/httpserver.pl
index 9b409a9ed..2bbf839dd 100755
--- a/tests/httpserver.pl
+++ b/tests/httpserver.pl
@@ -50,6 +50,16 @@ sub REAPER {
logmsg "reaped $waitedpid" . ($? ? " with exit $?" : '');
}
+sub performcmd {
+ my @cmd = @_;
+ for(@cmd) {
+ if($_ =~ /^ *wait *(\d*)/) {
+ # instructed to sleep!
+ sleep($1);
+ }
+ }
+}
+
$SIG{CHLD} = \&REAPER;
for ( $waitedpid = 0;
@@ -164,6 +174,14 @@ for ( $waitedpid = 0;
}
loadtest("data/test$testnum");
+
+
+ my @cmd = getpart("reply", "cmd");
+ performcmd(@cmd);
+
+ # flush data:
+ $| = 1;
+
# send a custom reply to the client
my @data = getpart("reply", "data$part");
for(@data) {
@@ -172,6 +190,8 @@ for ( $waitedpid = 0;
print STDERR "OUT: $_";
}
}
+ my @postcmd = getpart("reply", "postcmd");
+ performcmd(@postcmd);
}
}
# print "Hello there, $name, it's now ", scalar localtime, "\r\n";