summaryrefslogtreecommitdiff
path: root/tests/napi/cleanup_hook_test.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/napi/cleanup_hook_test.js')
-rw-r--r--tests/napi/cleanup_hook_test.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/napi/cleanup_hook_test.js b/tests/napi/cleanup_hook_test.js
new file mode 100644
index 000000000..0d83bc5b4
--- /dev/null
+++ b/tests/napi/cleanup_hook_test.js
@@ -0,0 +1,36 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+
+import { assertEquals, loadTestLibrary } from "./common.js";
+
+const properties = loadTestLibrary();
+
+if (import.meta.main) {
+ properties.installCleanupHook();
+ console.log("installed cleanup hook");
+} else {
+ Deno.test("napi cleanup hook", async () => {
+ const { stdout, stderr, code } = await new Deno.Command(Deno.execPath(), {
+ args: [
+ "run",
+ "--config",
+ Deno.realPathSync("../config/deno.json"),
+ "--no-lock",
+ "--allow-read",
+ "--allow-run",
+ "--allow-ffi",
+ "--unstable-ffi",
+ import.meta.url,
+ ],
+ }).output();
+
+ assertEquals(new TextDecoder().decode(stderr), "");
+ assertEquals(code, 0);
+
+ const stdoutText = new TextDecoder().decode(stdout);
+ const stdoutLines = stdoutText.split("\n");
+ assertEquals(stdoutLines.length, 4);
+ assertEquals(stdoutLines[0], "installed cleanup hook");
+ assertEquals(stdoutLines[1], "cleanup(18)");
+ assertEquals(stdoutLines[2], "cleanup(42)");
+ });
+}