Skip to content

IED simulator: IEC 61850 DPC control command golden parity #289

IED simulator: IEC 61850 DPC control command golden parity

IED simulator: IEC 61850 DPC control command golden parity #289

name: SCL-Assisted Workbench CI
on:
push:
paths:
- 'apps/ied_simulator/src/MmsClientController.*'
- 'apps/ied_simulator/src/MmsLiveTreeModel.*'
- 'apps/ied_simulator/src/MmsSclClientProjection.hpp'
- 'apps/ied_simulator/src/ied_mms_scl_assisted_workbench_qa.cpp'
- 'apps/ied_simulator/tests/scl_assisted_workbench/**'
- 'apps/ied_simulator/qml/Main.qml'
- 'apps/ied_simulator/qml/MmsClientWorkspace.qml'
- 'include/ariec61850/mms/**'
- 'src/mms/**'
- 'include/ariec61850/scl/**'
- 'src/scl/**'
- 'tests/fixtures/scl/client-workbench.scd'
- 'tests/fixtures/scl/client-workbench-incompatible.scd'
- '.github/workflows/scl-assisted-workbench-ci.yml'
pull_request:
paths:
- 'apps/ied_simulator/src/MmsClientController.*'
- 'apps/ied_simulator/src/MmsLiveTreeModel.*'
- 'apps/ied_simulator/src/MmsSclClientProjection.hpp'
- 'apps/ied_simulator/src/ied_mms_scl_assisted_workbench_qa.cpp'
- 'apps/ied_simulator/tests/scl_assisted_workbench/**'
- 'apps/ied_simulator/qml/Main.qml'
- 'apps/ied_simulator/qml/MmsClientWorkspace.qml'
- 'include/ariec61850/mms/**'
- 'src/mms/**'
- 'include/ariec61850/scl/**'
- 'src/scl/**'
- 'tests/fixtures/scl/client-workbench.scd'
- 'tests/fixtures/scl/client-workbench-incompatible.scd'
- '.github/workflows/scl-assisted-workbench-ci.yml'
permissions:
contents: read
concurrency:
group: scl-assisted-workbench-${{ github.ref }}
cancel-in-progress: true
jobs:
product-path:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.8.3'
cache: true
- name: Configure P5 workbench gate
run: >-
cmake -S apps/ied_simulator/tests/scl_assisted_workbench
-B build-scl-assisted-workbench -G Ninja
-DCMAKE_BUILD_TYPE=Release
- name: Build P5 workbench gate
run: >-
cmake --build build-scl-assisted-workbench
--target ied_mms_scl_assisted_workbench_qa --parallel 2
- name: Run trusted-SCL degraded product-path regression
env:
QT_QPA_PLATFORM: offscreen
run: >-
./build-scl-assisted-workbench/ied_mms_scl_assisted_workbench_qa
./tests/fixtures/scl/client-workbench.scd
- name: Prove incompatible trusted SCL fails closed
env:
QT_QPA_PLATFORM: offscreen
shell: bash
run: |
set +e
output="$(./build-scl-assisted-workbench/ied_mms_scl_assisted_workbench_qa ./tests/fixtures/scl/client-workbench-incompatible.scd 2>&1)"
status=$?
set -e
printf '%s\n' "$output"
test "$status" -eq 5
grep -F "SCL online identity incompatible" <<<"$output"
! grep -F "Live MMS discovery" <<<"$output"
echo "MMS_SCL_INCOMPATIBLE_WORKBENCH_PASS connected=false health=incompatible silent_fallback=false"