57 lines
2.3 KiB
Plaintext
57 lines
2.3 KiB
Plaintext
|
|
# Valgrind suppressions for the libakgl memory-check run.
|
||
|
|
#
|
||
|
|
# Used by `cmake --build build --target memcheck` and by any hand-run
|
||
|
|
# `ctest -T memcheck`; see AGENTS.md -> "Memory checking".
|
||
|
|
#
|
||
|
|
# Every entry here is a deliberate decision that a finding belongs to somebody
|
||
|
|
# else's code and cannot be fixed from this repository. Nothing that libakgl
|
||
|
|
# allocates is suppressed, and nothing is suppressed merely because it is noisy.
|
||
|
|
# If a suppression starts hiding a real finding, delete it -- a false negative in
|
||
|
|
# a leak check is worth more than a quiet log.
|
||
|
|
#
|
||
|
|
# The memcheck target runs the suite headless (SDL_VIDEO_DRIVER=dummy,
|
||
|
|
# SDL_RENDER_DRIVER=software, SDL_AUDIO_DRIVER=dummy) precisely so that the GPU
|
||
|
|
# stack is never loaded. That removes thousands of unfixable findings inside
|
||
|
|
# amdgpu_dri.so / Mesa / libGLX without suppressing anything, which is why there
|
||
|
|
# are no driver entries below. Run the suite against a real driver and you will
|
||
|
|
# need them; do not add them here on that account.
|
||
|
|
|
||
|
|
# SDL allocates its global state -- the hint table, the property registry, the
|
||
|
|
# log category array, the clipboard -- on first use and reclaims it in SDL_Quit.
|
||
|
|
# A test that fails before SDL_Quit, and every test that deliberately leaves SDL
|
||
|
|
# up so a later assertion can look at it, leaves those blocks behind. They are
|
||
|
|
# one-per-process, not per-call, so they cannot accumulate into a leak.
|
||
|
|
{
|
||
|
|
sdl3-global-state-still-reachable
|
||
|
|
Memcheck:Leak
|
||
|
|
match-leak-kinds: reachable
|
||
|
|
...
|
||
|
|
fun:SDL_InitSubSystem_REAL
|
||
|
|
}
|
||
|
|
|
||
|
|
# dlopen keeps the link map and the loaded objects' TLS blocks for the process
|
||
|
|
# lifetime; a dlclose does not return them. SDL loads its video, audio, and
|
||
|
|
# render backends this way, and SDL_image and SDL_mixer load their codecs the
|
||
|
|
# same way.
|
||
|
|
{
|
||
|
|
dl-open-keeps-its-link-map
|
||
|
|
Memcheck:Leak
|
||
|
|
match-leak-kinds: reachable,possible
|
||
|
|
...
|
||
|
|
fun:_dl_open
|
||
|
|
}
|
||
|
|
|
||
|
|
# FreeType, reached through SDL_ttf, caches per-face and per-size structures
|
||
|
|
# inside the library instance and frees them in FT_Done_FreeType, which SDL_ttf
|
||
|
|
# calls from TTF_Quit. A suite that opens a font and exits without TTF_Quit
|
||
|
|
# reports them; a font libakgl itself failed to close is a different finding and
|
||
|
|
# is NOT covered here -- it appears under akgl_text_loadfont, not under
|
||
|
|
# FT_Init_FreeType.
|
||
|
|
{
|
||
|
|
freetype-library-instance
|
||
|
|
Memcheck:Leak
|
||
|
|
match-leak-kinds: reachable
|
||
|
|
...
|
||
|
|
fun:FT_Init_FreeType
|
||
|
|
}
|