• Kirill Smelkov's avatar
    tox += ThreadSanitizer, AddressSanitizer, Python debug builds · 4dc1a7f0
    Kirill Smelkov authored
    - ThreadSanitizer helps to detect races and some memory errors,
    - AddressSanitizer helps to detect memory errors,
    - Python debug builds help to detect e.g reference counting errors.
    
    Adding all those tools to testing coverage discovers e.g. the following
    bugs (not a full list):
    
    ---- 8< ----
    
    py27-thread-tsan:
    WARNING: ThreadSanitizer: data race (pid=7143)
      Write of size 8 at 0x7b1400000650 by main thread:
        #0 free ../../../../src/libsanitizer/tsan/tsan_interceptors.cc:649 (libtsan.so.0+0x2b46a)
        #1 free ../../../../src/libsanitizer/tsan/tsan_interceptors.cc:643 (libtsan.so.0+0x2b46a)
        #2 golang::_chan::decref() golang/runtime/libgolang.cpp:470 (liblibgolang.so.0.1+0x47f2)
        #3 _chanxdecref golang/runtime/libgolang.cpp:452 (liblibgolang.so.0.1+0x484a)
        #4 _test_go_c golang/runtime/libgolang_test_c.c:86 (_golang_test.so+0x13a2e)
        #5 __pyx_pf_6golang_12_golang_test_12test_go_c golang/_golang_test.cpp:3340 (_golang_test.so+0xcbaa...
    4dc1a7f0
trun 6.09 KB