diff --git a/docs/drivers/Modbus-Test-Fixture.md b/docs/drivers/Modbus-Test-Fixture.md index 025d41b2..3b2fe776 100644 --- a/docs/drivers/Modbus-Test-Fixture.md +++ b/docs/drivers/Modbus-Test-Fixture.md @@ -3,11 +3,11 @@ Coverage map + gap inventory for the Modbus TCP driver's integration-test harness backed by `pymodbus` simulator profiles per PLC family. -**TL;DR:** Modbus is the best-covered driver — a real `pymodbus` server on -localhost with per-family seed-register profiles, plus a skip-gate when the -simulator port isn't reachable. Covers DL205 / Mitsubishi MELSEC / Siemens -S7-1500 family quirks end-to-end. Gaps are mostly error-path + alarm/history -shaped (neither is a Modbus-side concept). +**TL;DR:** Modbus is the best-covered driver — a real `pymodbus` server on the +shared Docker host (`10.100.0.35:5020`) with per-family seed-register profiles, +plus a skip-gate when the simulator port isn't reachable. Covers DL205 / +Mitsubishi MELSEC / Siemens S7-1500 family quirks end-to-end. Gaps are mostly +error-path + alarm/history shaped (neither is a Modbus-side concept). ## 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/`. Docker is the only supported launch path. - **Lifecycle**: `ModbusSimulatorFixture` (collection-scoped) TCP-probes - `localhost:5020` on first use. `MODBUS_SIM_ENDPOINT` env var overrides the - endpoint so the same suite can target a real PLC. + `10.100.0.35:5020` (the shared Docker host) on first use. + `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` — each composes device-specific register-format + quirk-seed JSON for pymodbus. 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 -1. Add `MODBUS_SIM_ENDPOINT` override documentation to - `docs/v2/test-data-sources.md` so operators can point the suite at a lab rig. +1. Add `MODBUS_SIM_ENDPOINT` cross-reference to + `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** via the `exception_injection` compose profile + standalone `exception_injector.py` server. Rules in