Blob Blame History Raw
# Support for coverage analysis via gcov:
# from http://fragglet.livejournal.com/14291.html
 
AC_DEFUN([DODS_GCOV_VALGRIND],
[
               
AC_ARG_ENABLE(coverage,
    [AS_HELP_STRING([--enable-coverage],
                    [Collect coverage data (default is no)]) ],
    [coverage=$enableval],
    [coverage=no])
 
AS_IF([test x$coverage = xyes], 
    [ AS_IF([test x$GCC = xyes],
            [ CFLAGS="-fprofile-arcs -ftest-coverage -pg $CFLAGS"
              CXXFLAGS="-fprofile-arcs -ftest-coverage -pg $CXXFLAGS"
              LDFLAGS="-pg $LDFLAGS"
              AC_CHECK_LIB([gcov], [gcov_open],[LIBS="$LIBS -lgcov"],[],[])
	          AC_MSG_NOTICE([Building coverage reporting.]) ],
            [ AC_MSG_ERROR([Can only enable coverage when using gcc.]) ]) ])
               
# Support for running test cases using valgrind:
               
use_valgrind=no
AC_ARG_ENABLE(valgrind,
    [AS_HELP_STRING([--enable-valgrind], 
    	            [Use valgrind when running unit tests. (default is no)])],
    [use_valgrind=$enableval],
    [use_valgrind=no])
               
AS_IF([test x$use_valgrind = xyes ],
      [ AC_CHECK_PROG(HAVE_VALGRIND, valgrind, yes, no)
        AS_IF([test x$HAVE_VALGRIND = xyes ],
	          [AC_MSG_NOTICE([Using valgrind with unit tests.])],
	          [AC_MSG_ERROR([Valgrind not found in PATH.])])])

AM_CONDITIONAL(USE_VALGRIND, [test x$use_valgrind = xyes])

])