mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-25 14:45:12 +00:00
0f8d5f2eb6
* Adding a valgrind build on debug Python 3.9 Co-authored-by: Boris Staletic <boris.staletic@gmail.com> * Add Valgrind suppression files - Introduce suppression file, populate it with a first suppression taken from CPython, and fix one leak in the tests - Suppress leak in NumPy - More clean tests! - Tests with names a-e passing (except for test_buffer) - Suppress multiprocessing errors - Merge multiprocessing suppressions into other suppression files - Numpy seems to be spelled with a big P - Append single entry from valgrind-misc.supp to valgrind-python.supp, and make clear valgrind-python.supp is only CPython Co-authored-by: Boris Staletic <boris.staletic@gmail.com> * Enable test_virtual_functions with a workaround * Add a memcheck cmake target - Add a memcheck cmake target - Reformat cmake - Appease the formatting overlords - they are angry - Format CMake valgrind target decently * Update CI config to new action versions * fix: separate memcheck from pytest * ci: cleanup * Merge Valgrind and other deadsnakes builds Co-authored-by: Boris Staletic <boris.staletic@gmail.com> Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
136 lines
3.0 KiB
Plaintext
136 lines
3.0 KiB
Plaintext
# Valgrind suppression file for CPython errors and leaks in pybind11 tests
|
|
|
|
# Taken verbatim from https://github.com/python/cpython/blob/3.9/Misc/valgrind-python.supp#L266-L272
|
|
{
|
|
Uninitialised byte(s) false alarm, see bpo-35561
|
|
Memcheck:Param
|
|
epoll_ctl(event)
|
|
fun:epoll_ctl
|
|
fun:pyepoll_internal_ctl
|
|
}
|
|
|
|
{
|
|
Python leaks when spawning a subprocess
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
fun:_PyMem_RawMalloc
|
|
fun:PyMem_RawMalloc
|
|
fun:PyThread_allocate_lock
|
|
fun:_PyEval_InitState
|
|
fun:PyInterpreterState_New
|
|
...
|
|
fun:pyinit_core*
|
|
fun:Py_InitializeFromConfig
|
|
fun:pymain_init
|
|
fun:pymain_main
|
|
}
|
|
|
|
{
|
|
Python leaks when spawning a subprocess
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
fun:_PyMem_RawMalloc
|
|
fun:_PyMem_DebugRawAlloc
|
|
fun:_PyMem_DebugRawMalloc
|
|
fun:PyMem_RawMalloc
|
|
fun:PyThread_allocate_lock
|
|
fun:_PyRuntimeState_Init_impl
|
|
fun:_PyRuntimeState_Init
|
|
fun:_PyRuntime_Initialize
|
|
fun:pymain_init
|
|
fun:pymain_main
|
|
fun:Py_BytesMain
|
|
}
|
|
|
|
{
|
|
Python leaks when spawning a subprocess
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
fun:_PyMem_RawMalloc
|
|
fun:PyMem_RawMalloc
|
|
fun:PyThread_allocate_lock
|
|
fun:_PyImport_AcquireLock
|
|
fun:_imp_acquire_lock_impl*
|
|
fun:_imp_acquire_lock
|
|
fun:cfunction_vectorcall_NOARGS
|
|
fun:_PyObject_VectorcallTstate
|
|
fun:PyObject_Vectorcall
|
|
fun:call_function
|
|
fun:_PyEval_EvalFrameDefault
|
|
fun:_PyEval_EvalFrame
|
|
fun:function_code_fastcall
|
|
}
|
|
|
|
{
|
|
Python leaks when spawning a subprocess
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
fun:_PyMem_RawMalloc
|
|
fun:PyMem_RawMalloc
|
|
fun:PyThread_allocate_lock
|
|
fun:newlockobject
|
|
...
|
|
fun:cfunction_vectorcall_NOARGS
|
|
fun:_PyObject_VectorcallTstate
|
|
fun:PyObject_Vectorcall
|
|
fun:call_function
|
|
fun:_PyEval_EvalFrameDefault
|
|
fun:_PyEval_EvalFrame
|
|
fun:function_code_fastcall
|
|
fun:_PyFunction_Vectorcall
|
|
}
|
|
|
|
{
|
|
Python leaks when spawning a subprocess
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
fun:_PyMem_RawMalloc
|
|
fun:PyMem_RawMalloc
|
|
fun:PyThread_allocate_lock
|
|
fun:rlock_new
|
|
fun:type_call
|
|
fun:_PyObject_Call
|
|
fun:PyObject_Call
|
|
fun:do_call_core
|
|
fun:_PyEval_EvalFrameDefault
|
|
fun:_PyEval_EvalFrame
|
|
fun:_PyEval_EvalCode
|
|
fun:_PyFunction_Vectorcall
|
|
}
|
|
|
|
# Not really CPython-specific, see link
|
|
{
|
|
dlopen leak (https://stackoverflow.com/questions/1542457/memory-leak-reported-by-valgrind-in-dlopen)
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
...
|
|
fun:dl_open_worker
|
|
fun:_dl_catch_exception
|
|
fun:_dl_open
|
|
fun:dlopen_doit
|
|
fun:_dl_catch_exception
|
|
fun:_dl_catch_error
|
|
fun:_dlerror_run
|
|
fun:dlopen@@GLIBC_2.2.5
|
|
fun:_PyImport_FindSharedFuncptr
|
|
fun:_PyImport_LoadDynamicModuleWithSpec
|
|
}
|
|
|
|
# Not really CPython-specific, see link
|
|
{
|
|
dlopen leak (https://stackoverflow.com/questions/1542457/memory-leak-reported-by-valgrind-in-dlopen)
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
...
|
|
fun:dl_open_worker
|
|
fun:_dl_catch_exception
|
|
fun:_dl_open
|
|
fun:dlopen_doit
|
|
fun:_dl_catch_exception
|
|
fun:_dl_catch_error
|
|
fun:_dlerror_run
|
|
fun:dlopen@@GLIBC_2.2.5
|
|
fun:_PyImport_FindSharedFuncptr
|
|
fun:_PyImport_LoadDynamicModuleWithSpec
|
|
}
|