diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ftp.pm | 27 | ||||
-rw-r--r-- | tests/ftpserver.pl | 2 | ||||
-rwxr-xr-x | tests/runtests.pl | 58 |
3 files changed, 58 insertions, 29 deletions
diff --git a/tests/ftp.pm b/tests/ftp.pm index 57c45cfc9..41788fb57 100644 --- a/tests/ftp.pm +++ b/tests/ftp.pm @@ -147,7 +147,7 @@ sub checkalivepidfile { # how many times a pid is repeated it will only be signalled once. # sub signalpids { - my ($signal, $pids)=@_; + my ($signal, $pids, $verbose)=@_; if((not defined $signal) || (not defined $pids)) { return; @@ -155,6 +155,7 @@ sub signalpids { if($pids !~ /\s+/) { # avoid sorting if only one pid if(checkalivepid($pids) > 0) { + printf ("* pid $pids signalled ($signal)\n") if($verbose); kill($signal, $pids); } return; @@ -166,6 +167,7 @@ sub signalpids { if($prev != $pid) { $prev = $pid; if(checkalivepid($pid) > 0) { + printf ("* pid $pid signalled ($signal)\n") if($verbose); kill($signal, $pid); } } @@ -180,11 +182,11 @@ sub signalpids { # with that pid is actually alive. # sub signalpidfile { - my ($signal, $pidfile)=@_; + my ($signal, $pidfile, $verbose)=@_; my $pid = pidfromfile($pidfile); if($pid > 0) { - signalpids($signal, $pid); + signalpids($signal, $pid, $verbose); } } @@ -257,16 +259,16 @@ sub waitalivepidfile { # any of them in DEFAULT_TIMEOUT_STOP seconds then it returns 0. # sub stopprocess { - my ($pids)=@_; + my ($pids, $verbose)=@_; if(not defined $pids) { return 1; } - signalpids("KILL", $pids); + signalpids("KILL", $pids, $verbose); if(waitdeadpid($pids, $ONE_HALF_STOP_TIMEOUT) == 0) { - signalpids("KILL", $pids); + signalpids("KILL", $pids, $verbose); if(waitdeadpid($pids, $ONE_THIRD_STOP_TIMEOUT) == 0) { - signalpids("KILL", $pids); + signalpids("KILL", $pids, $verbose); if(waitdeadpid($pids, $ONE_SIXTH_STOP_TIMEOUT) == 0) { return 0; # at least one pid is still alive !!! } @@ -284,7 +286,7 @@ sub stopprocess { # returns 0. # sub stopprocesspidfile { - my ($pidfile)=@_; + my ($pidfile, $verbose)=@_; if(not defined $pidfile) { return 1; @@ -292,7 +294,7 @@ sub stopprocesspidfile { my $ret = 1; # assume success stopping it my $pid = checkalivepidfile($pidfile); if($pid > 0) { - $ret = stopprocess($pid); + $ret = stopprocess($pid, $verbose); } unlinkpidfiles($pidfile); return $ret; @@ -306,7 +308,7 @@ sub stopprocesspidfile { # to stop it in DEFAULT_TIMEOUT_STOP seconds then it returns 0. # sub ftpkillslave { - my ($id, $ext)=@_; + my ($id, $ext, $verbose)=@_; if(not defined $id) { $id = ""; @@ -326,7 +328,7 @@ sub ftpkillslave { } } if($pids) { - $ret = stopprocess($pids); + $ret = stopprocess($pids, $verbose); } if($pidfiles) { unlinkpidfiles($pidfiles); @@ -342,6 +344,7 @@ sub ftpkillslave { # of them in DEFAULT_TIMEOUT_STOP seconds then returns 0. # sub ftpkillslaves { + my ($verbose)=@_; my $ret = 1; # assume success stopping them my $pids = ""; @@ -359,7 +362,7 @@ sub ftpkillslaves { } } if($pids) { - $ret = stopprocess($pids); + $ret = stopprocess($pids, $verbose); } if($pidfiles) { unlinkpidfiles($pidfiles); diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index e7adef320..566453a3f 100644 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -114,7 +114,7 @@ do { sub catch_zap { my $signame = shift; print STDERR "ftpserver.pl received SIG$signame, exiting\n"; - ftpkillslaves(); + ftpkillslave($ftpdnum, $ext, 1); die "Somebody sent me a SIG$signame"; } $SIG{INT} = \&catch_zap; diff --git a/tests/runtests.pl b/tests/runtests.pl index 1e2e37c7e..bd4802632 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -440,6 +440,7 @@ sub stoptestserver { my $serverpids = ""; if($run{$serv}) { + logmsg ("RUN: Stopping the $serv server...\n"); if($run{$serv}{'slavepidfiles'}) { for $pidfile (split(" ", $run{$serv}{'slavepidfiles'})) { $pidfiles .= " $pidfile"; @@ -450,29 +451,41 @@ sub stoptestserver { } delete $run{$serv}{'slavepidfiles'}; } + if($run{$serv}{'pids'}) { + $pid = $run{$serv}{'pids'}; + $serverpids .= " $pid"; + delete $run{$serv}{'pids'}; + } if($run{$serv}{'pidfile'}) { $pidfile = $run{$serv}{'pidfile'}; $pidfiles .= " $pidfile"; $pid = checkalivepidfile($pidfile); - if($pid > 0) { + if(($pid > 0) && ($serverpids !~ /\b$pid\b/)) { $serverpids .= " $pid"; } delete $run{$serv}{'pidfile'}; } - if($run{$serv}{'pids'}) { - $pid = $run{$serv}{'pids'}; - $serverpids .= " $pid"; - delete $run{$serv}{'pids'}; - } if($run{$serv}) { delete $run{$serv}; } } if($slavepids) { - $ret = stopprocess($slavepids); + logmsg ("* slave pid(s) $slavepids\n"); + } + if($serverpids) { + logmsg ("* server pid(s) $serverpids\n"); + } + if($slavepids) { + $ret = stopprocess($slavepids, 1); + if($ret == 0) { + logmsg ("* slave process is still alive !!!\n"); + } } if($serverpids) { - $ret = stopprocess($serverpids); + $ret = stopprocess($serverpids, 1); + if($ret == 0) { + logmsg ("* server process is still alive !!!\n"); + } } if($pidfiles) { unlinkpidfiles($pidfiles); @@ -1849,6 +1862,7 @@ sub stopalltestservers { for my $serv (keys %run) { if($run{$serv}) { + logmsg ("RUN: Stopping the $serv server...\n"); if($run{$serv}{'slavepidfiles'}) { for $pidfile (split(" ", $run{$serv}{'slavepidfiles'})) { $pidfiles .= " $pidfile"; @@ -1859,30 +1873,42 @@ sub stopalltestservers { } delete $run{$serv}{'slavepidfiles'}; } + if($run{$serv}{'pids'}) { + $pid = $run{$serv}{'pids'}; + $serverpids .= " $pid"; + delete $run{$serv}{'pids'}; + } if($run{$serv}{'pidfile'}) { $pidfile = $run{$serv}{'pidfile'}; $pidfiles .= " $pidfile"; $pid = checkalivepidfile($pidfile); - if($pid > 0) { + if(($pid > 0) && ($serverpids !~ /\b$pid\b/)) { $serverpids .= " $pid"; } delete $run{$serv}{'pidfile'}; } - if($run{$serv}{'pids'}) { - $pid = $run{$serv}{'pids'}; - $serverpids .= " $pid"; - delete $run{$serv}{'pids'}; - } if($run{$serv}) { delete $run{$serv}; } } } if($slavepids) { - $ret = stopprocess($slavepids); + logmsg ("* slave pid(s) $slavepids\n"); + } + if($serverpids) { + logmsg ("* server pid(s) $serverpids\n"); + } + if($slavepids) { + $ret = stopprocess($slavepids, 1); + if($ret == 0) { + logmsg ("* slave process is still alive !!!\n"); + } } if($serverpids) { - $ret = stopprocess($serverpids); + $ret = stopprocess($serverpids, 1); + if($ret == 0) { + logmsg ("* server process is still alive !!!\n"); + } } if($pidfiles) { unlinkpidfiles($pidfiles); |