mirror of https://github.com/lukechilds/node.git
Browse Source
- add coverage for napi_get_prototype - add coverage for napi_strict_equals PR-URL: https://github.com/nodejs/node/pull/13044 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Jason Ginchereau <jasongin@microsoft.com>v6
3 changed files with 78 additions and 0 deletions
@ -0,0 +1,8 @@ |
|||
{ |
|||
"targets": [ |
|||
{ |
|||
"target_name": "test_general", |
|||
"sources": [ "test_general.c" ] |
|||
} |
|||
] |
|||
} |
@ -0,0 +1,32 @@ |
|||
'use strict'; |
|||
|
|||
const common = require('../../common'); |
|||
const test_general = require(`./build/${common.buildType}/test_general`); |
|||
const assert = require('assert'); |
|||
|
|||
const val1 = '1'; |
|||
const val2 = 1; |
|||
const val3 = 1; |
|||
|
|||
class BaseClass { |
|||
} |
|||
|
|||
class ExtendedClass extends BaseClass { |
|||
} |
|||
|
|||
const baseObject = new BaseClass(); |
|||
const extendedObject = new ExtendedClass(); |
|||
|
|||
// test napi_strict_equals
|
|||
assert.ok(test_general.testStrictEquals(val1, val1)); |
|||
assert.strictEqual(test_general.testStrictEquals(val1, val2), false); |
|||
assert.ok(test_general.testStrictEquals(val2, val3)); |
|||
|
|||
// test napi_get_prototype
|
|||
assert.strictEqual(test_general.testGetPrototype(baseObject), |
|||
Object.getPrototypeOf(baseObject)); |
|||
assert.strictEqual(test_general.testGetPrototype(extendedObject), |
|||
Object.getPrototypeOf(extendedObject)); |
|||
assert.ok(test_general.testGetPrototype(baseObject) !== |
|||
test_general.testGetPrototype(extendedObject), |
|||
'Prototypes for base and extended should be different'); |
@ -0,0 +1,38 @@ |
|||
#include <node_api.h> |
|||
#include "../common.h" |
|||
|
|||
napi_value testStrictEquals(napi_env env, napi_callback_info info) { |
|||
size_t argc = 2; |
|||
napi_value args[2]; |
|||
NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); |
|||
|
|||
bool bool_result; |
|||
napi_value result; |
|||
NAPI_CALL(env, napi_strict_equals(env, args[0], args[1], &bool_result)); |
|||
NAPI_CALL(env, napi_get_boolean(env, bool_result, &result)); |
|||
|
|||
return result; |
|||
} |
|||
|
|||
napi_value testGetPrototype(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_value result; |
|||
NAPI_CALL(env, napi_get_prototype(env, args[0], &result)); |
|||
|
|||
return result; |
|||
} |
|||
|
|||
void Init(napi_env env, napi_value exports, napi_value module, void* priv) { |
|||
napi_property_descriptor descriptors[] = { |
|||
DECLARE_NAPI_PROPERTY("testStrictEquals", testStrictEquals), |
|||
DECLARE_NAPI_PROPERTY("testGetPrototype", testGetPrototype), |
|||
}; |
|||
|
|||
NAPI_CALL_RETURN_VOID(env, napi_define_properties( |
|||
env, exports, sizeof(descriptors) / sizeof(*descriptors), descriptors)); |
|||
} |
|||
|
|||
NAPI_MODULE(addon, Init) |
Loading…
Reference in new issue