2023-04-06 08:26:20 +08:00
|
|
|
#***************************************************************************
|
|
|
|
# _ _ ____ _
|
|
|
|
# Project ___| | | | _ \| |
|
|
|
|
# / __| | | | |_) | |
|
|
|
|
# | (__| |_| | _ <| |___
|
|
|
|
# \___|\___/|_| \_\_____|
|
|
|
|
#
|
|
|
|
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
|
|
#
|
|
|
|
# This software is licensed as described in the file COPYING, which
|
|
|
|
# you should have received as part of this distribution. The terms
|
|
|
|
# are also available at https://curl.se/docs/copyright.html.
|
|
|
|
#
|
|
|
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
|
|
# copies of the Software, and permit persons to whom the Software is
|
|
|
|
# furnished to do so, under the terms of the COPYING file.
|
|
|
|
#
|
|
|
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
# KIND, either express or implied.
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: curl
|
|
|
|
#
|
|
|
|
###########################################################################
|
|
|
|
|
|
|
|
# This module contains global variables used in multiple modules in the test
|
|
|
|
# harness but not really "owned" by any one.
|
|
|
|
|
|
|
|
package globalconfig;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
|
|
|
|
BEGIN {
|
|
|
|
use base qw(Exporter);
|
|
|
|
|
|
|
|
our @EXPORT = qw(
|
2023-04-15 08:22:05 +08:00
|
|
|
$anyway
|
|
|
|
$automakestyle
|
2023-04-06 08:26:20 +08:00
|
|
|
$CURL
|
2023-04-15 08:22:05 +08:00
|
|
|
$CURLVERSION
|
|
|
|
$has_shared
|
2023-04-14 06:33:38 +08:00
|
|
|
$LIBDIR
|
2023-04-15 08:22:05 +08:00
|
|
|
$listonly
|
2023-06-06 05:50:15 +08:00
|
|
|
$LOCKDIR
|
2023-04-06 08:26:20 +08:00
|
|
|
$LOGDIR
|
2023-04-15 08:22:05 +08:00
|
|
|
$memanalyze
|
2023-04-28 02:04:13 +08:00
|
|
|
$MEMDUMP
|
2023-04-06 08:26:20 +08:00
|
|
|
$perl
|
|
|
|
$PIDDIR
|
|
|
|
$proxy_address
|
2023-04-15 08:22:05 +08:00
|
|
|
$PROXYIN
|
|
|
|
$pwd
|
2023-05-19 12:40:05 +08:00
|
|
|
$randseed
|
2023-04-14 06:33:38 +08:00
|
|
|
$run_event_based
|
2023-06-15 06:11:40 +08:00
|
|
|
$SERVERCMD
|
2023-04-15 08:22:05 +08:00
|
|
|
$SERVERIN
|
2023-04-06 08:26:20 +08:00
|
|
|
$srcdir
|
2023-04-15 08:22:05 +08:00
|
|
|
$TESTDIR
|
2023-04-06 08:26:20 +08:00
|
|
|
$torture
|
2023-04-15 08:22:05 +08:00
|
|
|
$valgrind
|
2023-04-06 08:26:20 +08:00
|
|
|
$VCURL
|
|
|
|
$verbose
|
2023-04-14 06:33:38 +08:00
|
|
|
%feature
|
2023-04-15 08:22:05 +08:00
|
|
|
%keywords
|
|
|
|
@protocols
|
2023-04-06 08:26:20 +08:00
|
|
|
);
|
|
|
|
}
|
|
|
|
use pathhelp qw(exe_ext);
|
2023-04-15 08:22:05 +08:00
|
|
|
use Cwd qw(getcwd);
|
2023-04-06 08:26:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
# global configuration variables
|
|
|
|
#
|
|
|
|
|
|
|
|
# config variables overridden by command-line options
|
2023-04-14 06:33:38 +08:00
|
|
|
our $verbose; # 1 to show verbose test output
|
|
|
|
our $torture; # 1 to enable torture testing
|
|
|
|
our $proxy_address; # external HTTP proxy address
|
|
|
|
our $listonly; # only list the tests
|
|
|
|
our $run_event_based; # run curl with --test-event to test the event API
|
|
|
|
our $automakestyle; # use automake-like test status output format
|
|
|
|
our $anyway; # continue anyway, even if a test fail
|
2023-04-15 08:22:05 +08:00
|
|
|
our $CURLVERSION=""; # curl's reported version number
|
2023-05-19 12:40:05 +08:00
|
|
|
our $randseed = 0; # random number seed
|
2023-04-06 08:26:20 +08:00
|
|
|
|
|
|
|
# paths
|
2023-04-15 08:22:05 +08:00
|
|
|
our $pwd = getcwd(); # current working directory
|
2023-04-06 08:26:20 +08:00
|
|
|
our $srcdir = $ENV{'srcdir'} || '.'; # root of the test source code
|
|
|
|
our $perl="perl -I$srcdir"; # invoke perl like this
|
2023-04-30 13:11:25 +08:00
|
|
|
our $LOGDIR="log"; # root of the log directory; this will be different for
|
|
|
|
# each runner in multiprocess mode
|
2023-04-14 06:33:38 +08:00
|
|
|
our $LIBDIR="./libtest";
|
|
|
|
our $TESTDIR="$srcdir/data";
|
2023-04-06 08:26:20 +08:00
|
|
|
our $CURL="../src/curl".exe_ext('TOOL'); # what curl binary to run on the tests
|
|
|
|
our $VCURL=$CURL; # what curl binary to use to verify the servers with
|
|
|
|
# VCURL is handy to set to the system one when the one you
|
|
|
|
# just built hangs or crashes and thus prevent verification
|
2023-04-14 06:33:38 +08:00
|
|
|
# the path to the script that analyzes the memory debug output file
|
|
|
|
our $memanalyze="$perl $srcdir/memanalyze.pl";
|
|
|
|
our $valgrind; # path to valgrind, or empty if disabled
|
2023-04-06 08:26:20 +08:00
|
|
|
|
2023-04-28 02:04:13 +08:00
|
|
|
# paths in $LOGDIR
|
2023-06-06 05:50:15 +08:00
|
|
|
our $LOCKDIR = "lock"; # root of the server directory with lock files
|
2023-04-28 02:04:13 +08:00
|
|
|
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
|
2023-06-15 06:11:40 +08:00
|
|
|
our $SERVERCMD="server.cmd"; # copy server instructions here
|
2023-04-28 02:04:13 +08:00
|
|
|
|
2023-04-06 08:26:20 +08:00
|
|
|
# other config variables
|
2023-04-14 06:33:38 +08:00
|
|
|
our @protocols; # array of lowercase supported protocol servers
|
|
|
|
our %feature; # hash of enabled features
|
|
|
|
our $has_shared; # built as a shared library
|
|
|
|
our %keywords; # hash of keywords from the test spec
|
2023-04-06 08:26:20 +08:00
|
|
|
|
|
|
|
1;
|