before_install:
- sudo apt-get update -qq
- sudo apt-get install -y bison dejagnu gettext keyutils ldap-utils libldap2-dev libkeyutils-dev libssl-dev python-cjson python-paste python-pyrad slapd tcl-dev tcsh
+ - mkdir -p cmocka/build
+ - cd cmocka
+ - wget https://cmocka.org/files/1.0/cmocka-1.0.1.tar.xz
+ - tar -xvf cmocka-1.0.1.tar.xz
+ - cd build
+ - cmake ../cmocka-1.0.1 -DCMAKE_INSTALL_PREFIX=/usr
+ - make
+ - sudo make install
+ - cd ../..
script: cd src && autoreconf && ./configure --with-ldap && make && make check
check-pytests-no: check-postrecurse
@echo 'Skipped python test scripts: python 2.5 or later required' >> \
+
+check-cmocka-no: check-postrecurse
+ @echo 'Skipped cmocka tests due to missing library or header file' >> \
$(SKIPTESTS)
# Create a test realm and spawn a shell in an environment pointing to it.
check-pytests-no:
check-pytests:
+# cmocka tests
+check-unix: check-cmocka-@HAVE_CMOCKA@
+
+check-cmocka-yes: check-cmocka
+check-cmocka-no:
+check-cmocka:
+
clean: clean-$(WHAT)
clean-unix::
DL_LIB = @DL_LIB@
+CMOCKA_LIBS = @CMOCKA_LIBS@
LDAP_LIBS = @LDAP_LIBS@
KRB5_LIB = -lkrb5
fi
AC_SUBST(HAVE_PYTHON)
+# For cmocka tests.
+CMOCKA_LIBS=
+HAVE_CMOCKA=no
+HAVE_CMOCKA_H=no
+HAVE_CMOCKA_LIB=no
+AC_CHECK_HEADER(cmocka.h, [HAVE_CMOCKA_H=yes], :, [
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h> ])
+AC_CHECK_LIB(cmocka, _cmocka_run_group_tests, [HAVE_CMOCKA_LIB=yes])
+if test "$HAVE_CMOCKA_LIB" = yes && test "$HAVE_CMOCKA_H" = yes; then
+ HAVE_CMOCKA=yes
+ CMOCKA_LIBS='-lcmocka'
+fi
+AC_SUBST(HAVE_CMOCKA)
+AC_SUBST(CMOCKA_LIBS)
+
# for plugins/kdb/db2
# AIX is unusual in that it wants all symbols resolved at link time