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
|
# -*- 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 perl -e 'use Socket; socket(FH, PF_INET6, SOCK_STREAM, 0) || exit 1;'; 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
|