improved functionality for new timeout tests

This commit is contained in:
Daniel Stenberg 2001-11-02 23:09:25 +00:00
parent f34573c8e2
commit 3bfa06c9a2
3 changed files with 38 additions and 0 deletions

View File

@ -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>

View File

@ -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;

View File

@ -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";