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:
@@ -76,6 +76,15 @@ class TestScenarios(unittest.TestCase):
|
||||
for s in S.SCENARIOS:
|
||||
S.validate_scenario(s) # must not raise
|
||||
|
||||
def test_debug_and_tcplogger_scenarios_present(self):
|
||||
kinds = {s["kind"] for s in S.SCENARIOS}
|
||||
self.assertIn("debug", kinds)
|
||||
self.assertIn("tcplogger", kinds)
|
||||
debug_ids = {s["id"] for s in S.SCENARIOS if s["kind"] == "debug"}
|
||||
self.assertEqual(debug_ids, {"s55_debug_force_trace_break"})
|
||||
tcplogger_ids = {s["id"] for s in S.SCENARIOS if s["kind"] == "tcplogger"}
|
||||
self.assertEqual(tcplogger_ids, {"s56_tcplogger_delivery"})
|
||||
|
||||
|
||||
class TestGenData(unittest.TestCase):
|
||||
def test_ground_truth_shapes(self):
|
||||
|
||||
Reference in New Issue
Block a user