Auto: focas-f4a — write infrastructure + per-tag opt-in

Closes #268
This commit is contained in:
Joseph Doherty
2026-04-26 04:32:43 -04:00
parent 6f1657b1c0
commit 1bfe8fba0e
13 changed files with 521 additions and 11 deletions

View File

@@ -26,6 +26,14 @@
.PARAMETER BridgeNodeId
NodeId at which the server publishes the Address.
.PARAMETER Write
Issue #268 / plan PR F4-a — opts the script into the post-F4-a write
stages. F4-a ships the write infrastructure (driver-level Writes.Enabled
flag + per-tag Writable opt-in) without any actual wire writes; F4-b/c
populate this stage with real macro / parameter / PMC write coverage.
Until then the switch is a no-op marker so the e2e harness records that
the write surface was deliberately exercised (or skipped).
#>
param(
@@ -33,7 +41,8 @@ param(
[int]$CncPort = 8193,
[string]$Address = "R100",
[string]$OpcUaUrl = "opc.tcp://localhost:4840",
[Parameter(Mandatory)] [string]$BridgeNodeId
[Parameter(Mandatory)] [string]$BridgeNodeId,
[switch]$Write
)
$ErrorActionPreference = "Stop"
@@ -92,5 +101,13 @@ $results += Test-SubscribeSeesChange `
-DriverWriteArgs (@("write") + $commonFocas + @("-a", $Address, "-t", "Int16", "-v", $subValue)) `
-ExpectedValue "$subValue"
if ($Write) {
# F4-a no-op stage. Real per-kind write coverage lands in F4-b/c which extend the wire
# client past the BadNotSupported short-circuit + populate this branch with
# macro / parameter / PMC write assertions. Logged here so the harness records that the
# operator deliberately requested the write path.
Write-Host "[skip] -Write requested; F4-a ships infrastructure only — wire-write stages land in F4-b/c (issue #268)."
}
Write-Summary -Title "FOCAS e2e" -Results $results
if ($results | Where-Object { -not $_.Passed }) { exit 1 }