summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/unit/process_test.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/cli/tests/unit/process_test.ts b/cli/tests/unit/process_test.ts
index 5b7844970..76b755295 100644
--- a/cli/tests/unit/process_test.ts
+++ b/cli/tests/unit/process_test.ts
@@ -375,6 +375,30 @@ unitTest({ perms: { run: true } }, async function runClose(): Promise<void> {
p.stderr.close();
});
+unitTest(
+ { perms: { run: true } },
+ async function runKillAfterStatus(): Promise<void> {
+ const p = Deno.run({
+ cmd: ["python", "-c", 'print("hello")'],
+ });
+ await p.status();
+
+ // On Windows the underlying Rust API returns `ERROR_ACCESS_DENIED`,
+ // which serves kind of as a catch all error code. More specific
+ // error codes do exist, e.g. `ERROR_WAIT_NO_CHILDREN`; it's unclear
+ // why they're not returned.
+ const expectedErrorType = Deno.build.os === "windows"
+ ? Deno.errors.PermissionDenied
+ : Deno.errors.NotFound;
+ assertThrows(
+ () => p.kill(Deno.Signal.SIGTERM),
+ expectedErrorType,
+ );
+
+ p.close();
+ },
+);
+
unitTest(function signalNumbers(): void {
if (Deno.build.os === "darwin") {
assertEquals(Deno.Signal.SIGSTOP, 17);