docs(ab): native transport, Transport switch, known gaps and the type-check change
This commit is contained in:
@@ -33,6 +33,28 @@ quirk. UDT / alarm / quirk behavior is verified only by unit tests with
|
||||
- **Endpoint override**: `AB_SERVER_ENDPOINT=host:port` points the
|
||||
fixture at a real PLC instead of the local container.
|
||||
|
||||
## Per-transport suites and capture recipe
|
||||
|
||||
Every integration test in `AbCip.IntegrationTests` now runs **once per transport** (`TransportMatrix`:
|
||||
`Libplctag` and `Native`). Run one compose profile at a time and name it with `AB_SERVER_COMPOSE_PROFILE`
|
||||
(all profiles bind `:44818`, so set it to the running profile). On the 2026-10-07 run native passed everything
|
||||
libplctag passed on all seven profiles; on `micro800` libplctag failed on the empty-path defect described in
|
||||
[AbCip.md](AbCip.md#known-gaps) and native passed. Evidence:
|
||||
[native-ab-transport-gate-results](../plans/2026-10-07-native-ab-transport-gate-results.md).
|
||||
|
||||
- Write-capable tests (the Logix Emulate ALMD test) require `AB_SERVER_ALLOW_WRITES=1` and refuse while
|
||||
`AB_DIFF_ENDPOINT` is set.
|
||||
- **Differential harness** (`AbCip.IntegrationTests/Differential`, `LiveIntegration`) compares libplctag and
|
||||
native on browse, template and read parity against one endpoint. It is read-only by construction, aborts on
|
||||
the first connection failure, never retries, and caps the native phase at one Forward Open. Env:
|
||||
`AB_DIFF_ENDPOINT`, `AB_DIFF_PATH`, `AB_DIFF_FAMILY`, `AB_DIFF_TAGS`, `AB_DIFF_MAX_TAGS` (at most 500),
|
||||
`AB_DIFF_MAX_TEMPLATES`, `AB_DIFF_PACE_MS` (default 20), `AB_DIFF_COUNT_OPENS`. Always run with
|
||||
`--filter "FullyQualifiedName~Differential"` and `AB_SERVER_ENDPOINT=127.0.0.1:1`.
|
||||
- ab_server serves no UDTs and refuses 1-byte writes, so template parity is vacuous there and BOOL/SINT
|
||||
parity is weak evidence. Native writes remain simulator-only.
|
||||
- **Golden-frame capture:** `scripts/ab-capture/capture.sh` (capture client in `scripts/ab-capture/client`);
|
||||
fixtures live in `tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.Tests/Captures/` with a README.
|
||||
|
||||
## What it actually covers
|
||||
|
||||
- Read path: driver → libplctag → CIP-over-EtherNet/IP → simulator → back.
|
||||
|
||||
Reference in New Issue
Block a user