Commit
40cb4cfc5d01110 added infrastructure to write unit tests using
cmocka. This was implemented using a git submodule to fetch an
up-to-date cmocka test framework.
The issue which appeared was that 'make check' stopped working if
the cmocka submodule was not initialized and updated. As we do not
want this to be a hard depenency, this patch makes running these
unit tests conditional. If cmocka has not been initialized, skip
them or if it has been initialized all unit tests will be run.
[v2 - Also check if cmake is available, as cmocka depends on that
to be built ]
Signed-off-by: David Sommerseth <dazo@privateinternetaccess.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <
1464703645-26640-1-git-send-email-openvpn@sf.lists.topphemmelig.net>
URL: http://article.gmane.org/gmane.network.openvpn.devel/11758
AC_SUBST([TEST_LDFLAGS])
AC_SUBST([TEST_CFLAGS])
+# Check if cmake is available and cmocka git submodule is initialized,
+# needed for unit testing
+AC_CHECK_PROGS([CMAKE], [cmake])
+if test -n "${CMAKE}"; then
+ if test -f vendor/cmocka/CMakeLists.txt; then
+ AM_CONDITIONAL([CMOCKA_INITIALIZED], [true])
+ else
+ AM_CONDITIONAL([CMOCKA_INITIALIZED], [false])
+ AC_MSG_RESULT([!! WARNING !! The cmoka git submodule has not been initialized or updated. Unit testing cannot be performed.])
+ fi
+else
+ AC_MSG_RESULT([!! WARNING !! CMake is NOT available. Unit testing cannot be performed.])
+ AM_CONDITIONAL([CMOCKA_INITIALIZED], [false])
+fi
+
+
AC_CONFIG_FILES([
version.sh
Makefile
AUTOMAKE_OPTIONS = foreign
+if CMOCKA_INITIALIZED
SUBDIRS = example_test plugins
+endif
libcmocka: distdir
mkdir -p $(cmockabuild)
+if CMOCKA_INITIALIZED
(cd $(cmockabuild) && cmake -DCMAKE_INSTALL_PREFIX=$(cmockainstall) $(cmockasrc) && make && make install)
+endif
check: libcmocka