summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2023-04-27 11:04:13 -0700
committerDan Fandrich <dan@coneharvesters.com>2023-05-05 00:45:43 -0700
commit82fa5ca8368e378a72d19767dc5795eaa790924a (patch)
treedce58aa7ca939198d83cdb1a58743bcb2eef02bd
parentb71a0c3ec9a14f1bc55e17108a6a2bacbb620f35 (diff)
downloadcurl-82fa5ca8368e378a72d19767dc5795eaa790924a.tar.gz
runtests: remove directory from server filename variables
There will soon be multiple log directories so the paths will no longer be static in runtests.pl. Also, get rid of $SERVER2IN which was not used. Ref: #10818
-rw-r--r--tests/globalconfig.pm19
-rw-r--r--tests/runner.pm26
-rwxr-xr-xtests/runtests.pl18
-rw-r--r--tests/servers.pm49
4 files changed, 58 insertions, 54 deletions
diff --git a/tests/globalconfig.pm b/tests/globalconfig.pm
index 4d48ee535..9287e2b0d 100644
--- a/tests/globalconfig.pm
+++ b/tests/globalconfig.pm
@@ -44,14 +44,13 @@ BEGIN {
$listonly
$LOGDIR
$memanalyze
- $memdump
+ $MEMDUMP
$perl
$PIDDIR
$proxy_address
$PROXYIN
$pwd
$run_event_based
- $SERVER2IN
$SERVERIN
$srcdir
$TESTDIR
@@ -87,15 +86,6 @@ our $pwd = getcwd(); # current working directory
our $srcdir = $ENV{'srcdir'} || '.'; # root of the test source code
our $perl="perl -I$srcdir"; # invoke perl like this
our $LOGDIR="log"; # root of the log directory
-# TODO: $LOGDIR could eventually change later on, so must regenerate all the
-# paths depending on it after $LOGDIR itself changes.
-our $PIDDIR = "$LOGDIR/server"; # root of the server directory with PID files
-# TODO: change this to use server_inputfilename()
-our $SERVERIN="$LOGDIR/server.input"; # what curl sent the server
-our $SERVER2IN="$LOGDIR/server2.input"; # what curl sent the second server
-our $PROXYIN="$LOGDIR/proxy.input"; # what curl sent the proxy
-our $memdump="$LOGDIR/memdump"; # file that the memory debugging creates
-our $FTPDCMD="$LOGDIR/ftpserver.cmd"; # copy server instructions here
our $LIBDIR="./libtest";
our $TESTDIR="$srcdir/data";
our $CURL="../src/curl".exe_ext('TOOL'); # what curl binary to run on the tests
@@ -106,6 +96,13 @@ our $VCURL=$CURL; # what curl binary to use to verify the servers with
our $memanalyze="$perl $srcdir/memanalyze.pl";
our $valgrind; # path to valgrind, or empty if disabled
+# paths in $LOGDIR
+our $PIDDIR = "server"; # root of the server directory with PID files
+our $SERVERIN="server.input"; # what curl sent the server
+our $PROXYIN="proxy.input"; # what curl sent the proxy
+our $MEMDUMP="memdump"; # file that the memory debugging creates
+our $FTPDCMD="ftpserver.cmd"; # copy server instructions here
+
# other config variables
our @protocols; # array of lowercase supported protocol servers
our %feature; # hash of enabled features
diff --git a/tests/runner.pm b/tests/runner.pm
index 90af5b722..feaa4e529 100644
--- a/tests/runner.pm
+++ b/tests/runner.pm
@@ -227,7 +227,7 @@ sub torture {
my ($testcmd, $testnum, $gdbline) = @_;
# remove memdump first to be sure we get a new nice and clean one
- unlink($memdump);
+ unlink("$LOGDIR/$MEMDUMP");
# First get URL from test server, ignore the output/result
runclient($testcmd);
@@ -236,7 +236,7 @@ sub torture {
# memanalyze -v is our friend, get the number of allocations made
my $count=0;
- my @out = `$memanalyze -v $memdump`;
+ my @out = `$memanalyze -v "$LOGDIR/$MEMDUMP"`;
for(@out) {
if(/^Operations: (\d+)/) {
$count = $1;
@@ -291,7 +291,7 @@ sub torture {
$ENV{'CURL_MEMLIMIT'} = $limit;
# remove memdump first to be sure we get a new nice and clean one
- unlink($memdump);
+ unlink("$LOGDIR/$MEMDUMP");
my $cmd = $testcmd;
if($valgrind && !$gdbthis) {
@@ -349,7 +349,7 @@ sub torture {
$fail=1;
}
else {
- my @memdata=`$memanalyze $memdump`;
+ my @memdata=`$memanalyze "$LOGDIR/$MEMDUMP"`;
my $leak=0;
for(@memdata) {
if($_ ne "") {
@@ -361,7 +361,7 @@ sub torture {
if($leak) {
logmsg "** MEMORY FAILURE\n";
logmsg @memdata;
- logmsg `$memanalyze -l $memdump`;
+ logmsg `$memanalyze -l "$LOGDIR/$MEMDUMP"`;
$fail = 1;
}
}
@@ -403,10 +403,9 @@ sub singletest_startservers {
my ($testnum, $testtimings) = @_;
# remove old test server files before servers are started/verified
- unlink($FTPDCMD);
- unlink($SERVERIN);
- unlink($SERVER2IN);
- unlink($PROXYIN);
+ unlink("$LOGDIR/$FTPDCMD");
+ unlink("$LOGDIR/$SERVERIN");
+ unlink("$LOGDIR/$PROXYIN");
# timestamp required servers verification start
$$testtimings{"timesrvrini"} = Time::HiRes::time();
@@ -543,20 +542,19 @@ sub singletest_prepare {
my ($testnum) = @_;
if($feature{"TrackMemory"}) {
- unlink($memdump);
+ unlink("$LOGDIR/$MEMDUMP");
}
unlink("core");
# remove server output logfiles after servers are started/verified
- unlink($SERVERIN);
- unlink($SERVER2IN);
- unlink($PROXYIN);
+ unlink("$LOGDIR/$SERVERIN");
+ unlink("$LOGDIR/$PROXYIN");
# if this section exists, it might be FTP server instructions:
my @ftpservercmd = getpart("reply", "servercmd");
push @ftpservercmd, "Testnum $testnum\n";
# write the instructions to file
- writearray($FTPDCMD, \@ftpservercmd);
+ writearray("$LOGDIR/$FTPDCMD", \@ftpservercmd);
# create (possibly-empty) files before starting the test
for my $partsuffix (('', '1', '2', '3', '4')) {
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 9ad0a8f08..3958d4911 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -183,7 +183,7 @@ sub logmsg {
}
# enable memory debugging if curl is compiled with it
-$ENV{'CURL_MEMDEBUG'} = $memdump;
+$ENV{'CURL_MEMDEBUG'} = "$LOGDIR/$MEMDUMP";
$ENV{'CURL_ENTROPY'}="12345678";
$ENV{'CURL_FORCETIME'}=1; # for debug NTLM magic
$ENV{'CURL_GLOBAL_INIT'}=1; # debug curl_global_init/cleanup use
@@ -277,7 +277,7 @@ sub cleardir {
return 0; # can't open dir
while($file = readdir($dh)) {
# Don't clear the $PIDDIR since those need to live beyond one test
- if(($file !~ /^(\.|\.\.)\z/) && "$dir/$file" ne $PIDDIR) {
+ if(($file !~ /^(\.|\.\.)\z/) && "$file" ne $PIDDIR) {
if(-d "$dir/$file") {
if(!cleardir("$dir/$file")) {
$done = 0;
@@ -1215,7 +1215,7 @@ sub singletest_check {
my @protocol= getpart("verify", "protocol");
if(@protocol) {
# Verify the sent request
- my @out = loadarray($SERVERIN);
+ my @out = loadarray("$logdir/$SERVERIN");
# check if there's any attributes on the verify/protocol section
my %hash = getpartattr("verify", "protocol");
@@ -1246,7 +1246,7 @@ sub singletest_check {
if((!$out[0] || ($out[0] eq "")) && $protocol[0]) {
logmsg "\n $testnum: protocol FAILED!\n".
- " There was no content at all in the file $SERVERIN.\n".
+ " There was no content at all in the file $logdir/$SERVERIN.\n".
" Server glitch? Total curl failure? Returned: $cmdres\n";
# timestamp test result verification end
$timevrfyend{$testnum} = Time::HiRes::time();
@@ -1370,7 +1370,7 @@ sub singletest_check {
chomp($proxyprot[-1]);
}
- my @out = loadarray($PROXYIN);
+ my @out = loadarray("$logdir/$PROXYIN");
for(@strip) {
# strip off all lines that match the patterns from both arrays
chomp $_;
@@ -1498,14 +1498,14 @@ sub singletest_check {
}
if($feature{"TrackMemory"}) {
- if(! -f $memdump) {
+ if(! -f "$logdir/$MEMDUMP") {
my %cmdhash = getpartattr("client", "command");
my $cmdtype = $cmdhash{'type'} || "default";
logmsg "\n** ALERT! memory tracking with no output file?\n"
if(!$cmdtype eq "perl");
}
else {
- my @memdata=`$memanalyze $memdump`;
+ my @memdata=`$memanalyze "$logdir/$MEMDUMP"`;
my $leak=0;
for(@memdata) {
if($_ ne "") {
@@ -2231,7 +2231,7 @@ if ($gdbthis) {
cleardir($LOGDIR);
mkdir($LOGDIR, 0777);
-mkdir($PIDDIR, 0777);
+mkdir("$LOGDIR/$PIDDIR", 0777);
#######################################################################
# initialize some variables
@@ -2246,7 +2246,7 @@ setlogfunc(\&logmsg);
#
if(!$listonly) {
- unlink($memdump); # remove this if there was one left
+ unlink("$LOGDIR/$MEMDUMP"); # remove this if there was one left
checksystemfeatures();
}
diff --git a/tests/servers.pm b/tests/servers.pm
index 32f66552a..23b860555 100644
--- a/tests/servers.pm
+++ b/tests/servers.pm
@@ -170,8 +170,8 @@ sub checkcmd {
#######################################################################
# Initialize configuration variables
sub initserverconfig {
- $SOCKSUNIXPATH = "$PIDDIR/socks.sock"; # SOCKS server Unix domain socket path
- $HTTPUNIXPATH = "$PIDDIR/http.sock"; # HTTP server Unix domain socket path
+ $SOCKSUNIXPATH = "$LOGDIR/$PIDDIR/socks.sock"; # SOCKS Unix domain socket
+ $HTTPUNIXPATH = "$LOGDIR/$PIDDIR/http.sock"; # HTTP Unix domain socket
$stunnel = checkcmd("stunnel4") || checkcmd("tstunnel") || checkcmd("stunnel");
# get the name of the current user
@@ -195,9 +195,11 @@ sub init_serverpidfile_hash {
for my $ipvnum ((4, 6)) {
for my $idnum ((1, 2, 3)) {
my $serv = servername_id("$proto$ssl", $ipvnum, $idnum);
- my $pidf = server_pidfilename($PIDDIR, "$proto$ssl", $ipvnum, $idnum);
+ my $pidf = server_pidfilename("$LOGDIR/$PIDDIR", "$proto$ssl",
+ $ipvnum, $idnum);
$serverpidfile{$serv} = $pidf;
- my $portf = server_portfilename($PIDDIR, "$proto$ssl", $ipvnum, $idnum);
+ my $portf = server_portfilename("$LOGDIR/$PIDDIR", "$proto$ssl",
+ $ipvnum, $idnum);
$serverportfile{$serv} = $portf;
}
}
@@ -208,9 +210,11 @@ sub init_serverpidfile_hash {
for my $ipvnum ((4, 6)) {
for my $idnum ((1, 2)) {
my $serv = servername_id($proto, $ipvnum, $idnum);
- my $pidf = server_pidfilename($PIDDIR, $proto, $ipvnum, $idnum);
+ my $pidf = server_pidfilename("$LOGDIR/$PIDDIR", $proto, $ipvnum,
+ $idnum);
$serverpidfile{$serv} = $pidf;
- my $portf = server_portfilename($PIDDIR, $proto, $ipvnum, $idnum);
+ my $portf = server_portfilename("$LOGDIR/$PIDDIR", $proto, $ipvnum,
+ $idnum);
$serverportfile{$serv} = $portf;
}
}
@@ -218,9 +222,11 @@ sub init_serverpidfile_hash {
for my $proto (('http', 'imap', 'pop3', 'smtp', 'http/2', 'http/3')) {
for my $ssl (('', 's')) {
my $serv = servername_id("$proto$ssl", "unix", 1);
- my $pidf = server_pidfilename($PIDDIR, "$proto$ssl", "unix", 1);
+ my $pidf = server_pidfilename("$LOGDIR/$PIDDIR", "$proto$ssl",
+ "unix", 1);
$serverpidfile{$serv} = $pidf;
- my $portf = server_portfilename($PIDDIR, "$proto$ssl", "unix", 1);
+ my $portf = server_portfilename("$LOGDIR/$PIDDIR", "$proto$ssl",
+ "unix", 1);
$serverportfile{$serv} = $portf;
}
}
@@ -418,7 +424,7 @@ sub stopserver {
my $proto = $1;
my $idnum = ($2 && ($2 > 1)) ? $2 : 1;
my $ipvnum = ($3 && ($3 =~ /6$/)) ? 6 : 4;
- killsockfilters($PIDDIR, $proto, $ipvnum, $idnum, $verbose);
+ killsockfilters("$LOGDIR/$PIDDIR", $proto, $ipvnum, $idnum, $verbose);
}
#
# All servers relative to the given one must be stopped also
@@ -727,7 +733,8 @@ sub verifyrtsp {
#
sub verifyssh {
my ($proto, $ipvnum, $idnum, $ip, $port) = @_;
- my $pidfile = server_pidfilename($PIDDIR, $proto, $ipvnum, $idnum);
+ my $pidfile = server_pidfilename("$LOGDIR/$PIDDIR", $proto, $ipvnum,
+ $idnum);
my $pid = processexists($pidfile);
if($pid < 0) {
logmsg "RUN: SSH server has died after starting up\n";
@@ -757,7 +764,7 @@ sub verifysftp {
}
# Connect to sftp server, authenticate and run a remote pwd
# command using our generated configuration and key files
- my $cmd = "\"$sftp\" -b $PIDDIR/$sftpcmds -F $PIDDIR/$sftpconfig -S \"$ssh\" $ip > $sftplog 2>&1";
+ my $cmd = "\"$sftp\" -b $LOGDIR/$PIDDIR/$sftpcmds -F $LOGDIR/$PIDDIR/$sftpconfig -S \"$ssh\" $ip > $sftplog 2>&1";
my $res = runclient($cmd);
# Search for pwd command response in log file
if(open(my $sftplogfile, "<", "$sftplog")) {
@@ -781,7 +788,8 @@ sub verifysftp {
sub verifyhttptls {
my ($proto, $ipvnum, $idnum, $ip, $port) = @_;
my $server = servername_id($proto, $ipvnum, $idnum);
- my $pidfile = server_pidfilename($PIDDIR, $proto, $ipvnum, $idnum);
+ my $pidfile = server_pidfilename("$LOGDIR/$PIDDIR", $proto, $ipvnum,
+ $idnum);
my $verifyout = "$LOGDIR/".
servername_canon($proto, $ipvnum, $idnum) .'_verify.out';
@@ -858,7 +866,8 @@ sub verifyhttptls {
#
sub verifysocks {
my ($proto, $ipvnum, $idnum, $ip, $port) = @_;
- my $pidfile = server_pidfilename($PIDDIR, $proto, $ipvnum, $idnum);
+ my $pidfile = server_pidfilename("$LOGDIR/$PIDDIR", $proto, $ipvnum,
+ $idnum);
my $pid = processexists($pidfile);
if($pid < 0) {
logmsg "RUN: SOCKS server has died after starting up\n";
@@ -1120,7 +1129,7 @@ sub runhttpserver {
$flags .= "--pidfile \"$pidfile\" --logfile \"$logfile\" ";
$flags .= "--logdir \"$LOGDIR\" ";
$flags .= "--portfile $portfile ";
- $flags .= "--config $FTPDCMD ";
+ $flags .= "--config $LOGDIR/$FTPDCMD ";
$flags .= "--id $idnum " if($idnum > 1);
if($ipvnum eq "unix") {
$flags .= "--unix-socket '$port_or_path' ";
@@ -1887,7 +1896,7 @@ sub runsshserver {
}
my $hostfile;
- if(!open($hostfile, "<", $PIDDIR . "/" . $hstpubmd5f) ||
+ if(!open($hostfile, "<", "$LOGDIR/$PIDDIR/$hstpubmd5f") ||
(read($hostfile, $SSHSRVMD5, 32) != 32) ||
!close($hostfile) ||
($SSHSRVMD5 !~ /^[a-f0-9]{32}$/i))
@@ -1898,7 +1907,7 @@ sub runsshserver {
die $msg;
}
- if(!open($hostfile, "<", $PIDDIR . "/" . $hstpubsha256f) ||
+ if(!open($hostfile, "<", "$LOGDIR/$PIDDIR/$hstpubsha256f") ||
(read($hostfile, $SSHSRVSHA256, 48) == 0) ||
!close($hostfile))
{
@@ -1947,7 +1956,7 @@ sub runmqttserver {
" --port 0 ".
" --pidfile $pidfile".
" --portfile $portfile".
- " --config $FTPDCMD".
+ " --config $LOGDIR/$FTPDCMD".
" --logfile $logfile".
" --logdir $LOGDIR";
my ($sockspid, $pid2) = startnew($cmd, $pidfile, 30, 0);
@@ -2008,7 +2017,7 @@ sub runsocksserver {
" --logfile $logfile".
" --unix-socket $SOCKSUNIXPATH".
" --backend $HOSTIP".
- " --config $FTPDCMD";
+ " --config $LOGDIR/$FTPDCMD";
} else {
$cmd="server/socksd".exe_ext('SRV').
" --port 0 ".
@@ -2017,7 +2026,7 @@ sub runsocksserver {
" --reqfile $LOGDIR/$SOCKSIN".
" --logfile $logfile".
" --backend $HOSTIP".
- " --config $FTPDCMD";
+ " --config $LOGDIR/$FTPDCMD";
}
my ($sockspid, $pid2) = startnew($cmd, $pidfile, 30, 0);
@@ -2912,7 +2921,7 @@ sub stopservers {
#
# kill sockfilter processes for all pingpong servers
#
- killallsockfilters($PIDDIR, $verb);
+ killallsockfilters("$LOGDIR/$PIDDIR", $verb);
#
# kill all server pids from %run hash clearing them
#