Implemented common base for debug services

This commit is contained in:
Martino Ferrari
2026-05-07 12:12:14 +02:00
parent 774808a054
commit e9f25f5867
9 changed files with 1947 additions and 3436 deletions
+17 -18
View File
@@ -48,14 +48,14 @@ public:
service.UnforceSignal("Z");
// 2. Commands
service.HandleCommand("TREE", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("DISCOVER", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("CONFIG", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("PAUSE", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("RESUME", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("LS /", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("INFO X.Y.Z", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("MSG DebugService DummyFunc 0 K=V", NULL_PTR(BasicTCPSocket*));
{ StreamString out; service.HandleCommand("TREE", out); }
{ StreamString out; service.HandleCommand("DISCOVER", out); }
{ StreamString out; service.HandleCommand("CONFIG", out); }
{ StreamString out; service.HandleCommand("PAUSE", out); }
{ StreamString out; service.HandleCommand("RESUME", out); }
{ StreamString out; service.HandleCommand("LS /", out); }
{ StreamString out; service.HandleCommand("INFO X.Y.Z", out); }
{ StreamString out; service.HandleCommand("MSG DebugService DummyFunc 0 K=V", out); }
// 3. Broker Active Status
volatile bool active = false;
@@ -111,12 +111,12 @@ public:
service.SetPaused(false);
service.Step(0u, NULL_PTR(const char8 *));
// 5. VALUE command (NULL client — smoke test, no crash)
service.HandleCommand("VALUE X.Y.Z", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("VALUE NoSuchSignal", NULL_PTR(BasicTCPSocket*));
service.HandleCommand("STEP 1 ThreadA", NULL_PTR(BasicTCPSocket*));
// 5. VALUE command — smoke test, no crash
{ StreamString out; service.HandleCommand("VALUE X.Y.Z", out); }
{ StreamString out; service.HandleCommand("VALUE NoSuchSignal", out); }
{ StreamString out; service.HandleCommand("STEP 1 ThreadA", out); }
assert(service.stepThreadFilter == "ThreadA");
service.HandleCommand("STEP 3", NULL_PTR(BasicTCPSocket*));
{ StreamString out; service.HandleCommand("STEP 3", out); }
assert(service.stepThreadFilter.Size() == 0u);
}
@@ -282,8 +282,8 @@ public:
for (uint32 i = 0; i < 512; i++) bigBuf[i] = (uint8)(i & 0xFF);
service.RegisterSignal(bigBuf, UnsignedInteger8Bit, "Big.Signal", 1, 512);
// VALUE command with NULL client is a smoke test must not crash or loop
service.HandleCommand("VALUE Signal", NULL_PTR(BasicTCPSocket*));
// VALUE command smoke test, must not crash or loop
{ StreamString out; service.HandleCommand("VALUE Signal", out); }
printf(" -> PASS: VALUE on large array completed without hang\n");
// Verify directly: nElem is capped before the byte limit
@@ -334,12 +334,11 @@ public:
cmd += "=value";
// Must not crash or assert
service.HandleCommand(cmd, NULL_PTR(BasicTCPSocket*));
{ StreamString out; service.HandleCommand(cmd, out); }
printf(" -> PASS: oversized key handled without buffer overflow\n");
// A normal-length key should still be accepted (regression check)
service.HandleCommand("MSG DebugService DummyFunc 0 NormalKey=NormalValue",
NULL_PTR(BasicTCPSocket*));
{ StreamString out; service.HandleCommand("MSG DebugService DummyFunc 0 NormalKey=NormalValue", out); }
printf(" -> PASS: normal key not rejected by bounds check\n");
}