feat(e2e): add debug/tcplogger E2E scenario kinds using debugclient
Adds a trimmed debug_e2e.cfg (DebugService on 8080/8081, TcpLogger on
9090) and two new scenarios (s55_debug_force_trace_break, kind=debug;
s56_tcplogger_delivery, kind=tcplogger) reusing it, with matching
run_e2e.sh scenario-list/dispatch wiring and debugclient build steps.
Also fixes a real bug found while wiring s56: debugclient's tcplogger
check was tautological (it matched MarteController's own local
"CMD"-level echo of the outgoing command, which contains the same text
as the triggered event, instead of a line actually delivered over the
real TCPLogger TCP socket) and its trigger command (an invalid FORCE)
never reaches DebugServiceBase's REPORT_ERROR at all. Switched the
trigger to a MSG-to-missing-destination command (which does call
REPORT_ERROR) and the match to require the real log text
("not found in ORD"), recorded only after a connect-settle baseline —
verified with a positive run (real Warning-level TCPLogger line
received) and a negative control (LogPort=0 disables TcpLogger and the
scenario correctly FAILs).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -144,6 +144,10 @@ def validate_scenario(s):
|
||||
if "hub_cfg" not in s or "marte_cfg" not in s:
|
||||
errs.append(f"recorder scenario {s.get('id')} missing hub_cfg/marte_cfg")
|
||||
return errs
|
||||
if kind in ("debug", "tcplogger"):
|
||||
if not all(k in s for k in ("cfg", "cmd_port", "udp_port", "log_port")):
|
||||
errs.append(f"{kind} scenario {s.get('id')} missing cfg/cmd_port/udp_port/log_port")
|
||||
return errs
|
||||
if kind != "chain":
|
||||
errs.append(f"unknown scenario kind: {kind}")
|
||||
return errs
|
||||
@@ -616,7 +620,31 @@ _RECORDER = [
|
||||
},
|
||||
]
|
||||
|
||||
SCENARIOS = SCENARIOS + _DIRECT + _RECORDER
|
||||
_DEBUG = [
|
||||
{
|
||||
"id": "s55_debug_force_trace_break",
|
||||
"desc": "DebugService FORCE/TRACE/BREAK over real TCP 8080 + UDP 8081",
|
||||
"kind": "debug",
|
||||
"cfg": "Test/E2E/suite/debug_e2e.cfg",
|
||||
"cmd_port": 8080, "udp_port": 8081, "log_port": 9090,
|
||||
"client_checks": [],
|
||||
"known_issue": None,
|
||||
},
|
||||
]
|
||||
|
||||
_TCPLOGGER = [
|
||||
{
|
||||
"id": "s56_tcplogger_delivery",
|
||||
"desc": "TCPLogger delivers a log line for a triggered DebugService event",
|
||||
"kind": "tcplogger",
|
||||
"cfg": "Test/E2E/suite/debug_e2e.cfg",
|
||||
"cmd_port": 8080, "udp_port": 8081, "log_port": 9090,
|
||||
"client_checks": [],
|
||||
"known_issue": None,
|
||||
},
|
||||
]
|
||||
|
||||
SCENARIOS = SCENARIOS + _DIRECT + _RECORDER + _DEBUG + _TCPLOGGER
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user