summaryrefslogtreecommitdiff
path: root/test_napi/cleanup_hook_test.js
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-01-10 19:15:10 +0100
committerGitHub <noreply@github.com>2023-01-10 19:15:10 +0100
commit14ada3dce2ede9cffacfe829cca04f4ef262f91b (patch)
treeff2892510e619f49e6ec94acb904e5f8c7d7cda4 /test_napi/cleanup_hook_test.js
parent71ea4ef2746d7d75623a821d4832d3531a8e1654 (diff)
fix(napi): support for env cleanup hooks (#17324)
This commit adds support for "napi_add_env_cleanup_hook" and "napi_remove_env_cleanup_hook" function for Node-API.
Diffstat (limited to 'test_napi/cleanup_hook_test.js')
-rw-r--r--test_napi/cleanup_hook_test.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/test_napi/cleanup_hook_test.js b/test_napi/cleanup_hook_test.js
new file mode 100644
index 000000000..30ceae470
--- /dev/null
+++ b/test_napi/cleanup_hook_test.js
@@ -0,0 +1,33 @@
+// Copyright 2018-2023 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",
+ "--allow-read",
+ "--allow-run",
+ "--allow-ffi",
+ "--unstable",
+ import.meta.url,
+ ],
+ }).output();
+
+ assertEquals(code, 0);
+ assertEquals(new TextDecoder().decode(stderr), "");
+
+ 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)");
+ });
+}