From 16ddb09cb45266fcce11a1c1b1eabf351764ef39 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Tue, 1 Apr 2003 08:41:49 +0000
Subject: [PATCH] support the new <killserver> tag

---
 tests/runtests.pl | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/tests/runtests.pl b/tests/runtests.pl
index eaaf9dff01..f6932f4dca 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -83,6 +83,8 @@ my $listonly;     # only list the tests
 
 my $pwd;          # current working directory
 
+my %run;	  # running server
+
 chomp($pwd = `pwd`);
 
 # enable memory debugging if curl is compiled with it
@@ -202,7 +204,7 @@ sub runhttpserver {
         # verify that our server is up and running:
         my $data=`$CURL --silent -i $HOSTIP:$HOSTPORT/verifiedserver 2>/dev/null`;
 
-        if ( $data !~ /WE ROOLZ/ ) {
+        if ( $data !~ /WE ROOLZ: (\d+)/ ) {
             sleep(1);
             next;
         }
@@ -308,7 +310,10 @@ sub runftpserver {
         # verify that our server is up and running:
         my $data=`$CURL --silent -i ftp://$HOSTIP:$FTPPORT/verifiedserver 2>/dev/null`;
 
-        if ( $data !~ /WE ROOLZ/ ) {
+        if ( $data !~ /WE ROOLZ: (\d+)/ ) {
+            if($verbose) {
+                print STDERR "RUN: Retrying FTP server existance in 1 sec\n";
+            }
             sleep(1);
             next;
         }
@@ -839,6 +844,19 @@ sub singletest {
 
     unlink($FTPDCMD); # remove the instructions for this test
 
+    my @what = getpart("client", "killserver");
+    for(@what) {
+        my $serv = $_;
+        chomp $serv;
+        if($run{$serv}) {
+            stopserver($run{$serv}); # the pid file is in the hash table
+            $run{$serv}=""; # clear it
+        }
+        else {
+            print STDERR "RUN: The $serv server is not running\n";
+        }
+    }
+
     if($memory_debug) {
         if(! -f $memdump) {
             print "\n** ALERT! memory debuggin without any output file?\n";
@@ -873,8 +891,6 @@ sub singletest {
     return 0;
 }
 
-my %run;
-
 ##############################################################################
 # This function makes sure the right set of server is running for the
 # specified test case. This is a useful design when we run single tests as not
-- 
GitLab