test(ab): run the ab_server integration suites on both transports
This commit is contained in:
@@ -2,7 +2,46 @@
|
||||
|
||||
## ab_server suites (T17)
|
||||
|
||||
_(pending)_
|
||||
Every ab_server integration test now runs once per transport (`TransportMatrix` in each integration
|
||||
project). Run 2026-10-07 against `10.100.0.35`, one compose profile at a time
|
||||
(AbCip `/opt/otopcua-abcip`, `AB_SERVER_COMPOSE_PROFILE=<p>`; AbLegacy `~/otopcua-ablegacy`,
|
||||
`AB_LEGACY_COMPOSE_PROFILE=<p>`); every stack was brought down afterwards.
|
||||
|
||||
- **Image:** `otopcua-ab-server:libplctag-release` (`sha256:19e814747d85…`, built 2026-08-01; ab_server from
|
||||
libplctag `v2.7.0` + patches 0001/0002). Host compose files md5-identical to the repo's.
|
||||
- **Commit:** fixes `82d011c7` + `2171fc8c`, test matrix in the T17 `test(ab)` commit that follows them.
|
||||
|
||||
Counts are pass / fail / skip for the transport-parameterised rows only. Each AbCip run also passed the
|
||||
6 transport-independent `AbServerProfileTests`. The AbCip skips are the 3 Emulate-tier tests
|
||||
(`AB_SERVER_PROFILE=emulate` only). The AbLegacy skips are `Slc500_write_then_read…`, which skips itself
|
||||
on both transports when the slc500 port (`:44819`) is down.
|
||||
|
||||
| Profile | Libplctag | Native | Native ⊇ Libplctag |
|
||||
|---|---|---|---|
|
||||
| controllogix | 1 / 0 / 3 | 1 / 0 / 3 | yes |
|
||||
| compactlogix | 1 / 0 / 3 | 1 / 0 / 3 | yes |
|
||||
| micro800 | 0 / 1 / 3 | 1 / 0 / 3 | yes (libplctag fails, see below) |
|
||||
| guardlogix | 1 / 0 / 3 | 1 / 0 / 3 | yes |
|
||||
| slc500 | 2 / 0 / 0 | 2 / 0 / 0 | yes |
|
||||
| micrologix | 1 / 0 / 1 | 1 / 0 / 1 | yes |
|
||||
| plc5 | 1 / 0 / 1 | 1 / 0 / 1 | yes |
|
||||
|
||||
**Native-only failures found and fixed:**
|
||||
|
||||
- `82d011c7` (controllogix): RegisterSession carried a non-zero sender context, and ab_server rejects that
|
||||
with encapsulation status 1. Every native session failed.
|
||||
- `2171fc8c` (slc500): ab_server answers Execute PCCC with a fixed requestor id
|
||||
(`07 3D F3 45 43 50 21`), so the requestor-echo check rejected every native PCCC reply. Native now sends
|
||||
libplctag's identity.
|
||||
|
||||
**Skips added:** none. The PLC-5 integration test only reads N7, so the PLC-5 Unsupported paths
|
||||
(non-N reads, all writes) and status-bit sub-element writes are never exercised by the suite.
|
||||
|
||||
**micro800:** the smoke test used to send `/1,0` for every family, and both transports failed against
|
||||
`--plc=Micro800`. It now uses an empty path for Micro800. With the empty path, native passes. libplctag
|
||||
still fails with BadCommunicationError, because the driver's libplctag runtime passes `Path = ""` and
|
||||
libplctag answers that with `ErrorBadData`. A `null` path works (checked with the capture client). That
|
||||
defect is pre-existing and libplctag-side; it is recorded, not fixed, here.
|
||||
|
||||
## Differential vs ab_server (T18)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user