mirror of
https://github.com/meshtastic/firmware.git
synced 2025-07-31 02:45:41 +00:00
48 lines
1.8 KiB
Plaintext
48 lines
1.8 KiB
Plaintext
# AddressSanitizer suppressions file for Meshtastic firmware tests
|
|
# This file suppresses known memory leaks that are not actual bugs
|
|
|
|
# MQTT test memory leak - ClientNotification allocations in test framework
|
|
# ========================================================================
|
|
#
|
|
# BACKGROUND:
|
|
# The MQTT unit tests show memory leaks when AddressSanitizer is enabled.
|
|
# These are not real memory leaks in production code, but rather artifacts
|
|
# of the test framework architecture.
|
|
#
|
|
# ROOT CAUSE:
|
|
# The issue occurs because sendClientNotification() is not a virtual method
|
|
# in the base MeshService class. This means MockMeshService cannot override
|
|
# it to properly track and clean up ClientNotification allocations during tests.
|
|
# When MQTT validation fails, ClientNotification objects are allocated via
|
|
# MemoryDynamic::allocate() but cannot be intercepted by the mock framework.
|
|
#
|
|
# PRODUCTION IMPACT:
|
|
# None. This only affects unit tests, not production firmware.
|
|
#
|
|
# SOLUTION ATTEMPTED:
|
|
# Tried to override sendClientNotification in MockMeshService but failed
|
|
# because the method is not virtual in the base class.
|
|
#
|
|
# SUPPRESSIONS:
|
|
# These suppressions allow the CI tests to pass while documenting that
|
|
# the "leaks" are test artifacts, not real memory issues.
|
|
#
|
|
# TO FIX PROPERLY (future work):
|
|
# - Make sendClientNotification() virtual in MeshService base class, or
|
|
# - Refactor test framework to use dependency injection for better mocking
|
|
|
|
# Suppress all memory leaks in MQTT test files
|
|
leak:MQTT.cpp
|
|
leak:test_mqtt
|
|
|
|
# Suppress leaks related to ClientNotification allocation patterns
|
|
leak:ClientNotification
|
|
leak:MemoryDynamic
|
|
leak:allocFromPool
|
|
leak:Allocator
|
|
|
|
# Suppress leaks in mock services that cannot properly clean up
|
|
leak:MockMeshService
|
|
leak:sendMqttMessageToClientProxy
|
|
leak:releaseMqttClientProxyMessageToPool
|