summaryrefslogtreecommitdiff
path: root/tests/atlocal.in
blob: 1ecabf03a261693d3558e2128de9b7ee4312db69 (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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# -*- shell-script -*-
HAVE_OPENSSL='@HAVE_OPENSSL@'
HAVE_PYTHON='@HAVE_PYTHON@'
HAVE_PYTHON3='@HAVE_PYTHON3@'
EGREP='@EGREP@'
PERL='@PERL@'

if test x"$PYTHON" = x; then
    PYTHON='@PYTHON@'
fi

if test x"$PYTHON3" = x; then
    PYTHON3='@PYTHON3@'

    # PYTHONCOERCECLOCALE=0 disables the Unicode compatibility warning on
    # stderr that breaks almost any Python3 test (PEP 0538)
    PYTHONCOERCECLOCALE=0
    export PYTHONCOERCECLOCALE
fi

PYTHONPATH=$abs_top_srcdir/python:$abs_top_builddir/tests:$PYTHONPATH
export PYTHONPATH

PYTHONIOENCODING=utf_8
export PYTHONIOENCODING

# PYTHONDONTWRITEBYTECODE=yes keeps Python from creating .pyc and .pyo
# files.  Creating .py[co] works OK for any given version of Open
# vSwitch, but it causes trouble if you switch from a version with
# foo/__init__.py into an (older) version with plain foo.py, since
# foo/__init__.pyc will cause Python to ignore foo.py.
PYTHONDONTWRITEBYTECODE=yes
export PYTHONDONTWRITEBYTECODE

# Test whether the current working directory name is all ASCII
# characters.  Some Python code doesn't tolerate non-ASCII characters
# in filenames very well, so if the current working directory is
# non-ASCII then we skip the tests that run those programs.
#
# This would be just papering over a real problem, except that the
# tests that we skip are launched from initscripts and thus normally
# run in system directories with ASCII names.  (This problem only came
# up at all because the Debian autobuilders do build in a top-level
# directory named /«BUILDDIR».)
case `pwd | tr -d ' -~'` in
    '') non_ascii_cwd=false ;;
    *) non_ascii_cwd=true
esac

# Enable malloc debugging features.
case `uname` in
Linux)
    MALLOC_PERTURB_=165; export MALLOC_PERTURB_

    # Before glibc 2.11, the feature enabled by MALLOC_CHECK_ was not
    # thread-safe.  See https://bugzilla.redhat.com/show_bug.cgi?id=585674 and
    # in particular the patch attached there, which was applied to glibc CVS as
    # "Restore locking in free_check." between 1.11 and 1.11.1.
    vswitchd=$abs_top_builddir/vswitchd/ovs-vswitchd
    glibc=`ldd $vswitchd | sed -n 's/^	libc\.[^ ]* => \([^ ]*\) .*/\1/p'`
    glibc_version=`$glibc | sed -n '1s/.*version \([0-9]\{1,\}\.[0-9]\{1,\}\).*/\1/p'`
    case $glibc_version in
        2.[0-9] | 2.1[01]) mcheck=disabled ;;
        *) mcheck=enabled ;;
    esac
    if test $mcheck = enabled; then
        MALLOC_CHECK_=2; export MALLOC_CHECK_
    else
        echo >&2 "glibc $glibc_version detected, disabling memory checking"
    fi
    ;;
FreeBSD)
    case `uname -r` in
    [789].*)
        MALLOC_CONF=AJ
        ;;
    *)
        MALLOC_CONF=abort:true,junk:true,redzone:true
        ;;
    esac
    export MALLOC_CONF
esac

# The name of loopback interface 
case `uname` in
Linux)
    LOOPBACK_INTERFACE=lo
    ;;
FreeBSD|NetBSD)
    LOOPBACK_INTERFACE=lo0
    ;;
esac

# Check for platform.
case `uname` in
MINGW*)
    IS_WIN32="yes"
    IS_BSD="no"
    ;;
FreeBSD|NetBSD)
    IS_WIN32="no"
    IS_BSD="yes"
    ;;
*)
    IS_WIN32="no"
    IS_BSD="no"
    ;;
esac

# Check whether to run IPv6 tests.
if $PYTHON -c '
import socket
socket.socket(family=socket.AF_INET6).bind(("::1", 0, 0, 0))
'; then
    HAVE_IPV6=yes
else
    HAVE_IPV6=no
fi

# Look for a python L7 library 'LIB' in the system. If it is found, defines
# HAVE_LIB="yes", otherwise HAVE_LIB="no"
find_l7_lib()
{
    set +x
    var=HAVE_`echo "$1" | tr '[a-z]' '[A-Z]'`
    if test "$HAVE_PYTHON" = "yes"; then
        result=$($PYTHON $abs_top_srcdir/tests/test-l7.py --help | grep "$1")
        if test "x${result}" != x; then
            eval ${var}="yes"
        else
            eval ${var}="no"
        fi
    else
        eval ${var}="no"
    fi
}

# HAVE_FTP
find_l7_lib ftp
# HAVE_TFTP
find_l7_lib tftp

# Look for a commnand in the system. If it is found, defines
# HAVE_COMMAND="yes", otherwise HAVE_COMMAND="no".
find_command()
{
    which $1 > /dev/null 2>&1
    status=$?
    var=HAVE_`echo "$1" | tr '[a-z]' '[A-Z]'`
    if test "$status" = "0"; then
        eval ${var}="yes"
    else
        eval ${var}="no"
    fi
}

# Set HAVE_NC
find_command nc

# Determine correct netcat option to quit on stdin EOF
if nc --version 2>&1 | grep -q nmap.org; then
    # Nmap netcat
    NC_EOF_OPT="--send-only -w 5"
else
    # BSD netcat
    NC_EOF_OPT="-q 1 -w 5"
fi

# Set HAVE_TCPDUMP
find_command tcpdump

CURL_OPT="-g -v --max-time 1 --retry 2 --retry-delay 1 --connect-timeout 1"

# Turn off proxies.
unset http_proxy
unset https_proxy
unset ftp_proxy
unset no_proxy
unset HTTP_PROXY
unset HTTPS_PROXY
unset FTP_PROXY
unset NO_PROXY