]> git.proxmox.com Git - ovs.git/blame - tests/atlocal.in
Fix ovs-dpctl-top by removing 3 wrong hunks in py3-compat.patch.
[ovs.git] / tests / atlocal.in
CommitLineData
1b233b95 1# -*- shell-script -*-
d27ce529 2HAVE_OPENSSL='@HAVE_OPENSSL@'
b291eb69 3OPENSSL_SUPPORTS_SNI='@OPENSSL_SUPPORTS_SNI@'
b291eb69 4HAVE_UNBOUND='@HAVE_UNBOUND@'
8073dd31 5EGREP='@EGREP@'
1ca0323e 6PYTHON3='@PYTHON3@'
79982e90 7
1ca0323e
BP
8# PYTHONCOERCECLOCALE=0 disables the Unicode compatibility warning on
9# stderr that breaks almost any Python3 test (PEP 0538)
10PYTHONCOERCECLOCALE=0
11export PYTHONCOERCECLOCALE
8fb7d026 12
e6703555 13PYTHONPATH=$abs_top_srcdir/python:$abs_top_builddir/tests:$PYTHONPATH
99155935 14export PYTHONPATH
be44585c
BP
15
16PYTHONIOENCODING=utf_8
17export PYTHONIOENCODING
42c2ebcd 18
e23812fc 19# PYTHONDONTWRITEBYTECODE=yes keeps Python from creating .pyc and .pyo
853d1083
BP
20# files. Creating .py[co] works OK for any given version of Open
21# vSwitch, but it causes trouble if you switch from a version with
22# foo/__init__.py into an (older) version with plain foo.py, since
23# foo/__init__.pyc will cause Python to ignore foo.py.
853d1083
BP
24PYTHONDONTWRITEBYTECODE=yes
25export PYTHONDONTWRITEBYTECODE
26
e6e590a7
BP
27# Test whether the current working directory name is all ASCII
28# characters. Some Python code doesn't tolerate non-ASCII characters
29# in filenames very well, so if the current working directory is
30# non-ASCII then we skip the tests that run those programs.
31#
32# This would be just papering over a real problem, except that the
33# tests that we skip are launched from initscripts and thus normally
34# run in system directories with ASCII names. (This problem only came
35# up at all because the Debian autobuilders do build in a top-level
36# directory named /«BUILDDIR».)
37case `pwd | tr -d ' -~'` in
38 '') non_ascii_cwd=false ;;
39 *) non_ascii_cwd=true
40esac
41
f0b87599
EM
42# Enable malloc debugging features.
43case `uname` in
44Linux)
b6137ea8
BP
45 MALLOC_PERTURB_=165; export MALLOC_PERTURB_
46
47 # Before glibc 2.11, the feature enabled by MALLOC_CHECK_ was not
48 # thread-safe. See https://bugzilla.redhat.com/show_bug.cgi?id=585674 and
49 # in particular the patch attached there, which was applied to glibc CVS as
50 # "Restore locking in free_check." between 1.11 and 1.11.1.
51 vswitchd=$abs_top_builddir/vswitchd/ovs-vswitchd
1ca0323e 52 glibc=`ldd $vswitchd | sed -n 's/^ libc\.[^ ]* => \([^ ]*\) .*/\1/p'`
b6137ea8
BP
53 glibc_version=`$glibc | sed -n '1s/.*version \([0-9]\{1,\}\.[0-9]\{1,\}\).*/\1/p'`
54 case $glibc_version in
55 2.[0-9] | 2.1[01]) mcheck=disabled ;;
56 *) mcheck=enabled ;;
57 esac
58 if test $mcheck = enabled; then
59 MALLOC_CHECK_=2; export MALLOC_CHECK_
60 else
61 echo >&2 "glibc $glibc_version detected, disabling memory checking"
62 fi
f0b87599
EM
63 ;;
64FreeBSD)
65 case `uname -r` in
66 [789].*)
67 MALLOC_CONF=AJ
68 ;;
f9993a82 69 1[01].*)
f0b87599
EM
70 MALLOC_CONF=abort:true,junk:true,redzone:true
71 ;;
f9993a82
IM
72 *)
73 MALLOC_CONF=abort:true,junk:true
74 ;;
f0b87599
EM
75 esac
76 export MALLOC_CONF
77esac
9a9808d7
YT
78
79# The name of loopback interface
80case `uname` in
81Linux)
82 LOOPBACK_INTERFACE=lo
83 ;;
84FreeBSD|NetBSD)
85 LOOPBACK_INTERFACE=lo0
86 ;;
87esac
c7c1bdf3 88
d98e1498 89# Check for platform.
c7c1bdf3 90case `uname` in
760f5738 91MINGW*|MSYS*)
c7c1bdf3 92 IS_WIN32="yes"
d98e1498
PS
93 IS_BSD="no"
94 ;;
95FreeBSD|NetBSD)
96 IS_WIN32="no"
97 IS_BSD="yes"
c7c1bdf3
GS
98 ;;
99*)
100 IS_WIN32="no"
d98e1498 101 IS_BSD="no"
c7c1bdf3
GS
102 ;;
103esac
0f1e8ed0 104
1ca0323e 105if test "$IS_WIN32" = yes; then
73ac791f
AGS
106 # enables legacy windows unicode printing needed for Python3 compatibility
107 # with the Python2 tests
108 PYTHONLEGACYWINDOWSFSENCODING=true
109 export PYTHONLEGACYWINDOWSFSENCODING
110 PYTHONLEGACYWINDOWSSTDIO=true
111 export PYTHONLEGACYWINDOWSSTDIO
112fi
113
9e444242
MG
114# Check for CPU architecture
115case `uname -m` in
116aarch64)
117 IS_ARM64="yes"
118 ;;
119*)
120 IS_ARM64="no"
121 ;;
122esac
123
4819b3a5 124# Check whether to run IPv6 tests.
1ca0323e 125$PYTHON3 -c '
5c1d812d 126import errno
719dcfd4 127import socket
5c1d812d
BP
128import sys
129try:
130 socket.socket(family=socket.AF_INET6).bind(("::1", 0, 0, 0))
131except socket.error as e:
f7979b11 132 if e.errno == errno.EAFNOSUPPORT or errno.EADDRNOTAVAIL:
5c1d812d
BP
133 sys.exit(2)
134 raise
135'
136case $? in
137 0) HAVE_IPV6=yes ;;
138 2) HAVE_IPV6=no ;;
1ca0323e 139 *) echo "$0: unexpected error probing $PYTHON3 for IPv6 support" >&2 ;;
5c1d812d 140esac
4819b3a5 141
40e28d13
YHW
142# Look for a python L7 library 'LIB' in the system. If it is found, defines
143# HAVE_LIB="yes", otherwise HAVE_LIB="no"
40c7b2fc
JS
144find_l7_lib()
145{
146 set +x
147 var=HAVE_`echo "$1" | tr '[a-z]' '[A-Z]'`
1ca0323e
BP
148 result=$($PYTHON3 $abs_top_srcdir/tests/test-l7.py --help | grep "$1")
149 if test "x${result}" != x; then
150 eval ${var}="yes"
40c7b2fc
JS
151 else
152 eval ${var}="no"
153 fi
154}
155
40e28d13 156# HAVE_FTP
40c7b2fc 157find_l7_lib ftp
40e28d13 158# HAVE_TFTP
40c7b2fc 159find_l7_lib tftp
b54971f7 160
9c1ab985
YHW
161# Look for a commnand in the system. If it is found, defines
162# HAVE_COMMAND="yes", otherwise HAVE_COMMAND="no".
ddd187f2 163find_command()
9c1ab985
YHW
164{
165 which $1 > /dev/null 2>&1
166 status=$?
167 var=HAVE_`echo "$1" | tr '[a-z]' '[A-Z]'`
168 if test "$status" = "0"; then
169 eval ${var}="yes"
170 else
171 eval ${var}="no"
172 fi
173}
174
175# Set HAVE_NC
ddd187f2 176find_command nc
9c1ab985 177
b54971f7
LR
178# Determine correct netcat option to quit on stdin EOF
179if nc --version 2>&1 | grep -q nmap.org; then
0bedb3d6 180 # Nmap netcat
46ccfadd 181 NC_EOF_OPT="--send-only -w 5"
b54971f7 182else
0bedb3d6 183 # BSD netcat
46ccfadd 184 NC_EOF_OPT="-q 1 -w 5"
b54971f7 185fi
4fee8b13 186
b020a416
DB
187# Set HAVE_TCPDUMP
188find_command tcpdump
189
253e4dc0
DM
190# Set HAVE_LFTP
191find_command lftp
192
40c7b2fc
JS
193CURL_OPT="-g -v --max-time 1 --retry 2 --retry-delay 1 --connect-timeout 1"
194
baee3741
BP
195# Determine whether "diff" supports "normal" diffs. (busybox diff does not.)
196if echo xyzzy | diff /dev/null - | grep '^>' >/dev/null; then
197 DIFF_SUPPORTS_NORMAL_FORMAT=yes
198else
199 DIFF_SUPPORTS_NORMAL_FORMAT=no
200fi
201
4fee8b13
JR
202# Turn off proxies.
203unset http_proxy
204unset https_proxy
205unset ftp_proxy
206unset no_proxy
207unset HTTP_PROXY
208unset HTTPS_PROXY
209unset FTP_PROXY
210unset NO_PROXY
66842c00 211
e11f0c25
BP
212# Prevent logging to syslog during tests.
213OVS_SYSLOG_METHOD=null
214export OVS_SYSLOG_METHOD
9551e80b
IM
215
216# Set default timeout for control utils
217OVS_CTL_TIMEOUT=30
218export OVS_CTL_TIMEOUT
5f223e92
BP
219
220# Add some default flags to make the tests run better under Address
221# Sanitizer, if it was used for the build.
222#
223# We disable leak detection because otherwise minor leaks that don't
224# matter break everything.
225ASAN_OPTIONS=detect_leaks=0:abort_on_error=true:log_path=asan:$ASAN_OPTIONS
226export ASAN_OPTIONS