improved functionality for new timeout tests
authorDaniel Stenberg <daniel@haxx.se>
Fri, 2 Nov 2001 23:09:25 +0000 (23:09 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 2 Nov 2001 23:09:25 +0000 (23:09 +0000)
tests/FILEFORMAT
tests/ftpserver.pl
tests/httpserver.pl

index 40fab24..8f4a77e 100644 (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>
index 956ff4d..ef34787 100644 (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;
index 9b409a9..2bbf839 100755 (executable)
@@ -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";