Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
0b10067
Add allocation-bounded SV publisher runtime
masarray Aug 8, 2026
9536b97
Add embedded SV publisher pacing smoke test
masarray Aug 8, 2026
db47287
Build embedded SV publisher smoke test
masarray Aug 8, 2026
7445c7f
Add ESP-IDF raw Ethernet adapter
masarray Aug 8, 2026
8964734
Implement ESP-IDF Ethernet transmit adapter
masarray Aug 8, 2026
2436fa2
Add ESP-IDF embedded-core component build
masarray Aug 8, 2026
448d0e3
Add allocation-free SV payload writer
masarray Aug 8, 2026
27db02b
Document ESP32-P4 SV first trial
masarray Aug 8, 2026
3193435
Add ESP-IDF P4 compile smoke app
masarray Aug 8, 2026
b2a73c4
Wire ESP-IDF compile smoke main component
masarray Aug 8, 2026
9e57d35
Exercise ESP-IDF adapter headers in P4 smoke app
masarray Aug 8, 2026
6d936c9
Add ESP32-P4 ESP-IDF compile gate
masarray Aug 8, 2026
4177f3c
Record physical MMS pagination acceptance
masarray Aug 8, 2026
cc737e8
Narrow ESP-IDF component to SV transmit slice
masarray Aug 8, 2026
82377bf
Enable transitional C++ exceptions for ESP-IDF smoke build
masarray Aug 8, 2026
28ebf38
Record pagination acceptance and ESP32-P4 SV port status
masarray Aug 8, 2026
02e346c
Document transitional ESP-IDF exception requirement
masarray Aug 8, 2026
9316c5f
Retarget embedded roadmap to ESP32-P4 first SV proof
masarray Aug 8, 2026
68d6d92
Keep strict warnings while isolating ESP-IDF header extensions
masarray Aug 8, 2026
834928c
Add no-throw static MAC construction path
masarray Aug 8, 2026
885f9dc
Add flashable ESP32-P4 SV trial firmware
masarray Aug 8, 2026
7825998
Build and publish flashable ESP32-P4 firmware artifact
masarray Aug 8, 2026
abadcb5
Publish embedded host-simulation QA results
masarray Aug 8, 2026
c622791
Extend SV publisher host simulation soak coverage
masarray Aug 8, 2026
7c70eff
Document embedded simulation and hardware QA gates
masarray Aug 8, 2026
1c33f4d
Add independent SV PCAP oracle and flashable artifact checks
masarray Aug 8, 2026
23f9bc8
Verify ESP32-P4 artifact from resolved build metadata
masarray Aug 8, 2026
d5d235c
Validate ESP32-P4 flash manifest directly
masarray Aug 8, 2026
a2a5df6
Document manifest-based flashable gate
masarray Aug 8, 2026
9269a57
Harden ESP32-P4 flash artifact gate
masarray Aug 8, 2026
467ebaa
Clarify authoritative ESP-IDF flash manifest gate
masarray Aug 8, 2026
2473ab7
Make ESP32-P4 artifact inventory deterministic
masarray Aug 8, 2026
29ffc1f
Write ESP32-P4 QA metadata outside Docker build tree
masarray Aug 8, 2026
12e32c4
Record accepted ESP32-P4 simulation and flashable gates
masarray Aug 8, 2026
d8850cb
Document P4 injector and S3 I/O IED reference architecture
masarray Aug 8, 2026
e43bd43
Align embedded roadmap with P4 injector and S3 I/O IED targets
masarray Aug 8, 2026
b2d0265
Add deterministic fixed-point SV injector waveform engine
masarray Aug 8, 2026
f9448de
Add deterministic 4I4V SV injector presets
masarray Aug 8, 2026
b34415f
Add embedded deterministic SV injector smoke
masarray Aug 8, 2026
8435f07
Add Windows-ready deterministic SV injector loopback CLI
masarray Aug 8, 2026
4092b22
Document deterministic SV injector control contract
masarray Aug 8, 2026
d50f716
Wire deterministic SV injector CLI into CMake and CTest
masarray Aug 8, 2026
92a9f93
Add deterministic injector to embedded regression profile
masarray Aug 8, 2026
a21d479
Publish Windows deterministic SV injector artifact
masarray Aug 8, 2026
c028692
Add runtime-loaded Npcap live Ethernet transport
masarray Aug 8, 2026
585996b
Fix portable Npcap stub status
masarray Aug 8, 2026
dff17d8
Add continuous real-time Npcap SV live mode
masarray Aug 8, 2026
2393e61
Keep Npcap wrapper portable on non-Windows builds
masarray Aug 8, 2026
0064fe2
Remove unused live-mode helper before strict CI
masarray Aug 8, 2026
4060d94
Document Windows continuous Npcap SV live mode
masarray Aug 8, 2026
84d7448
Guard Windows-only live helpers for strict Linux CI
masarray Aug 8, 2026
2c18b4a
Add transport-independent SV injector lifecycle controller
masarray Aug 8, 2026
3e2674f
Add embedded injector controller state-machine smoke
masarray Aug 8, 2026
be79d6f
Gate injector controller in embedded profile
masarray Aug 8, 2026
4eac218
Run deterministic 4I+4V injector engine on ESP32-P4
masarray Aug 8, 2026
bd50c01
Add bounded injector control command parser
masarray Aug 8, 2026
45e113f
Exercise bounded injector control protocol parser
masarray Aug 8, 2026
44811f9
Add USB serial JSON control plane to P4 SV injector
masarray Aug 8, 2026
d9f9ab9
Use USB Serial JTAG as P4 injector control console
masarray Aug 8, 2026
4914ed2
Document P4 deterministic injector USB control
masarray Aug 8, 2026
f311a45
Add Windows serial line transport for P4 injector control
masarray Aug 8, 2026
b401075
Add Windows COM client for P4 SV injector control
masarray Aug 8, 2026
4f7e9f3
Add standalone CMake project for SV device control client
masarray Aug 8, 2026
d1d39f6
CI-gate Windows SV device control client
masarray Aug 8, 2026
67f08d9
Document implemented P4 USB injector control plane
masarray Aug 8, 2026
fe611e2
Add realtime SV source program ring
masarray Aug 8, 2026
85b1506
Test realtime manual ramp and sequence sources
masarray Aug 8, 2026
db42023
Gate realtime SV runtime programs in embedded CI
masarray Aug 8, 2026
e558ef0
Add sparse realtime SV channel edits
masarray Aug 8, 2026
e354564
Add realtime channel and ramp control commands
masarray Aug 8, 2026
95fec56
Test realtime SV control commands
masarray Aug 8, 2026
dbef696
Guard realtime edits to stable hold slots
masarray Aug 8, 2026
9119140
Enable realtime SV value edits on ESP32-P4
masarray Aug 8, 2026
bfc4c14
Document realtime SV source modes
masarray Aug 8, 2026
7057d6b
Add realtime value commands to Windows device control
masarray Aug 8, 2026
0f2daf5
Add transactional SV state sequence builder
masarray Aug 8, 2026
f5d5c0d
Test transactional SV sequence builder
masarray Aug 8, 2026
aa39c40
Add transactional SV sequence control protocol
masarray Aug 8, 2026
bf676a1
Wire transactional state sequencer into P4 control
masarray Aug 8, 2026
b8a0b9f
Test transactional sequence control parsing
masarray Aug 8, 2026
614d95d
Add sequence CLI and request-generation smoke path
masarray Aug 8, 2026
1350f5a
Test realtime and sequence request generation
masarray Aug 8, 2026
0e314ee
Add portable recorded-waveform replay bundle format
masarray Aug 8, 2026
c1f7645
Add bounded recorded-waveform replay ring
masarray Aug 8, 2026
95a2774
Test bounded recorded-waveform replay primitives
masarray Aug 8, 2026
afb2b57
Add COMTRADE to normalized SV replay bundle tool
masarray Aug 8, 2026
682e610
Add standalone replay preparation build
masarray Aug 8, 2026
214a19b
Add recorded-waveform replay bundle CI
masarray Aug 8, 2026
dd2ccd4
Fix replay preparation namespace scope
masarray Aug 8, 2026
ee94448
Add live recorded-waveform SV replay oracle
masarray Aug 8, 2026
c7cf46c
Build recorded-waveform live replay oracle
masarray Aug 8, 2026
c4d8bed
Validate and publish live replay oracle
masarray Aug 8, 2026
2153527
Harden replay bundle overflow checks
masarray Aug 8, 2026
a90106f
Document implemented realtime sequence and replay modes
masarray Aug 8, 2026
45f49bf
Add atomic realtime profile edit builder
masarray Aug 8, 2026
5d912c8
Gate atomic realtime profile builder in embedded CI
masarray Aug 8, 2026
0bede55
Fix replay live Linux portability boundary
masarray Aug 8, 2026
b6b04d8
Refresh vendor-neutral SV control model
masarray Aug 8, 2026
81cd059
Guard sequence commits with source revision
masarray Aug 8, 2026
36eb234
Preserve sequence builder caller compatibility
masarray Aug 9, 2026
5ecb663
Fix P4 control console for onboard UART bridge
masarray Aug 9, 2026
3b18d8d
Improve Windows serial control diagnostics
masarray Aug 9, 2026
dadb7a4
Document P4 UART0 control path
masarray Aug 9, 2026
fabb224
Add no-throw UTC time decode boundary
masarray Aug 9, 2026
30e0c1d
Split no-throw UTC time primitives from host wrappers
masarray Aug 9, 2026
785d7ed
Split hard-profile SV PDU codec surface
masarray Aug 9, 2026
aa0d920
Make bounded SV PDU encoder no-exception compatible
masarray Aug 9, 2026
897924c
Split hard-profile SV frame codec surface
masarray Aug 9, 2026
232fd2f
Make bounded SV frame encoder no-exception compatible
masarray Aug 9, 2026
2ee8ecd
Add no-exception SV hard-profile smoke
masarray Aug 9, 2026
317da5b
Add hard no-exception SV embedded profile
masarray Aug 9, 2026
6b6fedf
Gate no-exception hard SV embedded profile
masarray Aug 9, 2026
39aa24e
Link sample counter into hard SV profile
masarray Aug 9, 2026
d9721a0
Add bounded no-throw Ethernet wire APIs
masarray Aug 9, 2026
ff2d25c
Implement bounded no-throw Ethernet framing
masarray Aug 9, 2026
6f44b7f
Exercise bounded Ethernet APIs in hard profile
masarray Aug 9, 2026
f350587
Expand hard profile through Ethernet framing
masarray Aug 9, 2026
1ba7ff6
Split lightweight BER tag types
masarray Aug 9, 2026
cf8b37f
Use lightweight BER tag type header
masarray Aug 9, 2026
d01b469
Add allocation-free BER span writer
masarray Aug 9, 2026
80710d1
Add bounded no-throw MMS data encoder
masarray Aug 9, 2026
2c86661
Add bounded GOOSE PDU encode API
masarray Aug 9, 2026
a727b83
Add bounded no-throw GOOSE PDU encoder
masarray Aug 9, 2026
29cb1d9
Add bounded GOOSE frame encode API
masarray Aug 9, 2026
3ce51a7
Add bounded no-throw GOOSE frame encoder
masarray Aug 9, 2026
6acded6
Build bounded GOOSE encode path in core
masarray Aug 9, 2026
203cc2c
Restore full root CMake regression matrix
masarray Aug 9, 2026
6f61daa
Add bounded GOOSE hard-profile golden smoke
masarray Aug 9, 2026
7ed9d3b
Add bounded GOOSE hard-profile target
masarray Aug 9, 2026
dafbf98
Gate hard SV and GOOSE process-bus profiles
masarray Aug 9, 2026
4a5a7ad
Make ESP-IDF SV component no-exception hard profile
masarray Aug 9, 2026
d071246
Disable C++ exceptions in ESP32-P4 SV trial
masarray Aug 9, 2026
6e08d06
Align ESP-IDF smoke with no-exception profile
masarray Aug 9, 2026
2ab34e3
Split bounded Ethernet encode implementation
masarray Aug 9, 2026
4323081
Use bounded-only Ethernet source in hard profile
masarray Aug 9, 2026
07dfc53
Add bounded TPKT and COTP transport views
masarray Aug 9, 2026
81b4efc
Add bounded BER Session and Presentation paths
masarray Aug 9, 2026
e13e4bb
Add bounded ACSE association responder
masarray Aug 9, 2026
626b3e6
Add bounded MMS PDU core
masarray Aug 9, 2026
37eba5f
Add bounded MMS GetNameList service
masarray Aug 9, 2026
2eadc46
Add bounded MMS static object read model
masarray Aug 9, 2026
ab220c7
Add bounded MMS write control path
masarray Aug 9, 2026
39f8f2e
Fix hard Write permission assertion
masarray Aug 9, 2026
6e9d5f3
Add bounded MMS static application dispatcher
masarray Aug 9, 2026
dda04e0
Add bounded MMS connection runtime
masarray Aug 9, 2026
724a0a8
Port bounded MMS static DataSet directory
masarray Aug 9, 2026
9f1fe3e
Port bounded MMS InformationReport snapshot encoder
masarray Aug 9, 2026
1cfa374
Port bounded MMS URCB runtime
masarray Aug 9, 2026
d7f6afe
Expose bounded URCB attributes through MMS
masarray Aug 9, 2026
e2a7dc4
Add retry-safe MMS report transport
masarray Aug 9, 2026
4584aa6
Add event-driven bounded URCB reporting
masarray Aug 9, 2026
f9ec8e4
Route bounded URCB events over MMS connection
masarray Aug 9, 2026
98b5158
Fix URCB event connection smoke span view
masarray Aug 9, 2026
38a4902
Add buffered selective MMS report codec API
masarray Aug 9, 2026
c3ae0a3
Add buffered report wire helper placeholder
masarray Aug 9, 2026
0a2577e
Add bounded BRCB runtime API
masarray Aug 9, 2026
f20cf6d
Add buffered selective report wire helpers
masarray Aug 9, 2026
5c286ec
Implement buffered selective MMS report codec
masarray Aug 9, 2026
e8ebaf3
Bind BRCB capture plans to queue revision
masarray Aug 9, 2026
beaba45
Implement bounded in-memory BRCB runtime
masarray Aug 9, 2026
3f55bb2
Add bounded BRCB runtime smoke
masarray Aug 9, 2026
4495163
Add BRCB hard embedded profile
masarray Aug 9, 2026
644afc2
Add BRCB hard profile CI
masarray Aug 9, 2026
5f4644a
Add retry-safe BRCB connection API
masarray Aug 9, 2026
e9c856d
Implement retry-safe BRCB delivery
masarray Aug 9, 2026
a77f3e3
Snapshot BRCB delivery metadata before dequeue
masarray Aug 9, 2026
21d8d4c
Add BRCB reconnect delivery smoke
masarray Aug 9, 2026
a0c3610
Gate BRCB reconnect delivery in hard profile
masarray Aug 9, 2026
7f34025
Audit BRCB core and connection binaries
masarray Aug 9, 2026
43556b0
Remove unused buffered report placeholder
masarray Aug 9, 2026
43a8f65
Add bounded BRCB state codec contract
masarray Aug 9, 2026
dbf2f71
Allow bounded BRCB state serialization
masarray Aug 9, 2026
d5f75b2
Implement transactional BRCB queue state codec
masarray Aug 9, 2026
631f2e5
Add dual-bank BRCB checkpoint store contract
masarray Aug 9, 2026
05b6739
Implement power-loss-safe BRCB checkpoint journal
masarray Aug 9, 2026
470d46c
Fix BRCB state codec friend boundary
masarray Aug 9, 2026
5f73827
Add BRCB power-cycle persistence oracle
masarray Aug 9, 2026
50d5e3b
Gate BRCB persistence in hard profile
masarray Aug 9, 2026
9a8e6ac
Extend BRCB hard gate to persistence
masarray Aug 9, 2026
e531196
Hold buffered reports while BRCB is disabled
masarray Aug 9, 2026
4c88d87
Gate BRCB delivery on reporting enable
masarray Aug 9, 2026
e1acbde
Test disabled BRCB delivery hold
masarray Aug 9, 2026
aa3054e
Fix strict BRCB state iterator conversions
masarray Aug 9, 2026
7fee5e2
noop
masarray Aug 9, 2026
e031493
Remove accidental empty file
masarray Aug 9, 2026
65d4451
Add ESP32-P4 BRCB flash backend and probe
masarray Aug 9, 2026
203ad70
Fix ESP32-P4 BRCB partition columns
masarray Aug 9, 2026
9f6ee34
Fix ESP-IDF partition descriptor type
masarray Aug 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions .github/workflows/brcb-hard-profile-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: BRCB Hard Profile CI

on:
push:
branches:
- main
pull_request:

permissions:
contents: read

jobs:
brcb-hard-profile:
name: BRCB Hard / ${{ matrix.compiler }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: [gcc, clang]

steps:
- uses: actions/checkout@v4

- name: Select compiler
shell: bash
run: |
if [ "${{ matrix.compiler }}" = "clang" ]; then
echo "CC=clang" >> "$GITHUB_ENV"
echo "CXX=clang++" >> "$GITHUB_ENV"
else
echo "CC=gcc" >> "$GITHUB_ENV"
echo "CXX=g++" >> "$GITHUB_ENV"
fi

- name: Configure BRCB hard profile
run: cmake -S embedded/brcb_hard_profile -B build-brcb-hard

- name: Build BRCB hard profile
run: cmake --build build-brcb-hard --parallel

- name: Run BRCB smokes
run: >-
ctest --test-dir build-brcb-hard
--output-on-failure
--output-junit brcb-ctest.xml

- name: Prove exception runtime is absent
shell: bash
run: |
set -euo pipefail
for binary in \
build-brcb-hard/ariec61850_hard_mms_brcb_smoke \
build-brcb-hard/ariec61850_hard_mms_brcb_connection_smoke \
build-brcb-hard/ariec61850_hard_mms_brcb_persistence_smoke; do
if nm -C "$binary" | grep -E '__cxa_throw|__cxa_begin_catch|__cxa_end_catch|__gxx_personality_v0'; then
echo "exception runtime symbol found in $binary" >&2
exit 1
fi
done
echo 'NO_EXCEPTION_RUNTIME=PASS'

- name: Report footprint
shell: bash
run: |
set -euo pipefail
{
echo "compiler=${{ matrix.compiler }}"
size \
build-brcb-hard/ariec61850_hard_mms_brcb_smoke \
build-brcb-hard/ariec61850_hard_mms_brcb_connection_smoke \
build-brcb-hard/ariec61850_hard_mms_brcb_persistence_smoke
} | tee build-brcb-hard/brcb-footprint.txt

- name: Upload BRCB evidence
uses: actions/upload-artifact@v4
with:
name: brcb-hard-${{ matrix.compiler }}-${{ github.event.pull_request.head.sha || github.sha }}
if-no-files-found: error
retention-days: 14
path: |
build-brcb-hard/brcb-ctest.xml
build-brcb-hard/brcb-footprint.txt
26 changes: 26 additions & 0 deletions .github/workflows/cpp-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,29 @@ jobs:
python scripts/run-phase4c-physical-acceptance.py --help | Out-Null
python -m py_compile scripts/run-phase4c-timeout-recovery.py
python scripts/run-phase4c-timeout-recovery.py --help | Out-Null
- name: Build deterministic SV injector evidence bundle
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'
$out = 'sv-injector-artifact'
New-Item -ItemType Directory -Force -Path $out | Out-Null
$exe = 'build/Release/ariec61850_sv_injector.exe'
if (-not (Test-Path $exe)) { throw "Missing $exe" }
& $exe --capabilities | Out-File -Encoding utf8 "$out/capabilities.json"
& $exe --scenario normal --frames 8000 --pcap "$out/sv-loopback-normal-2s.pcap" --json |
Out-File -Encoding utf8 "$out/normal-2s-evidence.json"
if ($LASTEXITCODE -ne 0) { throw "Normal 8,000-frame injector evidence run failed: $LASTEXITCODE" }
& $exe --scenario protection-fault --json |
Out-File -Encoding utf8 "$out/protection-fault-evidence.json"
if ($LASTEXITCODE -ne 0) { throw "Protection-fault injector evidence run failed: $LASTEXITCODE" }
Copy-Item $exe "$out/ariec61850_sv_injector.exe"
Get-FileHash "$out/ariec61850_sv_injector.exe", "$out/sv-loopback-normal-2s.pcap", "$out/normal-2s-evidence.json", "$out/protection-fault-evidence.json", "$out/capabilities.json" -Algorithm SHA256 |
ForEach-Object { "{0} {1}" -f $_.Hash.ToLowerInvariant(), (Split-Path $_.Path -Leaf) } |
Out-File -Encoding ascii "$out/SHA256SUMS"
- name: Upload Windows SV injector
uses: actions/upload-artifact@v4
with:
name: windows-sv-injector-${{ github.event.pull_request.head.sha || github.sha }}
if-no-files-found: error
retention-days: 14
path: sv-injector-artifact/
30 changes: 28 additions & 2 deletions .github/workflows/embedded-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,12 +97,38 @@ jobs:
- name: Build embedded profile
run: cmake --build build-embedded --parallel

- name: Test embedded full-link smoke
run: ctest --test-dir build-embedded --output-on-failure
- name: Test embedded host simulation
run: >-
ctest --test-dir build-embedded
--output-on-failure
--output-junit embedded-ctest.xml

- name: Independently verify exact SV PCAP wire image
shell: bash
run: |
set -euo pipefail
python3 tools/verify_sv_pcap.py \
build-embedded/sv_trial_2s.pcap \
--expected-frames 8000 \
--report build-embedded/sv-pcap-qa.json
sha256sum build-embedded/sv_trial_2s.pcap

- name: Report host-sim footprint
shell: bash
run: |
if command -v size >/dev/null 2>&1; then
size build-embedded/ariec61850_embedded_link_smoke || true
size build-embedded/ariec61850_embedded_sv_publisher_smoke || true
size build-embedded/ariec61850_embedded_sv_stream_pcap || true
fi

- name: Upload host-simulation QA evidence
uses: actions/upload-artifact@v4
with:
name: embedded-host-sim-${{ matrix.compiler }}-${{ github.event.pull_request.head.sha || github.sha }}
if-no-files-found: error
retention-days: 14
path: |
build-embedded/embedded-ctest.xml
build-embedded/sv_trial_2s.pcap
build-embedded/sv-pcap-qa.json
108 changes: 108 additions & 0 deletions .github/workflows/embedded-hard-profile-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Embedded Hard Profile CI

on:
push:
branches:
- main
pull_request:

permissions:
contents: read

jobs:
hard-embedded-profile:
name: Hard Embedded / ${{ matrix.compiler }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: [gcc, clang]

steps:
- uses: actions/checkout@v4

- name: Select compiler
shell: bash
run: |
if [ "${{ matrix.compiler }}" = "clang" ]; then
echo "CC=clang" >> "$GITHUB_ENV"
echo "CXX=clang++" >> "$GITHUB_ENV"
else
echo "CC=gcc" >> "$GITHUB_ENV"
echo "CXX=g++" >> "$GITHUB_ENV"
fi

- name: Configure hard profile
run: cmake -S embedded/hard_profile -B build-hard-embedded

- name: Build hard profile
run: cmake --build build-hard-embedded --parallel

- name: Run hard-profile smokes
run: >-
ctest --test-dir build-hard-embedded
--output-on-failure
--output-junit hard-embedded-ctest.xml

- name: Prove exception runtime is absent
shell: bash
run: |
set -euo pipefail
for binary in \
build-hard-embedded/ariec61850_hard_sv_smoke \
build-hard-embedded/ariec61850_hard_goose_smoke \
build-hard-embedded/ariec61850_hard_osi_transport_smoke \
build-hard-embedded/ariec61850_hard_session_presentation_smoke \
build-hard-embedded/ariec61850_hard_association_smoke \
build-hard-embedded/ariec61850_hard_mms_pdu_smoke \
build-hard-embedded/ariec61850_hard_mms_get_name_list_smoke \
build-hard-embedded/ariec61850_hard_mms_static_model_smoke \
build-hard-embedded/ariec61850_hard_mms_write_smoke \
build-hard-embedded/ariec61850_hard_mms_dispatcher_smoke \
build-hard-embedded/ariec61850_hard_mms_connection_runtime_smoke \
build-hard-embedded/ariec61850_hard_mms_data_set_smoke \
build-hard-embedded/ariec61850_hard_mms_information_report_smoke \
build-hard-embedded/ariec61850_hard_mms_urcb_runtime_smoke \
build-hard-embedded/ariec61850_hard_mms_urcb_objects_smoke \
build-hard-embedded/ariec61850_hard_mms_report_connection_smoke; do
if nm -C "$binary" | grep -E '__cxa_throw|__cxa_begin_catch|__cxa_end_catch|__gxx_personality_v0'; then
echo "exception runtime symbol found in $binary" >&2
exit 1
fi
done
echo 'NO_EXCEPTION_RUNTIME=PASS'

- name: Report hard-profile footprint
shell: bash
run: |
set -euo pipefail
{
echo "compiler=${{ matrix.compiler }}"
size \
build-hard-embedded/ariec61850_hard_sv_smoke \
build-hard-embedded/ariec61850_hard_goose_smoke \
build-hard-embedded/ariec61850_hard_osi_transport_smoke \
build-hard-embedded/ariec61850_hard_session_presentation_smoke \
build-hard-embedded/ariec61850_hard_association_smoke \
build-hard-embedded/ariec61850_hard_mms_pdu_smoke \
build-hard-embedded/ariec61850_hard_mms_get_name_list_smoke \
build-hard-embedded/ariec61850_hard_mms_static_model_smoke \
build-hard-embedded/ariec61850_hard_mms_write_smoke \
build-hard-embedded/ariec61850_hard_mms_dispatcher_smoke \
build-hard-embedded/ariec61850_hard_mms_connection_runtime_smoke \
build-hard-embedded/ariec61850_hard_mms_data_set_smoke \
build-hard-embedded/ariec61850_hard_mms_information_report_smoke \
build-hard-embedded/ariec61850_hard_mms_urcb_runtime_smoke \
build-hard-embedded/ariec61850_hard_mms_urcb_objects_smoke \
build-hard-embedded/ariec61850_hard_mms_report_connection_smoke
} | tee build-hard-embedded/hard-embedded-footprint.txt

- name: Upload hard-profile evidence
uses: actions/upload-artifact@v4
with:
name: embedded-hard-profile-${{ matrix.compiler }}-${{ github.event.pull_request.head.sha || github.sha }}
if-no-files-found: error
retention-days: 14
path: |
build-hard-embedded/hard-embedded-ctest.xml
build-hard-embedded/hard-embedded-footprint.txt
Loading
Loading