Files
logos-protocol/cpp/implementations
Dario Gabriel LipicarandClaude Opus 5 3ee0842e42 test(plain): validate the detectors against master, not a compiled-in inversion
The transport carried a second ensureCompletionSub() behind
LOGOS_PLAIN_DETECTOR_BREAK_SUB_ORDER: the pre-fix racy shape, reachable
from a -DLOGOS_PROTOCOL_DETECTOR_INVERSIONS=ON configure of the tests
tree, so the ordering tests could be shown to fail. That is the same
anti-pattern as the getenv() probes an earlier draft carried, wearing a
build flag instead — production source keeping a deliberately wrong
implementation of its own contract — and it does not belong in the PR.

Both detectors are validated by the stronger check anyway: this file
compiles unmodified on master, which still raises the flag under the
rendezvous mutex and drops it before subscribing, and still captures raw
`this` in the completion handler. Numbers now in the comments are from
that run, not from the synthetic build:

  sub-order raw wire    18/26/27/28 of 250 rounds inverted, dropped and
                        timed out, four runs
  sub-order real stack  6 to 10 of 500 calls timed out
  sub-lifetime          RED in 11 of 12 solo runs, connection dying at
                        round 6 in 9 of them

The 400/600-round figures the comments quoted were also stale: 66e0153
moved both tests to 250 rounds.

No test is deleted or weakened. The std::call_once fix and the weak_ptr
handler capture are untouched; only the alternative implementation and
the CMake option that reached it are gone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 10:50:11 -03:00
..