test(abcip): read-only poll-latency comparison harness for the T21 press gate (proven on ab_server)
This commit is contained in:
@@ -185,6 +185,24 @@ see the same split on the press.
|
||||
The ab_server controllogix matrix is read-only and unaffected: 15 passed and 11 skipped with
|
||||
`AB_SERVER_COMPOSE_PROFILE=controllogix`.
|
||||
|
||||
### Latency harness proven on ab_server (T21 Step 1)
|
||||
|
||||
`Differential/PollLatencyComparisonTests.cs` (+ `PollLatencyRun.cs`) ran 2026-10-07 against ab_server
|
||||
(`controllogix` image, host port 44828 because an unrelated outbound socket held 44818 on the docker host),
|
||||
under the same `--filter "FullyQualifiedName~Differential"` invocation as the differential. The mechanics work:
|
||||
the timed phase reuses the differential's browse, the anchors, the open budget and the barriers; **1** native Forward Open
|
||||
in the latency phase; 30 passes per transport, 0 tag failures; native packs 100 concurrent reads into **6** requests per pass.
|
||||
ab_server has 7 atomic scalars, so the 100-tag set was **repeated cyclically** (reported in the output).
|
||||
|
||||
| Family | libplctag p50 / p95 ms | native p50 / p95 ms | native requests/pass | Criterion |
|
||||
|---|---|---|---|---|
|
||||
| CompactLogix (504, the press default) | 7.7 / 10.9 | 22.1 / 25.3 | 6 | **FAIL** |
|
||||
| ControlLogix (4002) | 7.3 / 9.1 | 7.7 / 9.2 | 2 | pass |
|
||||
|
||||
The CompactLogix result is a real finding, not a harness fault: native opens a 504-byte connection there, while libplctag
|
||||
opens a Large one (see the T18 capture above), so native needs 3× the round trips per pass. The T21 press result is
|
||||
recorded under `## Latency (T21)` and is not filled in here.
|
||||
|
||||
## AdminUI /run (T19)
|
||||
|
||||
Run 2026-10-07 on the local docker-dev rig (OrbStack), against the ab_server `controllogix` fixture
|
||||
|
||||
Reference in New Issue
Block a user