diff --git a/Makefile-tests.am b/Makefile-tests.am index 5782fcbd..11ac2d7f 100644 --- a/Makefile-tests.am +++ b/Makefile-tests.am @@ -33,6 +33,9 @@ TESTS_ENVIRONMENT += OT_TESTS_DEBUG=1 \ LD_LIBRARY_PATH=$$(cd $(top_builddir)/.libs && pwd)$${LD_LIBRARY_PATH:+:$${LD_LIBRARY_PATH}} \ PATH=$$(cd $(top_builddir)/tests && pwd):$${PATH} \ $(NULL) +if BUILDOPT_ASAN +TESTS_ENVIRONMENT += OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc +endif uninstalled_test_data = tests/ostree-symlink-stamp tests/ostree-prepare-root-symlink-stamp \ tests/ostree-remount-symlink-stamp tests/rofiles-fuse-symlink-stamp @@ -53,7 +56,6 @@ dist_test_scripts = \ tests/test-parent.sh \ tests/test-pull-archive-z.sh \ tests/test-pull-commit-only.sh \ - tests/test-pull-corruption.sh \ tests/test-pull-depth.sh \ tests/test-pull-mirror-summary.sh \ tests/test-pull-large-metadata.sh \ @@ -104,10 +106,10 @@ if USE_LIBSOUP dist_test_scripts += tests/test-remote-cookies.sh endif -# This one uses corrupt-repo-ref.js -js_tests = tests/test-corruption.sh +# These call into gjs scripts +js_tests = tests/test-corruption.sh tests/test-pull-corruption.sh if BUILDOPT_GJS -dist_test_scripts += tests/test-corruption.sh +dist_test_scripts += $(js_tests) else EXTRA_DIST += $(js_tests) endif diff --git a/configure.ac b/configure.ac index 4e004ca6..7168221d 100644 --- a/configure.ac +++ b/configure.ac @@ -37,6 +37,15 @@ CC_CHECK_FLAGS_APPEND([WARN_CFLAGS], [CFLAGS], [\ ]) AC_SUBST(WARN_CFLAGS) +AC_MSG_CHECKING([for -fsanitize=address in CFLAGS]) +if echo $CFLAGS | grep -q -e -fsanitize=address; then + AC_MSG_RESULT([yes]) + using_asan=yes +else + AC_MSG_RESULT([no]) +fi +AM_CONDITIONAL(BUILDOPT_ASAN, [test x$using_asan = xyes]) + # Initialize libtool LT_PREREQ([2.2.4]) LT_INIT([disable-static]) @@ -305,8 +314,9 @@ AC_ARG_WITH(static-compiler, AM_CONDITIONAL(BUILDOPT_USE_STATIC_COMPILER, test x$with_static_compiler != xno) AC_SUBST(STATIC_COMPILER, $with_static_compiler) -dnl for tests -AS_IF([test "x$found_introspection" = xyes], [ +dnl for tests (but we can't use asan with gjs or any introspection, +dnl see https://github.com/google/sanitizers/wiki/AddressSanitizerAsDso for more info) +AS_IF([test "x$found_introspection" = xyes && test x$using_asan != xyes], [ AC_PATH_PROG(GJS, [gjs]) if test -n "$GJS"; then have_gjs=yes