Skip to content

Draft: Make functional tests also use sanitizer exclusions

When tsan is configured, the unit test suite is configured to use an exclusion/suppression/black list, but the functional tests are not.

There are several known tsan false positives, already documented in test/sanitizer_suppressions/tsan , namely bdb, which is too old to use C++11 style locks, is not properly instrumented for tsan and fails tsan tests spuriously. The unit tests are configured by cmake to be used in unit test.

This MR adds the already defined suppression list to also be used by functional tests.

Marked as draft because

  • Only tsan is added for now, would make sense to add other sanitizers
  • While the bdb is properly ignore, the feature_maxuploadtarget functional tests still often fails with too long mutex cycle

Closes #268

Test plan

  1. mkdir build_tsan
  2. cmake -GNinja .. -DBUILD_BITCOIN_WALLET=ON -DBUILD_BITCOIN_QT=ON -DENABLE_SANITIZERS=thread -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/clang -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++ -DCMAKE_BUILD_TYPE=Release
  3. ninja
  4. ninja check-functional
Edited by matricz

Merge request reports