summaryrefslogtreecommitdiff
path: root/test_napi
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2023-01-23 00:52:18 -0800
committerGitHub <noreply@github.com>2023-01-23 14:22:18 +0530
commitb96bbc32c8a0828f997f6148111a31ec27ec08b1 (patch)
tree0dfa87d40f79cd6e70da1efc9ea21c34ca0e670a /test_napi
parent2e1df623804fd580d236d89d7277a28d66d7dddb (diff)
fix(napi): improve napi_is_detached_arraybuffer (#17498)
Diffstat (limited to 'test_napi')
-rw-r--r--test_napi/arraybuffer_test.js14
-rw-r--r--test_napi/src/arraybuffer.rs21
2 files changed, 33 insertions, 2 deletions
diff --git a/test_napi/arraybuffer_test.js b/test_napi/arraybuffer_test.js
index c08ffc7d6..3e4e3c6c1 100644
--- a/test_napi/arraybuffer_test.js
+++ b/test_napi/arraybuffer_test.js
@@ -1,6 +1,6 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-import { assertEquals, loadTestLibrary } from "./common.js";
+import { assert, assertEquals, loadTestLibrary } from "./common.js";
const typedarray = loadTestLibrary();
@@ -10,3 +10,15 @@ Deno.test("napi arraybuffer detach", function () {
typedarray.test_detached(buf);
assertEquals(buf.byteLength, 0);
});
+
+Deno.test("napi arraybuffer is detached", function () {
+ const buf = new ArrayBuffer(5);
+ assertEquals(buf.byteLength, 5);
+ assert(!typedarray.is_detached(buf));
+ typedarray.test_detached(buf);
+ assert(typedarray.is_detached(buf));
+
+ [2, {}, "foo", null, undefined, new Uint8Array(10)].forEach((value) => {
+ assert(!typedarray.is_detached(value));
+ });
+});
diff --git a/test_napi/src/arraybuffer.rs b/test_napi/src/arraybuffer.rs
index 96d89f9d9..8d6f756bf 100644
--- a/test_napi/src/arraybuffer.rs
+++ b/test_napi/src/arraybuffer.rs
@@ -21,8 +21,27 @@ extern "C" fn test_detached(
args[0]
}
+extern "C" fn is_detached(
+ env: napi_env,
+ info: napi_callback_info,
+) -> napi_value {
+ let (args, argc, _) = napi_get_callback_info!(env, info, 1);
+ assert_eq!(argc, 1);
+
+ let mut value = false;
+ assert_napi_ok!(napi_is_detached_arraybuffer(env, args[0], &mut value));
+
+ let mut result = std::ptr::null_mut();
+ assert_napi_ok!(napi_get_boolean(env, value, &mut result));
+
+ result
+}
+
pub fn init(env: napi_env, exports: napi_value) {
- let properties = &[napi_new_property!(env, "test_detached", test_detached)];
+ let properties = &[
+ napi_new_property!(env, "test_detached", test_detached),
+ napi_new_property!(env, "is_detached", is_detached),
+ ];
assert_napi_ok!(napi_define_properties(
env,