David McCreedy's patch to fix test suite harness to allow test FTP server and client on different machines, providing FTP client address when running the FTP test server.

This commit is contained in:
Yang Tse
2009-05-04 10:30:23 +00:00
parent 4422f80ae7
commit ff3e574187
4 changed files with 18 additions and 7 deletions

View File

@@ -14,6 +14,10 @@ Yang Tse (4 May 2009)
the protocol portions are mangled from CRLF to CRCRLF if data->set.crlf or the protocol portions are mangled from CRLF to CRCRLF if data->set.crlf or
data->set.prefer_ascii are set (depending on CURL_DO_LINEEND_CONV). data->set.prefer_ascii are set (depending on CURL_DO_LINEEND_CONV).
- Applied David McCreedy's patch to fix test suite harness to allow test FTP
server and client on different machines, providing FTP client address when
running the FTP test server.
Daniel Fandrich (3 May 2009) Daniel Fandrich (3 May 2009)
- Added and disabled test case 563 which shows KNOWN_BUGS #59. The bug - Added and disabled test case 563 which shows KNOWN_BUGS #59. The bug
report failed to mention that a proxy must be used to reproduce it. report failed to mention that a proxy must be used to reproduce it.

View File

@@ -9,9 +9,6 @@ To be addressed in 7.19.5 (planned release: May 2009)
228 - rpath problems in linking with custom openssl 228 - rpath problems in linking with custom openssl
233 - [PATCH] Allow Curl test suite test #251 to work if client and server
are on different machines
234 - [PATCH] Allow various Curl test suite tests to work on non-ASCII 234 - [PATCH] Allow various Curl test suite tests to work on non-ASCII
platforms platforms

View File

@@ -83,6 +83,7 @@ my $ext; # append to log/pid file names
my $grok_eprt; my $grok_eprt;
my $port = 8921; # just a default my $port = 8921; # just a default
my $listenaddr = "127.0.0.1"; # just a default my $listenaddr = "127.0.0.1"; # just a default
my $client;
my $pidfile = ".ftpd.pid"; # a default, use --pidfile my $pidfile = ".ftpd.pid"; # a default, use --pidfile
my $SERVERLOGS_LOCK="log/serverlogs.lock"; # server logs advisor read lock my $SERVERLOGS_LOCK="log/serverlogs.lock"; # server logs advisor read lock
@@ -114,7 +115,12 @@ do {
} }
elsif($ARGV[0] eq "--addr") { elsif($ARGV[0] eq "--addr") {
$listenaddr = $ARGV[1]; $listenaddr = $ARGV[1];
$listenaddr =~ s/^\[(.*)\]$/\1/; $listenaddr =~ s/^\[(.*)\]$/\1/;
shift @ARGV;
}
elsif($ARGV[0] eq "--client") {
$client = $ARGV[1];
$client =~ s/^\[(.*)\]$/\1/;
shift @ARGV; shift @ARGV;
} }
} while(shift @ARGV); } while(shift @ARGV);
@@ -705,7 +711,7 @@ sub PORT_command {
# We fire up a new sockfilt to do the data transfer for us. # We fire up a new sockfilt to do the data transfer for us.
# FIX: make it use IPv6 if need be # FIX: make it use IPv6 if need be
my $filtcmd="./server/sockfilt --connect $port --addr $addr --logfile log/sockdata$ftpdnum$ext.log --pidfile .sockdata$ftpdnum$ext.pid $ipv6"; my $filtcmd="./server/sockfilt --connect $port --addr $client --logfile log/sockdata$ftpdnum$ext.log --pidfile .sockdata$ftpdnum$ext.pid $ipv6";
$slavepid = open2(\*DREAD, \*DWRITE, $filtcmd); $slavepid = open2(\*DREAD, \*DWRITE, $filtcmd);
print STDERR "$filtcmd\n" if($verbose); print STDERR "$filtcmd\n" if($verbose);

View File

@@ -943,6 +943,8 @@ sub runftpserver {
my $ip=$HOSTIP; my $ip=$HOSTIP;
my $nameext; my $nameext;
my $cmd; my $cmd;
my $addr;
my $addr_client;
if($ipv6) { if($ipv6) {
# if IPv6, use a different setup # if IPv6, use a different setup
@@ -966,18 +968,20 @@ sub runftpserver {
# start our server: # start our server:
my $flag=$debugprotocol?"-v ":""; my $flag=$debugprotocol?"-v ":"";
$flag .= "-s \"$srcdir\" "; $flag .= "-s \"$srcdir\" ";
my $addr;
if($id) { if($id) {
$flag .="--id $id "; $flag .="--id $id ";
} }
if($ipv6) { if($ipv6) {
$flag .="--ipv6 "; $flag .="--ipv6 ";
$addr = $HOST6IP; $addr = $HOST6IP;
$addr_client = $CLIENT6IP;
} else { } else {
$addr = $HOSTIP; $addr = $HOSTIP;
$addr_client = $CLIENTIP;
} }
$cmd="$perl $srcdir/ftpserver.pl --pidfile $pidfile $flag --port $port --addr \"$addr\""; $cmd="$perl $srcdir/ftpserver.pl --pidfile $pidfile $flag --port $port --addr \"$addr\" --client \"$addr_client\"";
my ($ftppid, $pid2) = startnew($cmd, $pidfile, 15, 0); my ($ftppid, $pid2) = startnew($cmd, $pidfile, 15, 0);
if($ftppid <= 0 || !kill(0, $ftppid)) { if($ftppid <= 0 || !kill(0, $ftppid)) {