diff options
author | Daniel Hahler <git@thequod.de> | 2019-08-14 22:16:05 +0200 |
---|---|---|
committer | Daniel Hahler <git@thequod.de> | 2019-08-14 23:17:53 +0200 |
commit | ae31de32ee49951e4d107043f88dbfed07473c47 (patch) | |
tree | 3149d239fb4f42d87ae3ae865353fd17d401225e | |
parent | 7c0ae066649424d69c4d00918b6dd6aa0314106b (diff) | |
download | rneovim-ae31de32ee49951e4d107043f88dbfed07473c47.tar.gz rneovim-ae31de32ee49951e4d107043f88dbfed07473c47.tar.bz2 rneovim-ae31de32ee49951e4d107043f88dbfed07473c47.zip |
build: TSan: add src/.tsan-suppressions
Uses runtime suppressions instead of a blacklist, which can only ignore
whole files/functions.
Ref: https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions
Ref: https://github.com/neovim/neovim/pull/10591#issuecomment-521248233
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | src/.tsan-suppressions | 2 | ||||
-rw-r--r-- | src/nvim/README.md | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/.travis.yml b/.travis.yml index 04592b6067..9d8a2ea59b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,7 @@ env: -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/i386-linux-gnu.toolchain.cmake" # Environment variables for Clang sanitizers. - ASAN_OPTIONS="detect_leaks=1:check_initialization_order=1:log_path=$LOG_DIR/asan" - - TSAN_OPTIONS="log_path=$LOG_DIR/tsan" + - TSAN_OPTIONS="log_path=$LOG_DIR/tsan:suppressions=$TRAVIS_BUILD_DIR/src/.tsan-suppressions" - UBSAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/ubsan" # Environment variables for Valgrind. - VALGRIND_LOG="$LOG_DIR/valgrind-%p.log" diff --git a/src/.tsan-suppressions b/src/.tsan-suppressions new file mode 100644 index 0000000000..c004a468a6 --- /dev/null +++ b/src/.tsan-suppressions @@ -0,0 +1,2 @@ +# Ref: https://github.com/neovim/neovim/pull/10591#issuecomment-521248233 +race:starting diff --git a/src/nvim/README.md b/src/nvim/README.md index 3c956cb2e9..64d729cc8b 100644 --- a/src/nvim/README.md +++ b/src/nvim/README.md @@ -63,7 +63,7 @@ Enable the sanitizer(s) via these environment variables: export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer export MSAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer - export TSAN_OPTIONS="external_symbolizer_path=/usr/lib/llvm-5.0/bin/llvm-symbolizer log_path=${HOME}/logs/tsan" + export TSAN_OPTIONS="log_path=${HOME}/logs/tsan:suppressions=${NVIM_PATH}/src/.tsan-suppressions" Logs will be written to `${HOME}/logs/*san.PID`. |