diff options
Diffstat (limited to 'std/signal/test.ts')
-rw-r--r-- | std/signal/test.ts | 67 |
1 files changed, 37 insertions, 30 deletions
diff --git a/std/signal/test.ts b/std/signal/test.ts index dfe5bf4cf..d59484e12 100644 --- a/std/signal/test.ts +++ b/std/signal/test.ts @@ -15,40 +15,47 @@ if (Deno.build.os !== "win") { ); }); - test("signal() iterates for multiple signals", async (): Promise<void> => { - // This prevents the program from exiting. - const t = setInterval(() => {}, 1000); + test({ + name: "signal() iterates for multiple signals", + fn: async (): Promise<void> => { + // This prevents the program from exiting. + const t = setInterval(() => {}, 1000); - let c = 0; - const sig = signal( - Deno.Signal.SIGUSR1, - Deno.Signal.SIGUSR2, - Deno.Signal.SIGINT - ); + let c = 0; + const sig = signal( + Deno.Signal.SIGUSR1, + Deno.Signal.SIGUSR2, + Deno.Signal.SIGINT + ); - setTimeout(async () => { - await delay(20); - Deno.kill(Deno.pid, Deno.Signal.SIGINT); - await delay(20); - Deno.kill(Deno.pid, Deno.Signal.SIGUSR2); - await delay(20); - Deno.kill(Deno.pid, Deno.Signal.SIGUSR1); - await delay(20); - Deno.kill(Deno.pid, Deno.Signal.SIGUSR2); - await delay(20); - Deno.kill(Deno.pid, Deno.Signal.SIGUSR1); - await delay(20); - Deno.kill(Deno.pid, Deno.Signal.SIGINT); - await delay(20); - sig.dispose(); - }); + setTimeout(async () => { + await delay(20); + Deno.kill(Deno.pid, Deno.Signal.SIGINT); + await delay(20); + Deno.kill(Deno.pid, Deno.Signal.SIGUSR2); + await delay(20); + Deno.kill(Deno.pid, Deno.Signal.SIGUSR1); + await delay(20); + Deno.kill(Deno.pid, Deno.Signal.SIGUSR2); + await delay(20); + Deno.kill(Deno.pid, Deno.Signal.SIGUSR1); + await delay(20); + Deno.kill(Deno.pid, Deno.Signal.SIGINT); + await delay(20); + sig.dispose(); + }); - for await (const _ of sig) { - c += 1; - } + for await (const _ of sig) { + c += 1; + } - assertEquals(c, 6); + assertEquals(c, 6); - clearTimeout(t); + clearTimeout(t); + // Clear timeout clears interval, but interval promise is not + // yet resolved, delay to next turn of event loop otherwise, + // we'll be leaking resources. + await delay(10); + } }); } |