Commit graph

1 commit

Author SHA1 Message Date
Vadim Peretokin
c594d83c25
infrastructure: leak checking now gates the functional tests (#9694)
#### Brief overview of PR changes/additions

- 43 of 45 functional tests now run with `detect_leaks=1` and fail CI if
they leak (the suite leaked 11.83MB before this PR). The LSan
suppression hooks move into an OBJECT library so they actually bind into
the test binaries.
- Fixes the three production leaks behind nearly all of it: the
unparented `QSettings` (now application-parented, since the Updater
holds the pointer past window close), edbee re-initialisation orphaning
its managers on every repeat `mudlet::init()`, and the preferences
dialog's menu `QAction`s (`QMenu::addAction()` does not take ownership).
- New `EdbeeReinitTest` and a preferences-reopen test lock the fixes in.
Still excluded: `dlgTriggerEditorUndoRedoTest` (fixed in #9700) and
`UpdaterTeardownTest` (Qt's one-time CA-store load).

#### Motivation for adding to Mudlet

Leaks in code covered by the functional suite now fail the build instead
of accumulating silently, and two of the three fixes stop real leaks in
production.

#### Other info (issues closed, discussion etc)

Test case: full serial suite passes twice, 45/45; settings persistence
verified end-to-end under Xvfb. Startup unchanged (median 213ms vs
214ms); the suite's +62s is LSan's at-exit scan, no individual test
regressed.

Assisted-by: Claude:claude-fable-5
2026-08-07 06:12:54 +02:00