summaryrefslogtreecommitdiff
path: root/test_napi/src
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2023-01-23 05:30:01 -0800
committerGitHub <noreply@github.com>2023-01-23 19:00:01 +0530
commitcd192313064bc2e9d65e3e734930cfaf15f4191b (patch)
treeb8187cfe80025efa6e7e1c1960a6bf9349e2a31f /test_napi/src
parentc3e0b12c72673badece8ef5d789a942637d893ba (diff)
fix(napi): improve napi_adjust_external_memory (#17501)
<!-- Before submitting a PR, please read http://deno.land/manual/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. 7. Open as a draft PR if your work is still in progress. The CI won't run all steps, but you can add '[ci]' to a commit message to force it to. 8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label. -->
Diffstat (limited to 'test_napi/src')
-rw-r--r--test_napi/src/lib.rs3
-rw-r--r--test_napi/src/mem.rs34
2 files changed, 37 insertions, 0 deletions
diff --git a/test_napi/src/lib.rs b/test_napi/src/lib.rs
index 78a8248dc..71258ee7f 100644
--- a/test_napi/src/lib.rs
+++ b/test_napi/src/lib.rs
@@ -13,6 +13,7 @@ pub mod callback;
pub mod coerce;
pub mod date;
pub mod error;
+pub mod mem;
pub mod numbers;
pub mod object_wrap;
pub mod primitives;
@@ -152,6 +153,8 @@ unsafe extern "C" fn napi_register_module_v1(
r#async::init(env, exports);
date::init(env, exports);
tsfn::init(env, exports);
+ mem::init(env, exports);
+
init_cleanup_hook(env, exports);
exports
diff --git a/test_napi/src/mem.rs b/test_napi/src/mem.rs
new file mode 100644
index 000000000..dde4418cb
--- /dev/null
+++ b/test_napi/src/mem.rs
@@ -0,0 +1,34 @@
+// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
+
+use crate::assert_napi_ok;
+use crate::napi_new_property;
+use napi_sys::*;
+use std::ptr;
+
+extern "C" fn adjust_external_memory(
+ env: napi_env,
+ _: napi_callback_info,
+) -> napi_value {
+ let mut adjusted_value = 0;
+
+ assert_napi_ok!(napi_adjust_external_memory(env, 1024, &mut adjusted_value));
+
+ let mut result = ptr::null_mut();
+ assert_napi_ok!(napi_create_int64(env, adjusted_value, &mut result));
+ result
+}
+
+pub fn init(env: napi_env, exports: napi_value) {
+ let properties = &[napi_new_property!(
+ env,
+ "adjust_external_memory",
+ adjust_external_memory
+ )];
+
+ assert_napi_ok!(napi_define_properties(
+ env,
+ exports,
+ properties.len(),
+ properties.as_ptr()
+ ));
+}