]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Use clang sanitizers
authorAnton Yuzhaninov <citrin+git@citrin.ru>
Wed, 14 Nov 2018 00:41:52 +0000 (19:41 -0500)
committerAnton Yuzhaninov <citrin+git@citrin.ru>
Wed, 14 Nov 2018 03:11:56 +0000 (22:11 -0500)
.drone.yml

index da1386e264f2abb4793a5c0d315e45d719a4275b..8bdbc77e2c6d7d427a99010c7938b4dedb4b4855 100644 (file)
@@ -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: