diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/dts/lib.deno.unstable.d.ts | 4 | ||||
-rw-r--r-- | cli/tests/unit/spawn_test.ts | 23 |
2 files changed, 25 insertions, 2 deletions
diff --git a/cli/dts/lib.deno.unstable.d.ts b/cli/dts/lib.deno.unstable.d.ts index bb93eac8d..e21c2afce 100644 --- a/cli/dts/lib.deno.unstable.d.ts +++ b/cli/dts/lib.deno.unstable.d.ts @@ -1060,8 +1060,8 @@ declare namespace Deno { /** Waits for the child to exit completely, returning all its output and status. */ output(): Promise<SpawnOutput<T>>; - /** Kills the process with given Signal. */ - kill(signo: Signal): void; + /** Kills the process with given Signal. Defaults to SIGTERM. */ + kill(signo?: Signal): void; } /** diff --git a/cli/tests/unit/spawn_test.ts b/cli/tests/unit/spawn_test.ts index 40224dfb4..de47b8757 100644 --- a/cli/tests/unit/spawn_test.ts +++ b/cli/tests/unit/spawn_test.ts @@ -250,6 +250,29 @@ Deno.test( Deno.test( { permissions: { run: true, read: true } }, + async function spawnKillOptional() { + const child = Deno.spawnChild(Deno.execPath(), { + args: ["eval", "setTimeout(() => {}, 10000)"], + stdout: "null", + stderr: "null", + }); + + child.kill(); + const status = await child.status; + + assertEquals(status.success, false); + if (Deno.build.os === "windows") { + assertEquals(status.code, 1); + assertEquals(status.signal, null); + } else { + assertEquals(status.code, 143); + assertEquals(status.signal, "SIGTERM"); + } + }, +); + +Deno.test( + { permissions: { run: true, read: true } }, async function spawnAbort() { const ac = new AbortController(); const child = Deno.spawnChild(Deno.execPath(), { |