From 03b660e06f2dc411992d5ec3bfc701939110d6dc Mon Sep 17 00:00:00 2001 From: mikecarper Date: Thu, 15 Oct 2026 21:05:39 -0700 Subject: [PATCH] Initialize mesh retry state in the trace test fixture Mirror firmware startup before direct receive helpers run so sanitizer builds do not read uninitialized retry-slot flags. --- test/test_trace_retry/test_trace_retry.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/test_trace_retry/test_trace_retry.cpp b/test/test_trace_retry/test_trace_retry.cpp index 76e5437c3..51a0d3084 100644 --- a/test/test_trace_retry/test_trace_retry.cpp +++ b/test/test_trace_retry/test_trace_retry.cpp @@ -84,7 +84,12 @@ public: TraceTestMesh(mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::PacketManager& mgr, mesh::MeshTables& tables) - : mesh::Mesh(radio, ms, rng, rtc, mgr, tables) { } + : mesh::Mesh(radio, ms, rng, rtc, mgr, tables) { + // Every firmware role begins the mesh before RX/TX. Helpers which invoke + // receivePacket() directly need that same retry/timer initialization; + // otherwise stack-allocated fixtures read indeterminate retry-slot flags. + mesh::Mesh::begin(); + } uint8_t airtimeFactor(const mesh::Packet* packet) const { return getDirectRetryPacketAirtimeFactor(packet);