summaryrefslogtreecommitdiff
path: root/test/addons-napi/test_buffer/test_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/addons-napi/test_buffer/test_buffer.c')
-rw-r--r--test/addons-napi/test_buffer/test_buffer.c114
1 files changed, 49 insertions, 65 deletions
diff --git a/test/addons-napi/test_buffer/test_buffer.c b/test/addons-napi/test_buffer/test_buffer.c
index cfb8f44cc7..880149e1ff 100644
--- a/test/addons-napi/test_buffer/test_buffer.c
+++ b/test/addons-napi/test_buffer/test_buffer.c
@@ -1,43 +1,26 @@
#include <stdlib.h>
#include <string.h>
#include <node_api.h>
-
-#define JS_ASSERT(env, assertion, message) \
- if (!(assertion)) { \
- napi_throw_error( \
- (env), \
- "assertion (" #assertion ") failed: " message); \
- return; \
- }
-
-#define NAPI_CALL(env, theCall) \
- if ((theCall) != napi_ok) { \
- const napi_extended_error_info* error; \
- napi_get_last_error_info((env), &error); \
- const char* errorMessage = error->error_message; \
- errorMessage = errorMessage ? errorMessage : "empty error message"; \
- napi_throw_error((env), errorMessage); \
- return; \
- }
+#include "../common.h"
static const char theText[] =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
static int deleterCallCount = 0;
static void deleteTheText(napi_env env, void* data, void* finalize_hint) {
- JS_ASSERT(env, data != NULL && strcmp(data, theText) == 0, "invalid data");
+ NAPI_ASSERT_RETURN_VOID(env, data != NULL && strcmp(data, theText) == 0, "invalid data");
(void)finalize_hint;
free(data);
deleterCallCount++;
}
static void noopDeleter(napi_env env, void* data, void* finalize_hint) {
- JS_ASSERT(env, data != NULL && strcmp(data, theText) == 0, "invalid data");
+ NAPI_ASSERT_RETURN_VOID(env, data != NULL && strcmp(data, theText) == 0, "invalid data");
(void)finalize_hint;
deleterCallCount++;
}
-void newBuffer(napi_env env, napi_callback_info info) {
+napi_value newBuffer(napi_env env, napi_callback_info info) {
napi_value theBuffer;
char* theCopy;
const unsigned int kBufferSize = sizeof(theText);
@@ -48,15 +31,16 @@ void newBuffer(napi_env env, napi_callback_info info) {
sizeof(theText),
(void**)(&theCopy),
&theBuffer));
- JS_ASSERT(env, theCopy, "Failed to copy static text for newBuffer");
+ NAPI_ASSERT(env, theCopy, "Failed to copy static text for newBuffer");
memcpy(theCopy, theText, kBufferSize);
- NAPI_CALL(env, napi_set_return_value(env, info, theBuffer));
+
+ return theBuffer;
}
-void newExternalBuffer(napi_env env, napi_callback_info info) {
+napi_value newExternalBuffer(napi_env env, napi_callback_info info) {
napi_value theBuffer;
char* theCopy = strdup(theText);
- JS_ASSERT(env, theCopy, "Failed to copy static text for newExternalBuffer");
+ NAPI_ASSERT(env, theCopy, "Failed to copy static text for newExternalBuffer");
NAPI_CALL(env,
napi_create_external_buffer(
env,
@@ -65,48 +49,50 @@ void newExternalBuffer(napi_env env, napi_callback_info info) {
deleteTheText,
NULL, // finalize_hint
&theBuffer));
- NAPI_CALL(env, napi_set_return_value(env, info, theBuffer));
+
+ return theBuffer;
}
-void getDeleterCallCount(napi_env env, napi_callback_info info) {
+napi_value getDeleterCallCount(napi_env env, napi_callback_info info) {
napi_value callCount;
NAPI_CALL(env, napi_create_number(env, deleterCallCount, &callCount));
- NAPI_CALL(env, napi_set_return_value(env, info, callCount));
+ return callCount;
}
-void copyBuffer(napi_env env, napi_callback_info info) {
+napi_value copyBuffer(napi_env env, napi_callback_info info) {
napi_value theBuffer;
NAPI_CALL(env, napi_create_buffer_copy(
env, sizeof(theText), theText, NULL, &theBuffer));
- NAPI_CALL(env, napi_set_return_value(env, info, theBuffer));
+ return theBuffer;
}
-void bufferHasInstance(napi_env env, napi_callback_info info) {
- size_t argc;
- NAPI_CALL(env, napi_get_cb_args_length(env, info, &argc));
- JS_ASSERT(env, argc == 1, "Wrong number of arguments");
- napi_value theBuffer;
- NAPI_CALL(env, napi_get_cb_args(env, info, &theBuffer, 1));
+napi_value bufferHasInstance(napi_env env, napi_callback_info info) {
+ size_t argc = 1;
+ napi_value args[1];
+ NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL));
+ NAPI_ASSERT(env, argc == 1, "Wrong number of arguments");
+ napi_value theBuffer = args[0];
bool hasInstance;
napi_valuetype theType;
NAPI_CALL(env, napi_typeof(env, theBuffer, &theType));
- JS_ASSERT(env,
+ NAPI_ASSERT(env,
theType == napi_object,
"bufferHasInstance: instance is not an object");
NAPI_CALL(env, napi_is_buffer(env, theBuffer, &hasInstance));
- JS_ASSERT(env, hasInstance, "bufferHasInstance: instance is not a buffer");
+ NAPI_ASSERT(env, hasInstance, "bufferHasInstance: instance is not a buffer");
napi_value returnValue;
NAPI_CALL(env, napi_get_boolean(env, hasInstance, &returnValue));
- NAPI_CALL(env, napi_set_return_value(env, info, returnValue));
+ return returnValue;
}
-void bufferInfo(napi_env env, napi_callback_info info) {
- size_t argc;
- NAPI_CALL(env, napi_get_cb_args_length(env, info, &argc));
- JS_ASSERT(env, argc == 1, "Wrong number of arguments");
- napi_value theBuffer, returnValue;
- NAPI_CALL(env, napi_get_cb_args(env, info, &theBuffer, 1));
- char* bufferData;
+napi_value bufferInfo(napi_env env, napi_callback_info info) {
+ size_t argc = 1;
+ napi_value args[1];
+ NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL));
+ NAPI_ASSERT(env, argc == 1, "Wrong number of arguments");
+ napi_value theBuffer = args[0];
+ char *bufferData;
+ napi_value returnValue;
size_t bufferLength;
NAPI_CALL(env,
napi_get_buffer_info(
@@ -117,10 +103,10 @@ void bufferInfo(napi_env env, napi_callback_info info) {
NAPI_CALL(env, napi_get_boolean(env,
!strcmp(bufferData, theText) && bufferLength == sizeof(theText),
&returnValue));
- NAPI_CALL(env, napi_set_return_value(env, info, returnValue));
+ return returnValue;
}
-void staticBuffer(napi_env env, napi_callback_info info) {
+napi_value staticBuffer(napi_env env, napi_callback_info info) {
napi_value theBuffer;
NAPI_CALL(
env,
@@ -130,31 +116,29 @@ void staticBuffer(napi_env env, napi_callback_info info) {
noopDeleter,
NULL, // finalize_hint
&theBuffer));
- NAPI_CALL(env, napi_set_return_value(env, info, theBuffer));
+ return theBuffer;
}
-#define DECLARE_NAPI_METHOD(name, func) \
- { name, func, 0, 0, 0, napi_default, 0 }
-
void Init(napi_env env, napi_value exports, napi_value module, void* priv) {
napi_value theValue;
- NAPI_CALL(env, napi_create_string_utf8(env,
- theText, sizeof(theText), &theValue));
- NAPI_CALL(env, napi_set_named_property(env, exports, "theText", theValue));
+ NAPI_CALL_RETURN_VOID(env,
+ napi_create_string_utf8(env, theText, sizeof(theText), &theValue));
+ NAPI_CALL_RETURN_VOID(env,
+ napi_set_named_property(env, exports, "theText", theValue));
napi_property_descriptor methods[] = {
- DECLARE_NAPI_METHOD("newBuffer", newBuffer),
- DECLARE_NAPI_METHOD("newExternalBuffer", newExternalBuffer),
- DECLARE_NAPI_METHOD("getDeleterCallCount", getDeleterCallCount),
- DECLARE_NAPI_METHOD("copyBuffer", copyBuffer),
- DECLARE_NAPI_METHOD("bufferHasInstance", bufferHasInstance),
- DECLARE_NAPI_METHOD("bufferInfo", bufferInfo),
- DECLARE_NAPI_METHOD("staticBuffer", staticBuffer),
+ DECLARE_NAPI_PROPERTY("newBuffer", newBuffer),
+ DECLARE_NAPI_PROPERTY("newExternalBuffer", newExternalBuffer),
+ DECLARE_NAPI_PROPERTY("getDeleterCallCount", getDeleterCallCount),
+ DECLARE_NAPI_PROPERTY("copyBuffer", copyBuffer),
+ DECLARE_NAPI_PROPERTY("bufferHasInstance", bufferHasInstance),
+ DECLARE_NAPI_PROPERTY("bufferInfo", bufferInfo),
+ DECLARE_NAPI_PROPERTY("staticBuffer", staticBuffer),
};
- NAPI_CALL(env,
- napi_define_properties(
- env, exports, sizeof(methods) / sizeof(methods[0]), methods));
+
+ NAPI_CALL_RETURN_VOID(env, napi_define_properties(
+ env, exports, sizeof(methods) / sizeof(methods[0]), methods));
}
NAPI_MODULE(addon, Init)