tests: Disable glibc memory checking under glibc <= 2.11.
[cascardo/ovs.git] / tests / atlocal.in
1 # -*- shell-script -*-
2 HAVE_OPENSSL='@HAVE_OPENSSL@'
3 HAVE_PYTHON='@HAVE_PYTHON@'
4 EGREP='@EGREP@'
5 PERL='@PERL@'
6
7 if test x"$PYTHON" = x; then
8     PYTHON='@PYTHON@'
9 fi
10
11 PYTHONPATH=$abs_top_srcdir/python:$abs_top_builddir/tests:$PYTHONPATH
12 export PYTHONPATH
13
14 PYTHONIOENCODING=utf_8
15 export PYTHONIOENCODING
16
17 # PYTHONDONTWRITEBYTECODE=yes keeps Python 2.6+ from creating .pyc and .pyo
18 # files.  Creating .py[co] works OK for any given version of Open
19 # vSwitch, but it causes trouble if you switch from a version with
20 # foo/__init__.py into an (older) version with plain foo.py, since
21 # foo/__init__.pyc will cause Python to ignore foo.py.
22 #
23 # Python before version 2.6 always creates .pyc files, so if you develop
24 # with such an older version then you're out of luck.
25 PYTHONDONTWRITEBYTECODE=yes
26 export PYTHONDONTWRITEBYTECODE
27
28 # Test whether the current working directory name is all ASCII
29 # characters.  Some Python code doesn't tolerate non-ASCII characters
30 # in filenames very well, so if the current working directory is
31 # non-ASCII then we skip the tests that run those programs.
32 #
33 # This would be just papering over a real problem, except that the
34 # tests that we skip are launched from initscripts and thus normally
35 # run in system directories with ASCII names.  (This problem only came
36 # up at all because the Debian autobuilders do build in a top-level
37 # directory named /«BUILDDIR».)
38 case `pwd | tr -d ' -~'` in
39     '') non_ascii_cwd=false ;;
40     *) non_ascii_cwd=true
41 esac
42
43 if test $HAVE_PYTHON = yes; then
44     if python -m argparse 2>/dev/null; then
45         :
46     else
47         PYTHONPATH=$PYTHONPATH:$abs_top_srcdir/python/compat
48         export PYTHONPATH
49     fi
50 fi
51
52 # Enable malloc debugging features.
53 case `uname` in
54 Linux)
55     MALLOC_PERTURB_=165; export MALLOC_PERTURB_
56
57     # Before glibc 2.11, the feature enabled by MALLOC_CHECK_ was not
58     # thread-safe.  See https://bugzilla.redhat.com/show_bug.cgi?id=585674 and
59     # in particular the patch attached there, which was applied to glibc CVS as
60     # "Restore locking in free_check." between 1.11 and 1.11.1.
61     vswitchd=$abs_top_builddir/vswitchd/ovs-vswitchd
62     glibc=`ldd $vswitchd | sed -n 's/^  libc\.[^ ]* => \([^ ]*\) .*/\1/p'`
63     glibc_version=`$glibc | sed -n '1s/.*version \([0-9]\{1,\}\.[0-9]\{1,\}\).*/\1/p'`
64     case $glibc_version in
65         2.[0-9] | 2.1[01]) mcheck=disabled ;;
66         *) mcheck=enabled ;;
67     esac
68     if test $mcheck = enabled; then
69         MALLOC_CHECK_=2; export MALLOC_CHECK_
70     else
71         echo >&2 "glibc $glibc_version detected, disabling memory checking"
72     fi
73     ;;
74 FreeBSD)
75     case `uname -r` in
76     [789].*)
77         MALLOC_CONF=AJ
78         ;;
79     *)
80         MALLOC_CONF=abort:true,junk:true,redzone:true
81         ;;
82     esac
83     export MALLOC_CONF
84 esac
85
86 # The name of loopback interface 
87 case `uname` in
88 Linux)
89     LOOPBACK_INTERFACE=lo
90     ;;
91 FreeBSD|NetBSD)
92     LOOPBACK_INTERFACE=lo0
93     ;;
94 esac
95
96 # Check for MINGW platform.
97 case `uname` in
98 MINGW*)
99     IS_WIN32="yes"
100     ;;
101 *)
102     IS_WIN32="no"
103     ;;
104 esac
105
106 # XXX: Disable Python related tests on Windows because Open vSwitch code
107 # written in Python has not been ported to the Windows platform. We will
108 # need to remove the next block after porting is complete.
109 if test "$IS_WIN32" = "yes"; then
110     HAVE_PYTHON="no"
111 fi