aboutsummaryrefslogtreecommitdiff
path: root/tests/runtests.pl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/runtests.pl')
-rwxr-xr-xtests/runtests.pl85
1 files changed, 46 insertions, 39 deletions
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 20ad732dd..5c55b5906 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -122,8 +122,11 @@ my $TFTP6PORT; # TFTP
my $SSHPORT; # SCP/SFTP
my $SOCKSPORT; # SOCKS4/5 port
my $POP3PORT; # POP3
+my $POP36PORT; # POP3 IPv6 server port
my $IMAPPORT; # IMAP
+my $IMAP6PORT; # IMAP IPv6 server port
my $SMTPPORT; # SMTP
+my $SMTP6PORT; # SMTP IPv6 server port
my $srcdir = $ENV{'srcdir'} || '.';
my $CURL="../src/curl"; # what curl executable to run on the tests
@@ -957,75 +960,67 @@ sub runhttpsserver {
#
sub runpingpongserver {
my ($proto, $id, $verbose, $ipv6) = @_;
- my $STATUS;
- my $RUNNING;
my $port;
- my $pidfile;
- my $ip=$HOSTIP;
- my $cmd;
- my $flag;
+ my $ip = $HOSTIP;
my $ipvnum = 4;
my $idnum = ($id && ($id =~ /^(\d+)$/) && ($id > 1)) ? $id : 1;
my $srvrname;
+ my $pidfile;
+ my $logfile;
+ my $flags = "";
if($proto eq "ftp") {
$port = ($idnum>1)?$FTP2PORT:$FTPPORT;
- $pidfile = ($idnum>1)?$FTP2PIDFILE:$FTPPIDFILE;
if($ipv6) {
# if IPv6, use a different setup
- $ipvnum = 6;
- $pidfile = $FTP6PIDFILE;
$port = $FTP6PORT;
- $ip = $HOST6IP;
}
}
elsif($proto eq "pop3") {
- $port = $POP3PORT;
- $pidfile = $POP3PIDFILE;
+ $port = ($ipv6) ? $POP36PORT : $POP3PORT;
}
elsif($proto eq "imap") {
- $port = $IMAPPORT;
- $pidfile = $IMAPPIDFILE;
+ $port = ($ipv6) ? $IMAP6PORT : $IMAPPORT;
}
elsif($proto eq "smtp") {
- $port = $SMTPPORT;
- $pidfile = $SMTPPIDFILE;
+ $port = ($ipv6) ? $SMTP6PORT : $SMTPPORT;
}
else {
print STDERR "Unsupported protocol $proto!!\n";
return 0;
}
- $flag .= "--proto $proto ";
+
+ if($ipv6) {
+ # if IPv6, use a different setup
+ $ipvnum = 6;
+ $ip = $HOST6IP;
+ }
+
+ $pidfile = server_pidfilename($proto, $ipvnum, $idnum);
# don't retry if the server doesn't work
if ($doesntrun{$pidfile}) {
return (0,0);
}
- $srvrname = servername_str($proto, $ipvnum, $idnum);
-
my $pid = processexists($pidfile);
if($pid > 0) {
stopserver($pid);
}
unlink($pidfile);
- # start our server:
- $flag .= $debugprotocol?"-v ":"";
- $flag .= "-s \"$srcdir\" ";
- my $addr;
- if($idnum > 1) {
- $flag .="--id $idnum ";
- }
- if($ipv6) {
- $flag .="--ipv6 ";
- $addr = $HOST6IP;
- } else {
- $addr = $HOSTIP;
- }
+ $srvrname = servername_str($proto, $ipvnum, $idnum);
- $cmd="$perl $srcdir/ftpserver.pl --pidfile $pidfile $flag --port $port --addr \"$addr\"";
+ $logfile = server_logfilename($LOGDIR, $proto, $ipvnum, $idnum);
+
+ $flags .= "--verbose " if($debugprotocol);
+ $flags .= "--pidfile \"$pidfile\" --logfile \"$logfile\" ";
+ $flags .= "--srcdir \"$srcdir\" --proto $proto ";
+ $flags .= "--id $idnum " if($idnum > 1);
+ $flags .= "--ipv$ipvnum --port $port --addr \"$ip\"";
+
+ my $cmd = "$perl $srcdir/ftpserver.pl $flags";
my ($ftppid, $pid2) = startnew($cmd, $pidfile, 15, 0);
if($ftppid <= 0 || !kill(0, $ftppid)) {
@@ -1754,6 +1749,11 @@ sub checksystem {
logmsg sprintf("POP3/%d ", $POP3PORT);
logmsg sprintf("IMAP/%d ", $IMAPPORT);
logmsg sprintf("SMTP/%d\n", $SMTPPORT);
+ if($tftp_ipv6) {
+ logmsg sprintf("POP3-IPv6/%d ", $POP36PORT);
+ logmsg sprintf("IMAP-IPv6/%d ", $IMAP6PORT);
+ logmsg sprintf("SMTP-IPv6/%d ", $SMTP6PORT);
+ }
$has_textaware = ($^O eq 'MSWin32') || ($^O eq 'msys');
@@ -1783,8 +1783,11 @@ sub subVariables {
$$thing =~ s/%SSHPORT/$SSHPORT/g;
$$thing =~ s/%SOCKSPORT/$SOCKSPORT/g;
$$thing =~ s/%POP3PORT/$POP3PORT/g;
+ $$thing =~ s/%POP36PORT/$POP36PORT/g;
$$thing =~ s/%IMAPPORT/$IMAPPORT/g;
+ $$thing =~ s/%IMAP6PORT/$IMAP6PORT/g;
$$thing =~ s/%SMTPPORT/$SMTPPORT/g;
+ $$thing =~ s/%SMTP6PORT/$SMTP6PORT/g;
$$thing =~ s/%CURL/$CURL/g;
$$thing =~ s/%USER/$USER/g;
$$thing =~ s/%CLIENTIP/$CLIENTIP/g;
@@ -2329,10 +2332,11 @@ sub singletest {
my @killservers = getpart("client", "killserver");
foreach my $serv (@killservers) {
chomp $serv;
- if($serv =~ /^ftp(\d*)(-ipv6|)/) {
- my ($id, $ext) = ($1, $2);
- #print STDERR "SERV $serv $id $ext\n";
- ftpkillslave($id, $ext, $verbose);
+ if($serv =~ /^(ftp|imap|pop3|smtp)(\d*)(-ipv6|)/) {
+ my $proto = $1;
+ my $idnum = ($2 && ($2 > 1)) ? $2 : 1;
+ my $ipvnum = ($3 && ($3 =~ /6$/)) ? 6 : 4;
+ killsockfilters($proto, $ipvnum, $idnum, $verbose);
}
if($run{$serv}) {
stopserver($run{$serv}); # the pid file is in the hash table
@@ -2677,7 +2681,7 @@ sub singletest {
#######################################################################
# Stop all running test servers
sub stopservers {
- my ($verbose)=@_;
+ my $verbose = $_[0];
my $pidlist;
for(keys %run) {
@@ -2698,7 +2702,7 @@ sub stopservers {
delete $run{$server};
}
killpid($verbose, $pidlist);
- ftpkillslaves($verbose);
+ killallsockfilters($verbose);
}
#######################################################################
@@ -3285,8 +3289,11 @@ $TFTP6PORT = $base++; # TFTP IPv6 (UDP) port
$SSHPORT = $base++; # SSH (SCP/SFTP) port
$SOCKSPORT = $base++; # SOCKS port
$POP3PORT = $base++;
+$POP36PORT = $base++;
$IMAPPORT = $base++;
+$IMAP6PORT = $base++;
$SMTPPORT = $base++;
+$SMTP6PORT = $base++;
#######################################################################
# clear and create logging directory: