summaryrefslogtreecommitdiff
path: root/tests/atlocal.in
blob: f174061d8f82a2ccdc14813eb5c6354e641893aa (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
# -*- 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@'
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

# 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