From: Anton Yuzhaninov Date: Wed, 14 Nov 2018 00:41:52 +0000 (-0500) Subject: Use clang sanitizers X-Git-Tag: 1.8.2~32^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=53947bd6bc504e1450b11f6fc345d409bf3e9a86;p=thirdparty%2Frspamd.git Use clang sanitizers --- diff --git a/.drone.yml b/.drone.yml index da1386e264..8bdbc77e2c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -38,6 +38,8 @@ pipeline: - test "$(id -un)" = nobody - cd /rspamd/fedora/build - export LDFLAGS='-fuse-ld=lld' + - export CFLAGS='-fsanitize=address,undefined,implicit-integer-truncation' + - export ASAN_OPTIONS=detect_leaks=0 - > cmake -DENABLE_CLANG_PLUGIN=ON @@ -112,7 +114,11 @@ pipeline: group: tests commands: - test "$(id -un)" = nobody - - ulimit -c unlimited + # Asan reserves 20Tb of virtual memory, limit core size to 2 Gb to avoid writing huge core + - ulimit -c 2097152 + # disable leak sanitizer: too many leaks detected, most of them probably FP + - export ASAN_OPTIONS="detect_leaks=0:print_stacktrace=1:disable_coredump=0" + - export UBSAN_OPTIONS="print_stacktrace=1:log_path=/tmp/ubsan" - cd /rspamd/fedora/build/test - set +e - ./rspamd-test -p /rspamd/lua; EXIT_CODE=$? @@ -123,6 +129,7 @@ pipeline: if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'bt' -c /var/tmp/*.rspamd-test.core ./rspamd-test; fi + - cat /tmp/ubsan.* - exit $EXIT_CODE functional: