Skip to content

Commit 438a3e9

Browse files
committed
test(xmtp_mls,xmtp_api_d14n): bidi delivery fuzz — racing clients + proptest ledger model
Two layers of randomized no-loss checking for XIP-83 bidi delivery: - Live fuzz against the containerized node: up to 10 racing member producers x up to 10 consumers (raw connections in the server-contract test; per-consumer proxied BidiTransports in the transport test), with per-lease strictly-increasing delivery, chain-union completeness, and toxiproxy network faults. Seeded and replayable; schedule telemetry proves every lever fires. - Deterministic proptest model of the transport ledger over the scripted mock wire: generated op schedules (publish/lease/drop/serve/partial- serve/wire-kill) against an in-memory XIP-83 server model, with real shrinking. Found the virgin-topic snapshot loss and the cross-wave watermark gap-jump fixed in the tags commit; regression seeds checked in.
1 parent 977d84a commit 438a3e9

6 files changed

Lines changed: 2111 additions & 0 deletions

File tree

.config/nextest.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,13 @@ path = "junit.xml"
4242
platform = 'cfg(all(target_family = "wasm", target_os = "unknown"))'
4343
default-filter = "not (test(/\\w*commit_log*/))"
4444
threads-required = 2
45+
46+
# Fuzz tests print their seed and must fail loudly — a retry would re-roll
47+
# the seed and mask the finding.
48+
[[profile.default.overrides]]
49+
filter = 'test(/bidi_fuzz/)'
50+
retries = 0
51+
52+
[[profile.ci.overrides]]
53+
filter = 'test(/bidi_fuzz/)'
54+
retries = 0

crates/xmtp_api_d14n/proptest-regressions/queries/bidi_transport_props.txt

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)