diff options
-rw-r--r-- | tests/FILEFORMAT | 8 | ||||
-rw-r--r-- | tests/ftpserver.pl | 10 | ||||
-rwxr-xr-x | tests/httpserver.pl | 20 |
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"; |