it("starts stdio MCP servers in a disposable process group on POSIX", async () => { const child = new MockChildProcess();
spawnMock.mockReturnValue(child); const { OpenClawStdioClientTransport } = await import("./mcp-stdio-transport.js");
const transport = new OpenClawStdioClientTransport({
command: "npx",
args: ["-y", "example-mcp"],
env: { EXAMPLE: "1" },
cwd: "/tmp/example",
stderr: "pipe",
}); const started = transport.start();
child.emit("spawn");
await started;
it("kills the process tree when graceful stdio close does not exit", async () => {
vi.useFakeTimers(); const child = new MockChildProcess();
spawnMock.mockReturnValue(child); const { OpenClawStdioClientTransport } = await import("./mcp-stdio-transport.js");
const transport = new OpenClawStdioClientTransport({ command: "npx" }); const started = transport.start();
child.emit("spawn");
await started;
it("does not kill the process tree when graceful stdio close exits", async () => {
vi.useFakeTimers(); const child = new MockChildProcess();
spawnMock.mockReturnValue(child); const { OpenClawStdioClientTransport } = await import("./mcp-stdio-transport.js");
const transport = new OpenClawStdioClientTransport({ command: "npx" }); const started = transport.start();
child.emit("spawn");
await started;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.