summaryrefslogtreecommitdiff
path: root/std/signal/test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/signal/test.ts')
-rw-r--r--std/signal/test.ts67
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);
+ }
});
}