Ab.Transport: offline/simulator test gaps left by #565, #570, #579 #593

Closed
opened 2026-10-08 02:31:08 -04:00 by dohertj2 · 1 comment
Owner

Residuals from the 2026-10-08 sweep that need no hardware.
Sources: closing comments on #565, #570, #579; docs/drivers/AbCip.md (lease release); docs/plans/2026-10-07-native-ab-transport-gate-results.md.

  • #579: soak the non-blocking ConnectionLease.ReleaseInBackground against ab_server (today only the 25-cycle offline NativeAbCipLeaseReleaseTests)
  • #565: unit test for the EncapsulationClient write-timeout fault path (needs a peer that stops reading with full socket buffers — e.g. a stream seam)
  • #570: on the libplctag transport a name libplctag rejects (ErrorBadParam) still backs the whole device off — align with native's per-tag BadConfigurationError, no backoff
  • AbLegacy integration suite never exercises PLC-5 Unsupported paths (non-N reads, all writes) or status-bit sub-element write refusals — add rows

Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep.

Residuals from the 2026-10-08 sweep that need no hardware. Sources: closing comments on #565, #570, #579; docs/drivers/AbCip.md (lease release); docs/plans/2026-10-07-native-ab-transport-gate-results.md. - [ ] #579: soak the non-blocking `ConnectionLease.ReleaseInBackground` against ab_server (today only the 25-cycle offline `NativeAbCipLeaseReleaseTests`) - [ ] #565: unit test for the `EncapsulationClient` write-timeout fault path (needs a peer that stops reading with full socket buffers — e.g. a stream seam) - [ ] #570: on the libplctag transport a name libplctag rejects (`ErrorBadParam`) still backs the whole device off — align with native's per-tag `BadConfigurationError`, no backoff - [ ] AbLegacy integration suite never exercises PLC-5 Unsupported paths (non-N reads, all writes) or status-bit sub-element write refusals — add rows _Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep._
dohertj2 added the driver/abcipdriver/ablegacy labels 2026-10-08 02:31:08 -04:00
Author
Owner

Resolved on master (merge 6a5e804e, plus 36343c12 and cb838d4a).

  • #579 lease-release soak: NativeLeaseReleaseSoakTests (AbCip.IntegrationTests) against ab_server controllogix (7e368425). Ran 200 cycles, passed (3m19s); budget now scales with AB_LEASE_SOAK_CYCLES (cb838d4a) because a fixed 120 s timed out above ~100 cycles.
  • #565 write-timeout fault path: A_blocked_write_times_out_faults_the_session_and_leaves_no_unobserved_exception in EncapsulationClientTests via a blocking-stream seam (21267750).
  • #570 libplctag ErrorBadParam: at tag create it is now a per-tag config error with no device backoff, aligned with native (6a6ac9a1, LibplctagStatusTranslation); a BadParam on a live handle is deliberately not treated as a name problem.
  • AbLegacy PLC-5 / status-bit rows: AbLegacyUnsupportedPathTests (b37e9613); the native write refusals are now decided before any wire traffic, for status-bit sub-elements of any type and PLC-5 (e863e9f0, merge 36343c12). Ran against ab_server plc5 + slc500 (AB_SERVER_ALLOW_WRITES=1): AbLegacy integration 13/13.

Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).

Resolved on master (merge 6a5e804e, plus 36343c12 and cb838d4a). - [x] #579 lease-release soak: `NativeLeaseReleaseSoakTests` (AbCip.IntegrationTests) against ab_server controllogix (7e368425). Ran 200 cycles, passed (3m19s); budget now scales with `AB_LEASE_SOAK_CYCLES` (cb838d4a) because a fixed 120 s timed out above ~100 cycles. - [x] #565 write-timeout fault path: `A_blocked_write_times_out_faults_the_session_and_leaves_no_unobserved_exception` in `EncapsulationClientTests` via a blocking-stream seam (21267750). - [x] #570 libplctag `ErrorBadParam`: at tag create it is now a per-tag config error with no device backoff, aligned with native (6a6ac9a1, `LibplctagStatusTranslation`); a BadParam on a live handle is deliberately not treated as a name problem. - [x] AbLegacy PLC-5 / status-bit rows: `AbLegacyUnsupportedPathTests` (b37e9613); the native write refusals are now decided before any wire traffic, for status-bit sub-elements of any type and PLC-5 (e863e9f0, merge 36343c12). Ran against ab_server plc5 + slc500 (`AB_SERVER_ALLOW_WRITES=1`): AbLegacy integration 13/13. *Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).*
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#593