From 11c850af423f07769f054c494a76cbd9efb8806c Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Tue, 6 Aug 2019 06:45:36 +0100 Subject: Enforce permissions on kill(), homeDir() and execPath (#2723) --- js/process_test.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'js/process_test.ts') diff --git a/js/process_test.ts b/js/process_test.ts index 874f59a81..69b904b73 100644 --- a/js/process_test.ts +++ b/js/process_test.ts @@ -321,6 +321,22 @@ test(function signalNumbers(): void { // Ignore signal tests on windows for now... if (Deno.platform.os !== "win") { + test(function killPermissions(): void { + let caughtError = false; + try { + // Unlike the other test cases, we don't have permission to spawn a + // subprocess we can safely kill. Instead we send SIGCONT to the current + // process - assuming that Deno does not have a special handler set for it + // and will just continue even if a signal is erroneously sent. + Deno.kill(Deno.pid, Deno.Signal.SIGCONT); + } catch (e) { + caughtError = true; + assertEquals(e.kind, Deno.ErrorKind.PermissionDenied); + assertEquals(e.name, "PermissionDenied"); + } + assert(caughtError); + }); + testPerm({ run: true }, async function killSuccess(): Promise { const p = run({ args: ["python", "-c", "from time import sleep; sleep(10000)"] -- cgit v1.2.3