Expand description
The AT scenario model and runner.
Structs§
- Expect
Msg - A message the scenario expects the server to send: a MsgType plus required field matches. Volatile fields (SendingTime, BodyLength, CheckSum) are intentionally not matched.
- Scenario
- A scripted acceptance-test scenario.
- Scenario
Result - The result of running one scenario against one version.
- Session
Tweaks - Optional acceptor session-feature toggles a scenario needs (special-category suites).
Enums§
- Read
Message Outcome - Result of reading one message in the acceptance-test harness.
- Step
- A single scenario step.
Constants§
- ALWAYS_
ALLOWED_ TAGS - Header/trailer bookkeeping and session-identity fields present on essentially every FIX
message, which
ExpectMsg::exactnever flags as “extra” even when unlisted — matches the doc comment aboveExpectMsgcalling outSendingTime/BodyLength/CheckSumas always unmatched, plus the other framing/identity fields every message legitimately carries. - FLAT_
DICTIONARY_ VERSIONS - The bundled dictionary matching a
SUITE_VERSIONSentry, for the acceptor’s field validator (T128/T129, feature 009) — previously onlyFIX.4.2/FIX.4.4had one, so a field-validation scenario against any other pre-FIXT version silently ran with no dictionary checks at all.
Functions§
- client_
message - Helper to build a client-side message with the standard header.
- dictionary_
for_ version - per_
scenario_ report - A one-line-per-run PASS/FAIL report (T139/T140, feature 009, NEW-52) — distinct from a single all-or-nothing boolean: a caller (or a human reading test output) can see every scenario’s own result, not just whether something in the whole suite failed, without re-running anything.
- read_
message - Read one framed message from
stream, retaining incomplete bytes inbuf. - run_
report - Run the full matrix (each scenario against each of its target versions), starting a fresh
acceptor per version. Returns one
ScenarioResultper (scenario, version). - run_
scenario - Run one scenario against an already-started acceptor at
addr. - start_
acceptor - Start a black-box acceptor that serves any session via a dynamic template for
version. Returns the bound address and the accept-loop join handle. - start_
fixed_ identity_ acceptor - Start a black-box acceptor with a fixed session identity (T133/T134, feature 009, NEW-83) —
additive alongside
start_acceptor’s dynamic-template mode, which adopts whatever identity the first Logon claims and so has nothing to “mismatch” against (see the note abovelogon_response_carries_reset_flagon why1c_InvalidSenderCompID/1c_InvalidTargetCompID/a wrong-BeginStringLogon couldn’t be represented until now). A Logon whose SenderCompID/ TargetCompID/BeginString doesn’t matchsender/target/versionnever resolves to a registered session (route_and_run’sregistry.sessions.get(&sid)lookup, no template fallback here) — the connection is simply dropped, not answered with a Reject/Logout. - wire_
begin_ string SUITE_VERSIONS’"FIX.Latest"entry is a version-agnostic-testing label, not a real wireBeginString(feature 007, BUG-79/FR-048’s stricterframe_lengthformat check would otherwise reject it outright, unlike every real value inSUITE_VERSIONS) — this maps it to a real, well-formedBeginStringfor anywhere actual wire bytes get constructed, leaving every other version untouched. The bundledFIXLATESTdictionary’s own.versionfield is a separate, unrelated label (only ever compared viaversion_meta, which no bundled dictionary populates) — not affected by this translation.