summaryrefslogtreecommitdiff
path: root/tests/globalconfig.pm
blob: f24f9c3fc9cb24a5d947aa7da17c588d578a7d60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#***************************************************************************
#                                  _   _ ____  _
#  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(
        $CURL
        $FTPDCMD
        $LIBDIR
        $LOGDIR
        $perl
        $PIDDIR
        $SERVERIN
        $SERVER2IN
        $PROXYIN
        $TESTDIR
        $memdump
        $proxy_address
        $listonly
        $run_event_based
        $srcdir
        $torture
        $VCURL
        $verbose
        $memanalyze
        @protocols
        $anyway
        %feature
        $has_shared
        %timesrvrini
        %timesrvrend
        %timetoolini
        %timetoolend
        %timesrvrlog
        %timevrfyend
        $valgrind
        %keywords
        $automakestyle
    );
}
use pathhelp qw(exe_ext);


#######################################################################
# global configuration variables
#

# config variables overridden by command-line options
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

# paths
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
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
# 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

# other config variables
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
our %timesrvrini; # timestamp for each test required servers verification start
our %timesrvrend; # timestamp for each test required servers verification end
our %timetoolini; # timestamp for each test command run starting
our %timetoolend; # timestamp for each test command run stopping
our %timesrvrlog; # timestamp for each test server logs lock removal
our %timevrfyend; # timestamp for each test result verification end

1;