• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#! /bin/sh
2
3SILENT="--disable-silent-rules"
4
5if test "x$TESTS" = "xyes" -o "x$TESTS" = "xtrue" ; then
6    WITH_TESTS="`scripts/fix-cunit.sh` --enable-tests"
7    test -f `pwd`/cunit.pc && echo cat `pwd`/cunit.pc
8fi
9
10TEST_LD_LIBRARY_PATH=
11case "x${TLS}" in
12    xno)       WITH_TLS="--disable-dtls"
13               ;;
14    xopenssl)  WITH_TLS="--with-openssl"
15               ;;
16    xgnutls)   WITH_TLS="--with-gnutls"
17               ;;
18    xtinydtls) WITH_TLS="--with-tinydtls"
19               # Need this as libtinydtls.so has not been installed
20               # as a part of the travis build
21               TEST_LD_LIBRARY_PATH="ext/tinydtls"
22               ;;
23    *)         WITH_TLS="--with-gnutls"
24               ;;
25esac
26
27case "x${DOCS}" in
28    xyes)      WITH_DOCS="--enable-documentation"
29               ;;
30    *)         WITH_DOCS="--disable-documentation"
31               ;;
32esac
33
34# Building with epoll support can be disabled by setting EPOLL=no.
35# Otherwise, it is enabled by default and used if available.
36if test "x$EPOLL" = "xno" ; then
37    OTHER_OPTS="$OTHER_OPTS --without-epoll"
38fi
39
40# Enable constrained stack build when SMALL_STACK is set to yes.
41if test "x$SMALL_STACK" = "xyes" ; then
42    OTHER_OPTS="$OTHER_OPTS --enable-small-stack"
43fi
44
45config() {
46    echo "./configure $SILENT $*"
47    ./configure $SILENT $* || cat config.log
48}
49
50case "${PLATFORM}" in
51    contiki) config "--disable-tests $WITH_DOCS --disable-examples $WITH_TLS" && \
52               make -C examples/contiki
53             ;;
54    lwip)    config "--disable-tests $WITH_DOCS --disable-examples $WITH_TLS" && \
55               make -C examples/lwip
56             ;;
57    posix|*) config "$WITH_TESTS $WITH_DOCS --enable-examples $WITH_TLS $OTHER_OPTS" && \
58               make && make check
59             ;;
60esac
61
62err=$?
63if test $err = 0 -a -n "$WITH_TESTS" ; then
64    EXEC_FILE=tests/testdriver
65    # then run valgrind on the actual executable
66    LD_LIBRARY_PATH=$TEST_LD_LIBRARY_PATH libtool --mode=execute valgrind --track-origins=yes --leak-check=yes --show-reachable=yes --error-exitcode=123 --quiet --suppressions=tests/valgrind_suppression $EXEC_FILE
67    err=$?
68fi
69
70# invoke OSS-Fuzz syntax checks
71if test $err = 0 -a -n "$WITH_TESTS" ; then
72    make -C tests/oss-fuzz -f Makefile.ci check clean
73    err=$?
74fi
75
76exit $err
77