tests: CEID/S6F11 + PRJobAlert S16F9 on-the-wire emission
FSM unit tests already verified state transitions fire the change handler — but they don't prove the frame leaves the socket with the right CEID and linked report payload. This commit wires a passive equipment Connection to an EquipmentDataModel via a small emitter, drives transitions, and asserts on what the host peer receives. Six new tests: EPT → Productive ⇒ S6F11(kCeidProductive) with the linked report EPT (no subscription) ⇒ no S6F11 (proves disable gate) PJ Queued→SettingUp ⇒ S16F9 PRJobAlert with PRJOBID + state byte PJ alert_enabled=false ⇒ no S16F9 (per-PJ gate works) CJ → Executing ⇒ S6F11(ControlJobExecuting) on the wire Substrate StartProcessing ⇒ S6F11(SubstrateInProcess) on the wire All use the generated parse_s6f11 / parse_s16f9 to decode the incoming frame and assert against typed fields (CEID, PRJOBID, etc.) rather than poking variant internals — that ties the test to the schema-as-data rather than to wire byte offsets. Closes #9 in the test-gap backlog. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -127,6 +127,7 @@ add_executable(secsgem_tests
|
||||
tests/test_s9_fallback.cpp
|
||||
tests/test_e84.cpp
|
||||
tests/test_gem300_scenario.cpp
|
||||
tests/test_wire_ceid_emission.cpp
|
||||
)
|
||||
target_link_libraries(secsgem_tests PRIVATE secsgem doctest::doctest)
|
||||
target_compile_definitions(secsgem_tests PRIVATE
|
||||
|
||||
Reference in New Issue
Block a user