configure: Check for presence of Python 3.
[cascardo/ovs.git] / tests / atlocal.in
index 06e7384..f174061 100644 (file)
@@ -1,6 +1,7 @@
 # -*- shell-script -*-
 HAVE_OPENSSL='@HAVE_OPENSSL@'
 HAVE_PYTHON='@HAVE_PYTHON@'
+HAVE_PYTHON3='@HAVE_PYTHON3@'
 EGREP='@EGREP@'
 PERL='@PERL@'
 
@@ -8,20 +9,21 @@ if test x"$PYTHON" = x; then
     PYTHON='@PYTHON@'
 fi
 
+if test x"$PYTHON3" = x; then
+    PYTHON3='@PYTHON3@'
+fi
+
 PYTHONPATH=$abs_top_srcdir/python:$abs_top_builddir/tests:$PYTHONPATH
 export PYTHONPATH
 
 PYTHONIOENCODING=utf_8
 export PYTHONIOENCODING
 
-# PYTHONDONTWRITEBYTECODE=yes keeps Python 2.6+ from creating .pyc and .pyo
+# 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.
-#
-# Python before version 2.6 always creates .pyc files, so if you develop
-# with such an older version then you're out of luck.
 PYTHONDONTWRITEBYTECODE=yes
 export PYTHONDONTWRITEBYTECODE
 
@@ -40,22 +42,27 @@ case `pwd | tr -d ' -~'` in
     *) non_ascii_cwd=true
 esac
 
-if test $HAVE_PYTHON = yes; then
-    if python -m argparse 2>/dev/null; then
-        :
-    else
-        PYTHONPATH=$PYTHONPATH:$abs_top_srcdir/python/compat
-        export PYTHONPATH
-    fi
-fi
-
 # Enable malloc debugging features.
 case `uname` in
 Linux)
-    MALLOC_CHECK_=2
-    MALLOC_PERTURB_=165
-    export MALLOC_CHECK_
-    export MALLOC_PERTURB_
+    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
@@ -78,3 +85,47 @@ 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
+
+# XXX: Disable Python related tests on Windows because Open vSwitch code
+# written in Python has not been ported to the Windows platform. We will
+# need to remove the next block after porting is complete.
+if test "$IS_WIN32" = "yes"; then
+    HAVE_PYTHON="no"
+fi
+
+if test "$HAVE_PYTHON" = "yes" \
+   && test "x`$PYTHON $abs_top_srcdir/tests/test-l7.py --help | grep 'ftp'`" != x; then
+    HAVE_PYFTPDLIB="yes"
+else
+    HAVE_PYFTPDLIB="no"
+fi
+
+# Determine correct netcat option to quit on stdin EOF
+if nc --version 2>&1 | grep -q nmap.org; then
+    NC_EOF_OPT="--send-only"
+else
+    NC_EOF_OPT="-q 1"
+fi