pika
pika copied to clipboard
Enable sanitizers in CI
This is potentially very important for debugging. We currently only test with lsan (leak sanitizer). We should try to add tsan (thread sanitizer), msan (memory sanitizer), asan (address sanitizer), and ubsan (undefined behaviour sanitizers). Enabling them with heavy suppression files would be a good start, just to allow consumers of pika to enable sanitizers.
- [x] lsan
- [x] tsan
- [x] asan
- [x] ubsan
msan
This would require recompiling all dependencies with -fsanitize=memory
, including the standard library: https://github.com/google/sanitizers/wiki/MemorySanitizer#using-instrumented-libraries. This is something to consider doing with the CSCS CI pipelines and spack.
With #1042 all tests and examples, except for an explicit set of blacklisted tests, run through asan, lsan, ubsan, and tsan on merges. msan is still not used at all.
Closing in favour of a more specific issue #1124.