docs(audit): Modbus-Test-Fixture.md — accuracy pass
STALE-STATUS: TL;DR + Lifecycle section referred to "localhost" as the simulator address (Modbus-Test-Fixture.md:7,19). Fixture default is 10.100.0.35:5020 (shared Docker host, migrated 2026-04-28) confirmed by ModbusSimulatorFixture.cs:36. Updated both prose occurrences. INLINE COMPLETENESS: Follow-up item 1 claimed MODBUS_SIM_ENDPOINT lacked documentation; the env var is already documented in this page + CLAUDE.md. Reworded to reflect actual gap (cross-reference to test-data-sources.md only). Verified: python3 .docs-audit/check_links.py — zero rows for this doc.
This commit is contained in:
@@ -3,11 +3,11 @@
|
|||||||
Coverage map + gap inventory for the Modbus TCP driver's integration-test
|
Coverage map + gap inventory for the Modbus TCP driver's integration-test
|
||||||
harness backed by `pymodbus` simulator profiles per PLC family.
|
harness backed by `pymodbus` simulator profiles per PLC family.
|
||||||
|
|
||||||
**TL;DR:** Modbus is the best-covered driver — a real `pymodbus` server on
|
**TL;DR:** Modbus is the best-covered driver — a real `pymodbus` server on the
|
||||||
localhost with per-family seed-register profiles, plus a skip-gate when the
|
shared Docker host (`10.100.0.35:5020`) with per-family seed-register profiles,
|
||||||
simulator port isn't reachable. Covers DL205 / Mitsubishi MELSEC / Siemens
|
plus a skip-gate when the simulator port isn't reachable. Covers DL205 /
|
||||||
S7-1500 family quirks end-to-end. Gaps are mostly error-path + alarm/history
|
Mitsubishi MELSEC / Siemens S7-1500 family quirks end-to-end. Gaps are mostly
|
||||||
shaped (neither is a Modbus-side concept).
|
error-path + alarm/history shaped (neither is a Modbus-side concept).
|
||||||
|
|
||||||
## What the fixture is
|
## What the fixture is
|
||||||
|
|
||||||
@@ -16,8 +16,9 @@ shaped (neither is a Modbus-side concept).
|
|||||||
`tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Modbus.IntegrationTests/Docker/`.
|
`tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Modbus.IntegrationTests/Docker/`.
|
||||||
Docker is the only supported launch path.
|
Docker is the only supported launch path.
|
||||||
- **Lifecycle**: `ModbusSimulatorFixture` (collection-scoped) TCP-probes
|
- **Lifecycle**: `ModbusSimulatorFixture` (collection-scoped) TCP-probes
|
||||||
`localhost:5020` on first use. `MODBUS_SIM_ENDPOINT` env var overrides the
|
`10.100.0.35:5020` (the shared Docker host) on first use.
|
||||||
endpoint so the same suite can target a real PLC.
|
`MODBUS_SIM_ENDPOINT` env var overrides the endpoint so the same suite can
|
||||||
|
target a real PLC or a locally-running container.
|
||||||
- **Profiles**: `DL205Profile`, `MitsubishiProfile`, `S7_1500Profile` —
|
- **Profiles**: `DL205Profile`, `MitsubishiProfile`, `S7_1500Profile` —
|
||||||
each composes device-specific register-format + quirk-seed JSON for pymodbus.
|
each composes device-specific register-format + quirk-seed JSON for pymodbus.
|
||||||
Profile JSONs live under `Docker/profiles/` and are baked into the image.
|
Profile JSONs live under `Docker/profiles/` and are baked into the image.
|
||||||
@@ -102,8 +103,9 @@ Not a Modbus concept. Driver doesn't implement `IAlarmSource` or
|
|||||||
|
|
||||||
## Follow-up candidates
|
## Follow-up candidates
|
||||||
|
|
||||||
1. Add `MODBUS_SIM_ENDPOINT` override documentation to
|
1. Add `MODBUS_SIM_ENDPOINT` cross-reference to
|
||||||
`docs/v2/test-data-sources.md` so operators can point the suite at a lab rig.
|
`docs/v2/test-data-sources.md` (already documented in this page + CLAUDE.md;
|
||||||
|
the v2 page could link here for the complete env-var table).
|
||||||
2. ~~Extend `pymodbus` profiles to inject exception responses~~ — **shipped**
|
2. ~~Extend `pymodbus` profiles to inject exception responses~~ — **shipped**
|
||||||
via the `exception_injection` compose profile + standalone
|
via the `exception_injection` compose profile + standalone
|
||||||
`exception_injector.py` server. Rules in
|
`exception_injector.py` server. Rules in
|
||||||
|
|||||||
Reference in New Issue
Block a user