mirror of
https://github.com/farcasclaudiu/openclaw.git
synced 2026-06-29 05:02:04 +03:00
chore (exec): add PTY background abort regression test
This commit is contained in:
@@ -43,6 +43,37 @@ test("background exec is not killed when tool signal aborts", async () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("pty background exec is not killed when tool signal aborts", async () => {
|
||||||
|
const tool = createExecTool({ allowBackground: true, backgroundMs: 0 });
|
||||||
|
const abortController = new AbortController();
|
||||||
|
|
||||||
|
const result = await tool.execute(
|
||||||
|
"toolcall",
|
||||||
|
{ command: 'node -e "setTimeout(() => {}, 5000)"', background: true, pty: true },
|
||||||
|
abortController.signal,
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(result.details.status).toBe("running");
|
||||||
|
const sessionId = (result.details as { sessionId: string }).sessionId;
|
||||||
|
|
||||||
|
abortController.abort();
|
||||||
|
|
||||||
|
await sleep(150);
|
||||||
|
|
||||||
|
const running = getSession(sessionId);
|
||||||
|
const finished = getFinishedSession(sessionId);
|
||||||
|
|
||||||
|
try {
|
||||||
|
expect(finished).toBeUndefined();
|
||||||
|
expect(running?.exited).toBe(false);
|
||||||
|
} finally {
|
||||||
|
const pid = running?.pid;
|
||||||
|
if (pid) {
|
||||||
|
killProcessTree(pid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test("background exec still times out after tool signal abort", async () => {
|
test("background exec still times out after tool signal abort", async () => {
|
||||||
const tool = createExecTool({ allowBackground: true, backgroundMs: 0 });
|
const tool = createExecTool({ allowBackground: true, backgroundMs: 0 });
|
||||||
const abortController = new AbortController();
|
const abortController = new AbortController();
|
||||||
|
|||||||
Reference in New Issue
Block a user