dist: focal
env: NOTEST_CFLAGS="-fsanitize=undefined -fno-sanitize-recover=undefined" NOTEST_LIBS=-lubsan
CONFIG="--enable-mods-shared=reallyall --disable-http2" TEST_UBSAN=1
+ # -------------------------------------------------------------------------
+ - name: Linux Ubuntu Focal, ASan
+ dist: focal
+ env: NOTEST_CFLAGS="-ggdb -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer"
+ APR_VERSION=1.7.x APR_CONFIG="--enable-pool-debug"
+ APU_VERSION=1.7.x APU_CONFIG="--with-crypto --with-ldap"
+ CONFIG="--enable-mods-shared=reallyall"
+ TEST_ASAN=1
+ CLEAR_CACHE=1
allow_failures:
# Non-x86 are sometimes flaky:
- arch: s390x
export UBSAN_OPTIONS="log_path=$PWD/ubsan.log"
fi
+ if test -v TEST_ASAN; then
+ export ASAN_OPTIONS="log_path=$PWD/asan.log"
+ fi
+
if test -v WITH_TEST_SUITE; then
make check TESTS="${TESTS}" TEST_CONFIG="${TEST_ARGS}"
RV=$?
RV=3
fi
+ if test -v TEST_ASAN && ls asan.log.* &> /dev/null; then
+ cat asan.log.*
+
+ # ASan can report memory leaks, fail on errors only
+ if grep -q "ERROR: AddressSanitizer:" `ls asan.log.*`; then
+ RV=4
+ fi
+ fi
+
if test -f test/perl-framework/t/core; then
gdb -ex 'thread apply all backtrace' -batch ./httpd test/perl-framework/t/core
- RV=4
+ RV=5
fi
exit $RV