summaryrefslogtreecommitdiff
path: root/test_napi/src/callback.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-05-26 07:02:12 +0200
committerGitHub <noreply@github.com>2023-05-26 05:02:12 +0000
commite95f098ae350f17450d06270ce37032688447f96 (patch)
tree4e84e684fd0d0d0d25037cc196841cdccde7f66f /test_napi/src/callback.rs
parent512d5337c480a2a2704881d3fe1c40b6e0445cf0 (diff)
fix(napi): properly handle arguments in napi_get_cb_info (#19269)
Closes https://github.com/denoland/deno/issues/17213
Diffstat (limited to 'test_napi/src/callback.rs')
-rw-r--r--test_napi/src/callback.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/test_napi/src/callback.rs b/test_napi/src/callback.rs
index c863eb7a6..ae917e7b1 100644
--- a/test_napi/src/callback.rs
+++ b/test_napi/src/callback.rs
@@ -5,6 +5,7 @@ use crate::napi_get_callback_info;
use crate::napi_new_property;
use napi_sys::ValueType::napi_function;
use napi_sys::ValueType::napi_object;
+use napi_sys::ValueType::napi_undefined;
use napi_sys::*;
use std::ptr;
@@ -13,7 +14,9 @@ extern "C" fn test_callback_run(
env: napi_env,
info: napi_callback_info,
) -> napi_value {
- let (args, argc, _) = napi_get_callback_info!(env, info, 2);
+ // We want to have argv with size 4, even though the callback will have
+ // only two arguments. We'll assert that the remaining two args are undefined.
+ let (args, argc, _) = napi_get_callback_info!(env, info, 4);
assert_eq!(argc, 2);
let mut ty = -1;
@@ -24,6 +27,14 @@ extern "C" fn test_callback_run(
assert_napi_ok!(napi_typeof(env, args[1], &mut ty));
assert_eq!(ty, napi_object);
+ let mut ty = -1;
+ assert_napi_ok!(napi_typeof(env, args[2], &mut ty));
+ assert_eq!(ty, napi_undefined);
+
+ let mut ty = -1;
+ assert_napi_ok!(napi_typeof(env, args[3], &mut ty));
+ assert_eq!(ty, napi_undefined);
+
let mut len = 0;
assert_napi_ok!(napi_get_array_length(env, args[1], &mut len));