conformance: standalone secs_conformance harness binary
The closest thing to an in-repo "RTS" — a runnable executable that points at any HSMS-SS equipment and walks through every E30 fundamental + additional capability, reporting pass/fail per check and exiting with the right code for CI / canary use. build/secs_conformance --host <ip> --port 5000 --device 0 Each check sends a host-initiated primary and asserts the equipment replies with the expected stream/function within T3. Checks chain forward through async callbacks (each reply handler kicks off the next check) so the conformance run stays inside one io.run(). Initial check set (mirrors COMPLIANCE.md §3 fundamentals): E37 §7.2 SELECT handshake E30 §6.5 S1F13/F14 Establish Comms E30 §6.7 S1F1/F2 Are You There E30 §6.13 S1F11/F12 SVID Namelist E30 §6.16 S2F29/F30 ECID Namelist E30 §6.20 S2F17/F18 Clock E30 §6.14 S5F5/F6 List Alarms E30 §6.17 S7F19/F20 PP List E30 §6.10 S1F19/F20 GEM Compliance Validated against the demo server: 9/9 PASS. README.md §8 (Compliance + certification) updated to point at the harness as the suggested first-line conformance check. Tool vendors fork apps/secs_conformance.cpp and add their own capability-specific checks alongside. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -83,6 +83,9 @@ target_link_libraries(secs_client PRIVATE secsgem)
|
||||
add_executable(secs_interop_probe apps/secs_interop_probe.cpp)
|
||||
target_link_libraries(secs_interop_probe PRIVATE secsgem)
|
||||
|
||||
add_executable(secs_conformance apps/secs_conformance.cpp)
|
||||
target_link_libraries(secs_conformance PRIVATE secsgem)
|
||||
|
||||
# --- Tests ----------------------------------------------------------------
|
||||
enable_testing()
|
||||
include(FetchContent)
|
||||
|
||||
Reference in New Issue
Block a user