diff --git a/scripts/verify-rcb-export.ps1 b/scripts/verify-rcb-export.ps1 index 792a2292d..70410383a 100644 --- a/scripts/verify-rcb-export.ps1 +++ b/scripts/verify-rcb-export.ps1 @@ -98,7 +98,8 @@ $temporaryWorkflows = @( ".github/workflows/full-source-snapshot-temp.yml", ".github/workflows/rcb-integration-diagnostic-temp.yml", ".github/workflows/apply-rcb-card-patch-temp.yml", - ".github/workflows/apply-ied-card-two-row-fix-temp.yml" + ".github/workflows/apply-ied-card-two-row-fix-temp.yml", + ".github/workflows/apply-live-rcb-name-standard-fix-temp.yml" ) foreach ($temporary in $temporaryWorkflows) { if (Test-Path (Join-Path $root $temporary)) { @@ -112,7 +113,8 @@ if (![string]::IsNullOrWhiteSpace($EngineRoot)) { $filterPath = Join-Path $engine "src/AR.Iec61850/Scl/Export/SclReportControlFilter.cs" $exportPath = Join-Path $engine "src/AR.Iec61850/Scl/Export/LegacySasSclExporter.cs" $identityPath = Join-Path $engine "src/AR.Iec61850/Scl/Export/AuthoritativeLiveIedSclExporter.cs" - foreach ($path in @($availabilityPath, $filterPath, $exportPath, $identityPath)) { + $liveNamePath = Join-Path $engine "src/AR.Iec61850/Scl/Export/LiveRcbSclInstanceNormalizer.cs" + foreach ($path in @($availabilityPath, $filterPath, $exportPath, $identityPath, $liveNamePath)) { if (!(Test-Path $path)) { throw "Required ARIEC61850 RCB API is missing: $path" } } @@ -120,17 +122,24 @@ if (![string]::IsNullOrWhiteSpace($EngineRoot)) { $filter = Get-Content $filterPath -Raw $export = Get-Content $exportPath -Raw $identity = Get-Content $identityPath -Raw + $liveName = Get-Content $liveNamePath -Raw Require-Text $availability 'does not expose enough reservation evidence to prove availability' "Edition 1 BRCB uncertainty guard is missing." Require-Text $filter 'var document = new XDocument(source);' "SCL filter must clone rather than mutate the source document." Require-Text $filter 'Legacy SAS export requires exactly one selected ReportControl.' "Exactly-one-RCB guard is missing." Require-Text $export 'Filtered SCL validation expected one ReportControl' "Post-export single-RCB validation is missing." Require-Text $export 'The original source file was not modified.' "Engine evidence no longer states source immutability." Require-Text $export 'ApplyExactRuntimeReportControlIdentity' "Exact runtime RCB normalization is missing." - Require-Text $export 'A_BRCB_120101' "The exact-name double-index regression evidence is missing." - Require-Text $export 'must not contain RptEnabled because that can append a second instance suffix' "Exact runtime RCB export no longer rejects duplicate instance indexing." + Require-Text $export 'A_BRCB_120101' "The source-backed exact-name double-index regression evidence is missing." + Require-Text $export 'must not contain RptEnabled because that can append a second instance suffix' "Source-backed exact runtime RCB export no longer rejects duplicate instance indexing." + Require-Text $identity 'element.SetAttributeValue("indexed", "false")' "Live MMS RCBs must be exported explicitly as non-indexed concrete instances." + Require-Text $identity 'rptEnabled.SetAttributeValue("max", "1")' "Live MMS RCB export must retain exactly one concrete instance." + Require-Text $identity 'A_BRCB_120101' "The live-model duplicate-index field case is no longer documented in the authoritative export boundary." + Require-Text $identity 'ValidateReportControlIdentity' "Live RCB identity validation is missing." + Require-Text $liveName 'A_BRCB_120101' "The standalone live RCB exact-name regression boundary is missing." + Require-Text $liveName 'indexed=false' "The standalone live RCB normalizer no longer preserves concrete MMS names." Require-Text $identity '"ldName",' "Engine identity boundary must write explicit MMS Logical Device names through LDevice.ldName." Require-Text $identity 'ValidateIdentity' "Engine must validate the normalized IED and MMS-domain identity mapping." Require-Text $identity 'missingDomains' "Engine must reject loss of discovered MMS Logical Device domains." } -Write-Host "Legacy SAS RCB export, exact runtime RCB naming, authoritative IED identity, automatic read-only availability, transient success overlay, stable IED card layout, Edition 1 CID default, and engine boundaries passed." \ No newline at end of file +Write-Host "Legacy SAS RCB export, exact live MMS RCB naming, authoritative IED identity, automatic read-only availability, transient success overlay, stable IED card layout, Edition 1 CID default, and engine boundaries passed." \ No newline at end of file