B4: Host-mode integration tests

Five end-to-end tests wire a real HostHandler against a real passive
HSMS Connection over a TCP loopback pair and assert wire-level
behaviour matches expectations:

  - establish_communication + go_remote sequence S1F13 then S1F17
  - send_remote_command produces a wire-correct S2F41 the equipment
    can re-parse with parse_s2f41 and recover CPNAME/CPVAL
  - send_terminal_display round-trips through S10F1/F2
  - E40/E94 create+command sequence (S16F11, S14F9, S16F5)
  - Inbound S5F1 alarm fires the host's alarm observer + auto-acks

Each test uses the existing pump_until / SocketPair harness pattern
from test_hsms_connection.cpp.  The recorder pattern keeps the
equipment-side dispatch table small — every test installs the same
canned reply handler.

This closes Tranche B (host mode).  HostHandler now has the inbound
+ outbound surface secsgem-py's GemHostHandler exposes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-07 22:58:51 +02:00
parent 6ff3104591
commit 4fec4297e2
2 changed files with 287 additions and 0 deletions
+1
View File
@@ -88,6 +88,7 @@ add_executable(secsgem_tests
tests/test_hsms_connection.cpp
tests/test_secsi.cpp
tests/test_secsi_tcp.cpp
tests/test_host_handler.cpp
tests/test_control_state.cpp
tests/test_communication_state.cpp
tests/test_data_model.cpp