Commit 1a39a0c0 authored by Ondřej Surý's avatar Ondřej Surý

Merge branch 'ondrej/use-cmocka-if-available' into 'master'

Always use cmocka if available

See merge request !1463
parents 9bc600ef 72cb84f0
Pipeline #9594 passed with stages
in 1 minute and 2 seconds
......@@ -63,9 +63,6 @@
/* Use cmocka */
#undef HAVE_CMOCKA
/* Define to 1 if you have the <cmocka.h> header file. */
#undef HAVE_CMOCKA_H
/* Define to 1 if you have the `cpuset_setaffinity' function. */
#undef HAVE_CPUSET_SETAFFINITY
......
......@@ -1651,7 +1651,7 @@ Optional Packages:
--with-docbook-xsl=PATH specify path for Docbook-XSL stylesheets
--with-libidn2=PATH enable IDN support using GNU libidn2
[yes|no(default)|path]
--with-cmocka=no enable cmocka based tests (default is no)
--with-cmocka=detect enable cmocka based tests (default is detect)
--with-tuning=ARG Specify server tuning (large or default)
--with-dlopen=ARG support dynamically loadable DLZ and DYNDB drivers
--with-dnsrps-libname DNSRPS provider library name (librpz.so)
......@@ -19528,17 +19528,16 @@ esac
# Check whether --with-cmocka was given.
if test "${with_cmocka+set}" = set; then :
withval=$with_cmocka; :
withval=$with_cmocka;
else
with_cmocka=no
with_cmocka=detect
fi
case $with_cmocka in #(
no) :
: ;; #(
yes) :
;; #(
detect) :
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cmocka >= 1.0.0" >&5
......@@ -19631,101 +19630,106 @@ $as_echo "yes" >&6; }
$as_echo "#define HAVE_CMOCKA 1" >>confdefs.h
fi
UNITTESTS=tests
;; #(
*) :
UNITTESTS=tests
fi ;; #(
yes) :
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CFLAGS="$CFLAGS -I$with_cmocka/include"
LIBS="$LIBS -L$with_cmocka/lib"
for ac_header in cmocka.h
do :
ac_fn_c_check_header_compile "$LINENO" "cmocka.h" "ac_cv_header_cmocka_h" "#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cmocka >= 1.0.0" >&5
$as_echo_n "checking for cmocka >= 1.0.0... " >&6; }
"
if test "x$ac_cv_header_cmocka_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_CMOCKA_H 1
_ACEOF
:
if test -n "$CMOCKA_CFLAGS"; then
pkg_cv_CMOCKA_CFLAGS="$CMOCKA_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cmocka >= 1.0.0\""; } >&5
($PKG_CONFIG --exists --print-errors "cmocka >= 1.0.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CMOCKA_CFLAGS=`$PKG_CONFIG --cflags "cmocka >= 1.0.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
as_fn_error $? "cmocka.h not found" "$LINENO" 5
pkg_failed=yes
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing cmocka_set_message_output" >&5
$as_echo_n "checking for library containing cmocka_set_message_output... " >&6; }
if ${ac_cv_search_cmocka_set_message_output+:} false; then :
$as_echo_n "(cached) " >&6
else
pkg_failed=untried
fi
if test -n "$CMOCKA_LIBS"; then
pkg_cv_CMOCKA_LIBS="$CMOCKA_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cmocka >= 1.0.0\""; } >&5
($PKG_CONFIG --exists --print-errors "cmocka >= 1.0.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CMOCKA_LIBS=`$PKG_CONFIG --libs "cmocka >= 1.0.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char cmocka_set_message_output ();
int
main ()
{
return cmocka_set_message_output ();
;
return 0;
}
_ACEOF
for ac_lib in '' cmocka; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_cmocka_set_message_output=$ac_res
pkg_failed=yes
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_cmocka_set_message_output+:} false; then :
break
else
pkg_failed=untried
fi
done
if ${ac_cv_search_cmocka_set_message_output+:} false; then :
if test $pkg_failed = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
ac_cv_search_cmocka_set_message_output=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
_pkg_short_errors_supported=no
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_cmocka_set_message_output" >&5
$as_echo "$ac_cv_search_cmocka_set_message_output" >&6; }
ac_res=$ac_cv_search_cmocka_set_message_output
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
if test $_pkg_short_errors_supported = yes; then
CMOCKA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cmocka >= 1.0.0" 2>&1`
else
CMOCKA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cmocka >= 1.0.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$CMOCKA_PKG_ERRORS" >&5
CMOCKA_CFLAGS="-I$with_cmocka/include"
CMOCKA_LIBS="-L$with_cmocka/lib -lcmocka"
UNITTESTS=tests
as_fn_error $? "Package requirements (cmocka >= 1.0.0) were not met:
$as_echo "#define HAVE_CMOCKA 1" >>confdefs.h
$CMOCKA_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables CMOCKA_CFLAGS
and CMOCKA_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables CMOCKA_CFLAGS
and CMOCKA_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See \`config.log' for more details" "$LINENO" 5; }
else
as_fn_error $? "cmocka unit testing framework not found in $with_cmocka path" "$LINENO" 5
fi
CMOCKA_CFLAGS=$pkg_cv_CMOCKA_CFLAGS
CMOCKA_LIBS=$pkg_cv_CMOCKA_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
$as_echo "#define HAVE_CMOCKA 1" >>confdefs.h
;; #(
fi
UNITTESTS=tests ;; #(
*) :
;;
as_fn_error $? "Use PKG_CONFIG_PATH to specify path to json-c library" "$LINENO" 5
;;
esac
......@@ -23922,7 +23926,7 @@ report() {
echo " Very verbose query trace logging (--enable-querytrace)"
test "yes" = "$use_libtool" || echo " Use GNU libtool (--with-libtool)"
test "no" = "$with_cmocka" && echo " CMocka Unit Testng Framework (--with-cmocka)"
test "no" = "$with_cmocka" && echo " CMocka Unit Testing Framework (--with-cmocka)"
test "X$PYTHON" = "X" && echo " Python tools (--with-python)"
test "X$XMLSTATS" = "X" && echo " XML statistics (--with-libxml2)"
......
......@@ -2318,38 +2318,19 @@ AC_SUBST([LIBIDN2_LIBS])
#
AC_ARG_WITH([cmocka],
[AS_HELP_STRING([--with-cmocka=no],[enable cmocka based tests (default is no)])],
[:],[with_cmocka=no])
[AS_HELP_STRING([--with-cmocka=detect],[enable cmocka based tests (default is detect)])],
[],[with_cmocka=detect])
AS_CASE([$with_cmocka],
[no],[:],
[yes],[
PKG_CHECK_MODULES([CMOCKA], [cmocka >= 1.0.0],
[AC_DEFINE([HAVE_CMOCKA], [1], [Use cmocka])])
UNITTESTS=tests
],
[*],[
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CFLAGS="$CFLAGS -I$with_cmocka/include"
LIBS="$LIBS -L$with_cmocka/lib"
AC_CHECK_HEADERS([cmocka.h],
[:],
[AC_MSG_ERROR([cmocka.h not found])],
[#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
])
AC_SEARCH_LIBS([cmocka_set_message_output],
[cmocka],
[
CMOCKA_CFLAGS="-I$with_cmocka/include"
CMOCKA_LIBS="-L$with_cmocka/lib -lcmocka"
UNITTESTS=tests
AC_DEFINE([HAVE_CMOCKA], [1], [Use cmocka])
],
[AC_MSG_ERROR([cmocka unit testing framework not found in $with_cmocka path])])
])
[no],[],
[detect],[PKG_CHECK_MODULES([CMOCKA], [cmocka >= 1.0.0],
[AC_DEFINE([HAVE_CMOCKA], [1], [Use cmocka])
UNITTESTS=tests],[])],
[yes],[PKG_CHECK_MODULES([CMOCKA], [cmocka >= 1.0.0],
[AC_DEFINE([HAVE_CMOCKA], [1], [Use cmocka])])
UNITTESTS=tests],
[AC_MSG_ERROR([Use PKG_CONFIG_PATH to specify path to json-c library])]
)
AC_SUBST([CMOCKA_CFLAGS])
AC_SUBST([CMOCKA_LIBS])
AC_SUBST(UNITTESTS)
......@@ -3174,7 +3155,7 @@ report() {
echo " Very verbose query trace logging (--enable-querytrace)"
test "yes" = "$use_libtool" || echo " Use GNU libtool (--with-libtool)"
test "no" = "$with_cmocka" && echo " CMocka Unit Testng Framework (--with-cmocka)"
test "no" = "$with_cmocka" && echo " CMocka Unit Testing Framework (--with-cmocka)"
test "X$PYTHON" = "X" && echo " Python tools (--with-python)"
test "X$XMLSTATS" = "X" && echo " XML statistics (--with-libxml2)"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment