diff options
author | Nicolas Williams <nico@cryptonector.com> | 2015-10-27 19:01:06 -0500 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2015-10-27 20:06:21 -0500 |
commit | 8f115e9eed8e71816b9f3a86e0d3aabd47a750d9 (patch) | |
tree | f4631abbc843cc80b1cea12a8d126ac6d5e3b52d | |
parent | e17ccf229723d776c0d49341665256b855c70bda (diff) |
Add address sanitizer (ASAN) support (fix #1002)
-rw-r--r-- | Makefile.am | 5 | ||||
-rw-r--r-- | configure.ac | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index 01a7ed12..327dc6d0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -54,11 +54,16 @@ include_HEADERS = src/jv.h src/jq.h ### Running tests under Valgrind +if ENABLE_ASAN +AM_CFLAGS += -fsanitize=address +NO_VALGRIND = 1 +else if ENABLE_VALGRIND NO_VALGRIND = else NO_VALGRIND = 1 endif +endif ### Code coverage with gcov diff --git a/configure.ac b/configure.ac index 93a2fb6e..9e2c8cf8 100644 --- a/configure.ac +++ b/configure.ac @@ -89,6 +89,11 @@ dnl fix leaks. AC_ARG_ENABLE([valgrind], AC_HELP_STRING([--disable-valgrind], [do not run tests under Valgrind])) +dnl Running tests with Valgrind is slow; address sanitizer (ASAN) is +dnl faster. +AC_ARG_ENABLE([asan], + AC_HELP_STRING([--enable-asan], [enable address sanitizer])) + dnl Code coverage AC_ARG_ENABLE([gcov], AC_HELP_STRING([--enable-gcov], [enable gcov code coverage tool])) @@ -117,7 +122,7 @@ AS_IF([test "x$enable_docs" != "xno"],[ ***************************************************************** * Ruby dependencies for building jq documentation not found. * * You can still build, install and hack on jq, but the manpage * -* will not be rebuilt and some of the tests won't run. * +* will not be rebuilt and some of the tests will not run. * * See docs/README.md for how to install the docs dependencies. * ***************************************************************** EOF @@ -130,6 +135,7 @@ EOF ]) AM_CONDITIONAL([ENABLE_VALGRIND], [test "x$enable_valgrind" != xno]) +AM_CONDITIONAL([ENABLE_ASAN], [test "x$enable_asan" = xyes]) AM_CONDITIONAL([ENABLE_GCOV], [test "x$enable_gcov" = xyes]) AM_CONDITIONAL([ENABLE_DOCS], [test "x$enable_docs" != xno]) AM_CONDITIONAL([ENABLE_ERROR_INJECTION], [test "x$enable_error_injection" = xyes]) |