aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ftp.pm36
1 files changed, 35 insertions, 1 deletions
diff --git a/tests/ftp.pm b/tests/ftp.pm
index 078dc61f2..25d7df745 100644
--- a/tests/ftp.pm
+++ b/tests/ftp.pm
@@ -1,4 +1,38 @@
-# make sure no leftovers are still running
+#######################################################################
+# Return the pid of the server as found in the given pid file
+#
+sub serverpid {
+ my $PIDFILE = $_[0];
+ open(PFILE, "<$PIDFILE");
+ my $PID=0+<PFILE>;
+ close(PFILE);
+ return $PID;
+}
+
+#######################################################################
+# Check the given test server if it is still alive.
+#
+sub checkserver {
+ my ($pidfile)=@_;
+ my $pid=0;
+
+ # check for pidfile
+ if ( -f $pidfile ) {
+ $pid=serverpid($pidfile);
+ if ($pid ne "" && kill(0, $pid)) {
+ return $pid;
+ }
+ else {
+ return -$pid; # negative means dead process
+ }
+ }
+ return 0;
+}
+
+#############################################################################
+# Make sure no FTP leftovers are still running. Kill all slave processes.
+# This uses pidfiles since it might be used by other processes.
+#
sub ftpkillslaves {
my ($versbose) = @_;
for $ext (("", "ipv6")) {