Implemented common base for debug services
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user