Files
libcoap/scripts/build.sh
T
Jon Shallow 40c1ddbb24 Travis tests/testdriver fails with libtinydtls.so missing error
When building tinydtls version, Travis fails with the following error

tests/testdriver: error while loading shared libraries: libtinydtls.so:
cannot open shared object file: No such file or directory

The new version of TinyDTLS now builds a libtinydtls.so file which is
linked against in preference to libtinydtls.a when using -ltinydtls,
but Travis does not have an installed version libtinydtls.so to load
during execution of tests/testbriver - hence failure.

scripts/build.sh:

Add in LD_LIBRARY_PATH=ext/tinydtls if building tinydtls.

BUILDING:
configure.ac:

With libtinydtls.so being available, there is no need to enforce
--disable-shared for tinydtls.  Remove this requirement.
If --disable-shared is set, link in with libtinydtls.a.
2019-03-30 13:04:04 +00:00

64 lines
1.8 KiB
Bash
Executable File

#! /bin/sh
if test "x$TESTS" = "xyes" -o "x$TESTS" = "xtrue" ; then
WITH_TESTS="`scripts/fix-cunit.sh` --enable-tests"
test -f `pwd`/cunit.pc && echo cat `pwd`/cunit.pc
fi
TEST_LD_LIBRARY_PATH=
case "x${TLS}" in
xno) WITH_TLS="--disable-dtls"
;;
xopenssl) WITH_TLS="--with-openssl"
;;
xgnutls) WITH_TLS="--with-gnutls"
;;
xtinydtls) WITH_TLS="--with-tinydtls"
# Need this as libtinydtls.so has not been installed
# as a part of the travis build
TEST_LD_LIBRARY_PATH="ext/tinydtls"
;;
*) WITH_TLS="--with-gnutls"
;;
esac
case "x${DOCS}" in
xyes) WITH_DOCS="--enable-documentation"
;;
*) WITH_DOCS="--disable-documentation"
;;
esac
config() {
echo "./configure $*"
./configure $* || cat config.log
}
case "${PLATFORM}" in
contiki) config "--disable-tests $WITH_DOCS --disable-examples $WITH_TLS" && \
make -C examples/contiki
;;
lwip) config "--disable-tests $WITH_DOCS --disable-examples $WITH_TLS" && \
make -C examples/lwip
;;
posix|*) config "$WITH_TESTS $WITH_DOCS --enable-examples $WITH_TLS" && \
make && make check
;;
esac
err=$?
if test $err = 0 -a -n "$WITH_TESTS" ; then
EXEC_FILE=tests/testdriver
# then run valgrind on the actual executable
LD_LIBRARY_PATH=$TEST_LD_LIBRARY_PATH libtool --mode=execute valgrind --track-origins=yes --leak-check=yes --show-reachable=yes --error-exitcode=123 --quiet $EXEC_FILE
err=$?
fi
# invoke OSS-Fuzz syntax checks
if test $err = 0 -a -n "$WITH_TESTS" ; then
make -C tests/oss-fuzz -f Makefile.ci check clean
err=$?
fi
exit $err