From c93df0cfc397c9430e22d21059f16424880bb140 Mon Sep 17 00:00:00 2001 From: Octavian Soldea Date: Sat, 27 Jul 2019 17:42:19 -0700 Subject: [PATCH] n-api: refactoring napi_create_function testing This is a refactoring of https://github.com/nodejs/node/pull/26998 following https://github.com/nodejs/node/pull/28505. The functions `add_last_status()` and `add_returned_status()` are now reused, see also https://github.com/nodejs/node/pull/28848. PR-URL: https://github.com/nodejs/node/pull/28894 Reviewed-By: Gabriel Schulhof Reviewed-By: Michael Dawson Reviewed-By: Rich Trott --- test/js-native-api/test_function/binding.gyp | 1 + test/js-native-api/test_function/test.js | 8 +- .../test_function/test_function.c | 102 +++++++----------- 3 files changed, 42 insertions(+), 69 deletions(-) diff --git a/test/js-native-api/test_function/binding.gyp b/test/js-native-api/test_function/binding.gyp index c34c18d9811e8a..df70facefc00cb 100644 --- a/test/js-native-api/test_function/binding.gyp +++ b/test/js-native-api/test_function/binding.gyp @@ -3,6 +3,7 @@ { "target_name": "test_function", "sources": [ + "../common.c", "../entry_point.c", "test_function.c" ] diff --git a/test/js-native-api/test_function/test.js b/test/js-native-api/test_function/test.js index 21b2ac7ff45de2..988f128404e429 100644 --- a/test/js-native-api/test_function/test.js +++ b/test/js-native-api/test_function/test.js @@ -37,8 +37,8 @@ tracked_function = null; global.gc(); assert.deepStrictEqual(test_function.TestCreateFunctionParameters(), { - envIsNull: 'pass', - nameIsNull: 'pass', - cbIsNull: 'pass', - resultIsNull: 'pass' + envIsNull: 'Invalid argument', + nameIsNull: 'napi_ok', + cbIsNull: 'Invalid argument', + resultIsNull: 'Invalid argument' }); diff --git a/test/js-native-api/test_function/test_function.c b/test/js-native-api/test_function/test_function.c index 4d2b3fbe85abf8..713e935e08c972 100644 --- a/test/js-native-api/test_function/test_function.c +++ b/test/js-native-api/test_function/test_function.c @@ -3,79 +3,51 @@ static napi_value TestCreateFunctionParameters(napi_env env, napi_callback_info info) { - napi_status ret[4]; - napi_value result, return_value, prop_value; + napi_status status; + napi_value result, return_value; + NAPI_CALL(env, napi_create_object(env, &return_value)); - ret[0] = napi_create_function(NULL, + status = napi_create_function(NULL, "TrackedFunction", NAPI_AUTO_LENGTH, TestCreateFunctionParameters, NULL, &result); - ret[1] = napi_create_function(env, - NULL, - NAPI_AUTO_LENGTH, - TestCreateFunctionParameters, - NULL, - &result); - - ret[2] = napi_create_function(env, - "TrackedFunction", - NAPI_AUTO_LENGTH, - NULL, - NULL, - &result); - - ret[3] = napi_create_function(env, - "TrackedFunction", - NAPI_AUTO_LENGTH, - TestCreateFunctionParameters, - NULL, - NULL); - - NAPI_CALL(env, napi_create_object(env, &return_value)); - - NAPI_CALL(env, napi_create_string_utf8(env, - (ret[0] == napi_invalid_arg ? - "pass" : "fail"), - NAPI_AUTO_LENGTH, - &prop_value)); - NAPI_CALL(env, napi_set_named_property(env, - return_value, - "envIsNull", - prop_value)); - - NAPI_CALL(env, napi_create_string_utf8(env, - (ret[1] == napi_ok ? - "pass" : "fail"), - NAPI_AUTO_LENGTH, - &prop_value)); - NAPI_CALL(env, napi_set_named_property(env, - return_value, - "nameIsNull", - prop_value)); - - NAPI_CALL(env, napi_create_string_utf8(env, - (ret[2] == napi_invalid_arg ? - "pass" : "fail"), - NAPI_AUTO_LENGTH, - &prop_value)); - NAPI_CALL(env, napi_set_named_property(env, - return_value, - "cbIsNull", - prop_value)); - - NAPI_CALL(env, napi_create_string_utf8(env, - (ret[3] == napi_invalid_arg ? - "pass" : "fail"), - NAPI_AUTO_LENGTH, - &prop_value)); - NAPI_CALL(env, napi_set_named_property(env, - return_value, - "resultIsNull", - prop_value)); + add_returned_status(env, + "envIsNull", + return_value, + "Invalid argument", + napi_invalid_arg, + status); + + napi_create_function(env, + NULL, + NAPI_AUTO_LENGTH, + TestCreateFunctionParameters, + NULL, + &result); + + add_last_status(env, "nameIsNull", return_value); + + napi_create_function(env, + "TrackedFunction", + NAPI_AUTO_LENGTH, + NULL, + NULL, + &result); + + add_last_status(env, "cbIsNull", return_value); + + napi_create_function(env, + "TrackedFunction", + NAPI_AUTO_LENGTH, + TestCreateFunctionParameters, + NULL, + NULL); + + add_last_status(env, "resultIsNull", return_value); return return_value; }