diff options
author | Nayeem Rahman <muhammed.9939@gmail.com> | 2019-08-06 06:45:36 +0100 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-08-06 01:45:36 -0400 |
commit | 11c850af423f07769f054c494a76cbd9efb8806c (patch) | |
tree | 2a0a784333e052b3625d67514871cf2c4dbd3752 /js/process_test.ts | |
parent | 046cccfe1768837fcd5b4c1fd7d52fb2d98c0b11 (diff) |
Enforce permissions on kill(), homeDir() and execPath (#2723)
Diffstat (limited to 'js/process_test.ts')
-rw-r--r-- | js/process_test.ts | 16 |
1 files changed, 16 insertions, 0 deletions
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<void> { const p = run({ args: ["python", "-c", "from time import sleep; sleep(10000)"] |