1/* 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include <cstddef> 17#define private public 18#define protected public 19 20#include <chrono> 21#include <thread> 22 23#include "test.h" 24#include "test_common.h" 25#include "gtest/gtest.h" 26#include "napi/native_api.h" 27#include "napi/native_node_api.h" 28#include "napi/native_common.h" 29#include "securec.h" 30#include "utils/log.h" 31#include "native_engine/impl/ark/ark_native_engine.h" 32#include "napi/native_engine/native_create_env.h" 33 34using panda::RuntimeOption; 35 36static constexpr int MAX_BUFFER_SIZE = 2; 37static constexpr int BUFFER_SIZE_FIVE = 5; 38static constexpr size_t TEST_STR_LENGTH = 30; 39static int g_hookTagcp = 0; 40static int g_hookTag = 0; 41static int g_hookArgOne = 1; 42static int g_hookArgTwo = 2; 43static int g_hookArgThree = 3; 44static constexpr int INT_ZERO = 0; 45static constexpr int INT_ONE = 1; 46static constexpr int INT_TWO = 2; 47static constexpr int INT_THREE = 3; 48static constexpr int THREAD_SIZE = 5; 49 50static constexpr double TEST_DOUBLE = 1.1; 51static constexpr char TEST_STRING[5] = "test"; 52static constexpr size_t MAX_BYTE_LENGTH = 2097152; 53static constexpr int32_t TEST_INT32_MINUS_1 = -1; 54static constexpr int32_t TEST_INT32_500 = 500; 55static constexpr uint32_t TEST_UINT32_1000 = 1000; 56static constexpr int64_t TEST_INT64 = 9007199254740991; 57static constexpr const char TEST_CHAR_STRING[] = "TestString"; 58static constexpr const char16_t TEST_CHAR16_STRING[] = u"TestString"; 59 60class NapiBasicTest : public NativeEngineTest { 61public: 62 static void SetUpTestCase() 63 { 64 GTEST_LOG_(INFO) << "NapiBasicTest SetUpTestCase"; 65 } 66 67 static void TearDownTestCase() 68 { 69 GTEST_LOG_(INFO) << "NapiBasicTest TearDownTestCase"; 70 } 71 72 void SetUp() override 73 { 74 napi_env env = reinterpret_cast<napi_env>(engine_); 75 napi_open_handle_scope(env, &scope_); 76 } 77 78 void TearDown() override 79 { 80 napi_env env = reinterpret_cast<napi_env>(engine_); 81 napi_value exception = nullptr; 82 napi_get_and_clear_last_exception(env, &exception); 83 napi_close_handle_scope(env, scope_); 84 } 85private: 86 napi_handle_scope scope_ = nullptr; 87}; 88 89class NativeEngineProxy { 90public: 91 NativeEngineProxy() 92 { 93 // Setup 94 RuntimeOption option; 95 option.SetGcType(RuntimeOption::GC_TYPE::GEN_GC); 96 const int64_t poolSize = 0x1000000; // 16M 97 option.SetGcPoolSize(poolSize); 98 option.SetLogLevel(RuntimeOption::LOG_LEVEL::ERROR); 99 option.SetDebuggerLibraryPath(""); 100 vm_ = panda::JSNApi::CreateJSVM(option); 101 if (vm_ == nullptr) { 102 return; 103 } 104 105 engine_ = new ArkNativeEngine(vm_, nullptr); 106 } 107 108 ~NativeEngineProxy() 109 { 110 delete engine_; 111 panda::JSNApi::DestroyJSVM(vm_); 112 } 113 114 inline ArkNativeEngine* operator->() const 115 { 116 return engine_; 117 } 118 119 inline operator napi_env() const 120 { 121 return reinterpret_cast<napi_env>(engine_); 122 } 123 124private: 125 EcmaVM* vm_ {nullptr}; 126 ArkNativeEngine* engine_ {nullptr}; 127}; 128 129static const napi_type_tag typeTags[5] = { // 5:array element size is 5. 130 {0xdaf987b3cc62481a, 0xb745b0497f299531}, 131 {0xbb7936c374084d9b, 0xa9548d0762eeedb9}, 132 {0xa5ed9ce2e4c00c38, 0}, 133 {0, 0}, 134 {0xa5ed9ce2e4c00c34, 0xdaf987b3cc62481a}, 135}; 136 137static void* TestDetachCallback(napi_env env, void* nativeObject, void* hint) 138{ 139 HILOG_INFO("this is detach callback"); 140 return nativeObject; 141} 142 143static napi_value TestAttachCallback(napi_env env, void* nativeObject, void* hint) 144{ 145 HILOG_INFO("this is attach callback"); 146 napi_value object = nullptr; 147 napi_value number = nullptr; 148 uint32_t data = 0; 149 if (hint != nullptr) { 150 object = reinterpret_cast<napi_value>(nativeObject); 151 data = 2000; // 2000 : test number 152 napi_create_uint32(env, data, &number); 153 } else { 154 napi_create_object(env, &object); 155 data = 1000; // 1000 : test number 156 napi_create_uint32(env, data, &number); 157 } 158 napi_set_named_property(env, object, "number", number); 159 return object; 160} 161 162/** 163 * @tc.name: ToNativeBindingObjectTest001 164 * @tc.desc: Test nativeBinding object type. 165 * @tc.type: FUNC 166 */ 167HWTEST_F(NapiBasicTest, ToNativeBindingObjectTest001, testing::ext::TestSize.Level1) 168{ 169 napi_env env = (napi_env)engine_; 170 napi_value object = nullptr; 171 napi_create_object(env, &object); 172 napi_value object1 = nullptr; 173 napi_create_object(env, &object1); 174 napi_status status = napi_coerce_to_native_binding_object( 175 env, object, TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), nullptr); 176 ASSERT_EQ(status, napi_status::napi_ok); 177} 178 179/** 180 * @tc.name: ToNativeBindingObjectTest002 181 * @tc.desc: Test nativeBinding object type. 182 * @tc.type: FUNC 183 */ 184HWTEST_F(NapiBasicTest, ToNativeBindingObjectTest002, testing::ext::TestSize.Level1) 185{ 186 napi_env env = (napi_env)engine_; 187 napi_value object = nullptr; 188 napi_create_object(env, &object); 189 napi_value object1 = nullptr; 190 napi_create_object(env, &object1); 191 napi_coerce_to_native_binding_object( 192 env, object, TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), nullptr); 193 napi_value undefined = nullptr; 194 napi_get_undefined(env, &undefined); 195 void* data = nullptr; 196 napi_serialize_inner(env, object, undefined, undefined, false, true, &data); 197 ASSERT_NE(data, nullptr); 198 napi_value result = nullptr; 199 napi_deserialize(env, data, &result); 200 ASSERT_CHECK_VALUE_TYPE(env, result, napi_object); 201 napi_delete_serialization_data(env, data); 202 napi_value number = nullptr; 203 napi_get_named_property(env, result, "number", &number); 204 ASSERT_CHECK_VALUE_TYPE(env, number, napi_number); 205 uint32_t numData = 0; 206 napi_get_value_uint32(env, number, &numData); 207 ASSERT_EQ(numData, 1000); 208} 209 210/** 211 * @tc.name: ToNativeBindingObjectTest003 212 * @tc.desc: Test nativeBinding object type. 213 * @tc.type: FUNC 214 */ 215HWTEST_F(NapiBasicTest, ToNativeBindingObjectTest003, testing::ext::TestSize.Level1) 216{ 217 napi_env env = (napi_env)engine_; 218 napi_value object = nullptr; 219 napi_create_object(env, &object); 220 napi_status status = napi_coerce_to_native_binding_object( 221 env, object, TestDetachCallback, TestAttachCallback, nullptr, nullptr); 222 ASSERT_EQ(status, napi_status::napi_invalid_arg); 223 napi_value object1 = nullptr; 224 napi_create_object(env, &object1); 225 status = napi_coerce_to_native_binding_object( 226 env, object, nullptr, nullptr, reinterpret_cast<void*>(object1), nullptr); 227 ASSERT_EQ(status, napi_status::napi_invalid_arg); 228} 229 230/** 231 * @tc.name: ToNativeBindingObjectTest004 232 * @tc.desc: Test nativeBinding object type. 233 * @tc.type: FUNC 234 */ 235HWTEST_F(NapiBasicTest, ToNativeBindingObjectTest004, testing::ext::TestSize.Level1) 236{ 237 napi_env env = (napi_env)engine_; 238 napi_value object = nullptr; 239 napi_create_object(env, &object); 240 napi_value hint = nullptr; 241 napi_create_object(env, &hint); 242 napi_value object1 = nullptr; 243 napi_create_object(env, &object1); 244 napi_status status = napi_coerce_to_native_binding_object(env, object, 245 TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), reinterpret_cast<void*>(hint)); 246 ASSERT_EQ(status, napi_status::napi_ok); 247 napi_value undefined = nullptr; 248 napi_get_undefined(env, &undefined); 249 void* data = nullptr; 250 napi_serialize_inner(env, object, undefined, undefined, false, true, &data); 251 ASSERT_NE(data, nullptr); 252 napi_value result = nullptr; 253 napi_deserialize(env, data, &result); 254 ASSERT_CHECK_VALUE_TYPE(env, result, napi_object); 255 napi_delete_serialization_data(env, data); 256 napi_value number = nullptr; 257 napi_get_named_property(env, result, "number", &number); 258 ASSERT_CHECK_VALUE_TYPE(env, number, napi_number); 259 uint32_t numData = 0; 260 napi_get_value_uint32(env, number, &numData); 261 ASSERT_EQ(numData, 2000); 262} 263 264/** 265 * @tc.name: UndefinedTest001 266 * @tc.desc: Test undefined type. 267 * @tc.type: FUNC 268 */ 269HWTEST_F(NapiBasicTest, UndefinedTest001, testing::ext::TestSize.Level1) 270{ 271 napi_env env = (napi_env)engine_; 272 napi_value result = nullptr; 273 ASSERT_CHECK_CALL(napi_get_undefined(env, &result)); 274 ASSERT_CHECK_VALUE_TYPE(env, result, napi_undefined); 275} 276 277/** 278 * @tc.name: NullTest001 279 * @tc.desc: Test null type. 280 * @tc.type: FUNC 281 */ 282HWTEST_F(NapiBasicTest, NullTest001, testing::ext::TestSize.Level1) 283{ 284 napi_env env = (napi_env)engine_; 285 napi_value result = nullptr; 286 ASSERT_CHECK_CALL(napi_get_null(env, &result)); 287 ASSERT_CHECK_VALUE_TYPE(env, result, napi_null); 288} 289 290/** 291 * @tc.name: BooleanTest001 292 * @tc.desc: Test boolean type. 293 * @tc.type: FUNC 294 */ 295HWTEST_F(NapiBasicTest, BooleanTest001, testing::ext::TestSize.Level1) 296{ 297 napi_env env = (napi_env)engine_; 298 napi_value result = nullptr; 299 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &result)); 300 ASSERT_CHECK_VALUE_TYPE(env, result, napi_boolean); 301 302 bool resultValue = false; 303 ASSERT_CHECK_CALL(napi_get_value_bool(env, result, &resultValue)); 304 ASSERT_TRUE(resultValue); 305} 306 307/** 308 * @tc.name: NumberTest001 309 * @tc.desc: Test number type. 310 * @tc.type: FUNC 311 */ 312HWTEST_F(NapiBasicTest, NumberTest001, testing::ext::TestSize.Level1) 313{ 314 napi_env env = (napi_env)engine_; 315 { 316 int32_t testValue = INT32_MAX; 317 napi_value result = nullptr; 318 ASSERT_CHECK_CALL(napi_create_int32(env, testValue, &result)); 319 ASSERT_CHECK_VALUE_TYPE(env, result, napi_number); 320 321 int32_t resultValue = 0; 322 ASSERT_CHECK_CALL(napi_get_value_int32(env, result, &resultValue)); 323 ASSERT_EQ(resultValue, INT32_MAX); 324 } 325 { 326 uint32_t testValue = UINT32_MAX; 327 napi_value result = nullptr; 328 ASSERT_CHECK_CALL(napi_create_uint32(env, testValue, &result)); 329 ASSERT_CHECK_VALUE_TYPE(env, result, napi_number); 330 331 uint32_t resultValue = 0; 332 ASSERT_CHECK_CALL(napi_get_value_uint32(env, result, &resultValue)); 333 ASSERT_EQ(resultValue, UINT32_MAX); 334 } 335 { 336 int64_t testValue = 9007199254740991; 337 napi_value result = nullptr; 338 ASSERT_CHECK_CALL(napi_create_int64(env, testValue, &result)); 339 ASSERT_CHECK_VALUE_TYPE(env, result, napi_number); 340 341 int64_t resultValue = 0; 342 ASSERT_CHECK_CALL(napi_get_value_int64(env, result, &resultValue)); 343 ASSERT_EQ(resultValue, testValue); 344 } 345 { 346 double testValue = DBL_MAX; 347 napi_value result = nullptr; 348 ASSERT_CHECK_CALL(napi_create_double(env, testValue, &result)); 349 ASSERT_CHECK_VALUE_TYPE(env, result, napi_number); 350 351 double resultValue = 0; 352 ASSERT_CHECK_CALL(napi_get_value_double(env, result, &resultValue)); 353 ASSERT_EQ(resultValue, DBL_MAX); 354 } 355} 356 357/** 358 * @tc.name: StringTest001 359 * @tc.desc: Test string type. 360 * @tc.type: FUNC 361 */ 362HWTEST_F(NapiBasicTest, StringTest001, testing::ext::TestSize.Level1) 363{ 364 napi_env env = (napi_env)engine_; 365 const char testStr[] = "中文,English,123456,!@#$%$#^%&"; 366 size_t testStrLength = strlen(testStr); 367 napi_value result = nullptr; 368 ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &result)); 369 ASSERT_CHECK_VALUE_TYPE(env, result, napi_string); 370 371 char* buffer = nullptr; 372 size_t bufferSize = 0; 373 size_t strLength = 0; 374 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize)); 375 ASSERT_GT(bufferSize, static_cast<size_t>(0)); 376 buffer = new char[bufferSize + 1]{ 0 }; 377 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength)); 378 ASSERT_STREQ(testStr, buffer); 379 ASSERT_EQ(testStrLength, strLength); 380 delete []buffer; 381 buffer = nullptr; 382} 383 384/** 385 * @tc.name: StringTest002 386 * @tc.desc: Test string type. 387 * @tc.type: FUNC 388 */ 389HWTEST_F(NapiBasicTest, StringTest002, testing::ext::TestSize.Level1) 390{ 391 napi_env env = (napi_env)engine_; 392 const char testStr[] = "中测"; 393 size_t testStrLength = strlen(testStr); 394 napi_value result = nullptr; 395 ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &result)); 396 ASSERT_CHECK_VALUE_TYPE(env, result, napi_string); 397 398 std::string str = ""; 399 size_t strSize = 0; 400 napi_get_value_string_latin1(env, result, nullptr, 0, &strSize); 401 str.reserve(strSize + 1); 402 str.resize(strSize); 403 napi_get_value_string_latin1(env, result, str.data(), strSize + 1, &strSize); 404 405 ASSERT_EQ(str, "-K"); 406} 407 408/** 409 * @tc.name: StringTest003 410 * @tc.desc: Test string type. 411 * @tc.type: FUNC 412 */ 413HWTEST_F(NapiBasicTest, StringTest003, testing::ext::TestSize.Level1) 414{ 415 napi_env env = (napi_env)engine_; 416 const char16_t testStr[] = u"abc56"; 417 size_t testStrLength = std::char_traits<char16_t>::length(testStr); 418 napi_value res = nullptr; 419 ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &res)); 420 ASSERT_CHECK_VALUE_TYPE(env, res, napi_string); 421 422 char16_t* buffer = nullptr; 423 size_t bufSize = 0; 424 size_t copied = 0; 425 ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, res, nullptr, 0, &bufSize)); 426 ASSERT_EQ(bufSize, testStrLength); 427 buffer = new char16_t[bufSize + 1]{ 0 }; 428 ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, res, buffer, bufSize + 1, &copied)); 429 for (size_t i = 0; i < copied; i++) { 430 ASSERT_TRUE(testStr[i] == buffer[i]); 431 } 432 ASSERT_EQ(testStrLength, copied); 433 delete []buffer; 434 buffer = nullptr; 435} 436 437/** 438 * @tc.name: StringTest004 439 * @tc.desc: Test string type. 440 * @tc.type: FUNC 441 */ 442HWTEST_F(NapiBasicTest, StringTest004, testing::ext::TestSize.Level1) 443{ 444 napi_env env = (napi_env)engine_; 445 const char16_t testStr[] = u"abc56"; 446 size_t testStrLength = std::char_traits<char16_t>::length(testStr); 447 napi_value result = nullptr; 448 ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &result)); 449 ASSERT_CHECK_VALUE_TYPE(env, result, napi_string); 450 451 char16_t buffer[4]; // 4: char16_t type of array size 452 size_t bufferSize = 4; // 4: char16_t type of array size 453 size_t copied; 454 455 ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, buffer, bufferSize, &copied)); 456 for (size_t i = 0; i < copied; i++) { 457 ASSERT_TRUE(testStr[i] == buffer[i]); 458 } 459 ASSERT_EQ(copied, 3); 460} 461 462/** 463 * @tc.name: TypetagTest001 464 * @tc.desc: Test typetag type. 465 * @tc.type: FUNC 466 */ 467HWTEST_F(NapiBasicTest, TypetagTest001, testing::ext::TestSize.Level1) 468{ 469 napi_env env = (napi_env)engine_; 470 napi_value instance = nullptr; 471 bool result; 472 for (size_t i = 0; i < 5; i++) { 473 napi_create_object(env, &instance); 474 napi_type_tag_object(env, instance, &typeTags[i]); 475 napi_check_object_type_tag(env, instance, &typeTags[i], &result); 476 ASSERT_TRUE(result); 477 } 478} 479 480/** 481 * @tc.name: TypetagTest002 482 * @tc.desc: Test typetag type. 483 * @tc.type: FUNC 484 */ 485HWTEST_F(NapiBasicTest, TypetagTest002, testing::ext::TestSize.Level1) 486{ 487 napi_env env = (napi_env)engine_; 488 uint32_t typeIndex = 0; 489 napi_value instance = nullptr; 490 bool result; 491 napi_create_object(env, &instance); 492 493 napi_type_tag_object(env, instance, &typeTags[typeIndex]); 494 napi_check_object_type_tag(env, instance, &typeTags[typeIndex + 1], &result); 495 496 ASSERT_FALSE(result); 497} 498 499/** 500 * @tc.name: SymbolTest001 501 * @tc.desc: Test symbol type. 502 * @tc.type: FUNC 503 */ 504HWTEST_F(NapiBasicTest, SymbolTest001, testing::ext::TestSize.Level1) 505{ 506 napi_env env = (napi_env)engine_; 507 508 const char testStr[] = "testSymbol"; 509 napi_value result = nullptr; 510 511 napi_create_string_latin1(env, testStr, strlen(testStr), &result); 512 513 napi_value symbolVal = nullptr; 514 napi_create_symbol(env, result, &symbolVal); 515 516 ASSERT_CHECK_VALUE_TYPE(env, symbolVal, napi_symbol); 517} 518 519/** 520 * @tc.name: ExternalTest001 521 * @tc.desc: Test external type. 522 * @tc.type: FUNC 523 */ 524HWTEST_F(NapiBasicTest, ExternalTest001, testing::ext::TestSize.Level1) 525{ 526 napi_env env = (napi_env)engine_; 527 const char testStr[] = "test"; 528 napi_value external = nullptr; 529 napi_create_external( 530 env, (void*)testStr, 531 [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); }, 532 (void*)testStr, &external); 533 534 ASSERT_CHECK_VALUE_TYPE(env, external, napi_external); 535 void* tmpExternal = nullptr; 536 napi_get_value_external(env, external, &tmpExternal); 537 ASSERT_TRUE(tmpExternal); 538 ASSERT_EQ(tmpExternal, testStr); 539} 540 541/** 542 * @tc.name: ObjectTest001 543 * @tc.desc: Test object type. 544 * @tc.type: FUNC 545 */ 546HWTEST_F(NapiBasicTest, ObjectTest001, testing::ext::TestSize.Level1) 547{ 548 napi_env env = (napi_env)engine_; 549 550 napi_value result = nullptr; 551 ASSERT_CHECK_CALL(napi_create_object(env, &result)); 552 ASSERT_CHECK_VALUE_TYPE(env, result, napi_object); 553 554 const char testStr[] = "1234567"; 555 napi_value strAttribute = nullptr; 556 ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute)); 557 ASSERT_CHECK_VALUE_TYPE(env, strAttribute, napi_string); 558 ASSERT_CHECK_CALL(napi_set_named_property(env, result, "strAttribute", strAttribute)); 559 560 napi_value retStrAttribute = nullptr; 561 ASSERT_CHECK_CALL(napi_get_named_property(env, result, "strAttribute", &retStrAttribute)); 562 ASSERT_CHECK_VALUE_TYPE(env, retStrAttribute, napi_string); 563 564 int32_t testNumber = 12345; 565 napi_value numberAttribute = nullptr; 566 ASSERT_CHECK_CALL(napi_create_int32(env, testNumber, &numberAttribute)); 567 ASSERT_CHECK_VALUE_TYPE(env, numberAttribute, napi_number); 568 ASSERT_CHECK_CALL(napi_set_named_property(env, result, "numberAttribute", numberAttribute)); 569 570 napi_value propNames = nullptr; 571 ASSERT_CHECK_CALL(napi_get_property_names(env, result, &propNames)); 572 ASSERT_CHECK_VALUE_TYPE(env, propNames, napi_object); 573 bool isArray = false; 574 ASSERT_CHECK_CALL(napi_is_array(env, propNames, &isArray)); 575 ASSERT_TRUE(isArray); 576 uint32_t arrayLength = 0; 577 ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength)); 578 ASSERT_EQ(arrayLength, static_cast<uint32_t>(2)); 579 580 for (uint32_t i = 0; i < arrayLength; i++) { 581 bool hasElement = false; 582 ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement)); 583 584 napi_value propName = nullptr; 585 ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName)); 586 ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string); 587 588 bool hasProperty = false; 589 napi_has_property(env, result, propName, &hasProperty); 590 ASSERT_TRUE(hasProperty); 591 592 napi_value propValue = nullptr; 593 napi_get_property(env, result, propName, &propValue); 594 ASSERT_TRUE(propValue != nullptr); 595 } 596} 597 598/** 599 * @tc.name: ObjectTest002 600 * @tc.desc: Test Object Type. 601 * @tc.type: FUNC 602 */ 603HWTEST_F(NapiBasicTest, ObjectTest002, testing::ext::TestSize.Level1) 604{ 605 napi_env env = reinterpret_cast<napi_env>(engine_); 606 607 napi_value result = nullptr; 608 napi_create_object(env, &result); 609 napi_value messageKey = nullptr; 610 const char* messageKeyStr = "message"; 611 napi_create_string_latin1(env, messageKeyStr, strlen(messageKeyStr), &messageKey); 612 napi_value messageValue = nullptr; 613 const char* messageValueStr = "OK"; 614 napi_create_string_latin1(env, messageValueStr, strlen(messageValueStr), &messageValue); 615 napi_set_property(env, result, messageKey, messageValue); 616 617 napi_value propValue = nullptr; 618 napi_get_property(env, result, messageKey, &propValue); 619 ASSERT_TRUE(propValue != nullptr); 620 621 napi_delete_property(env, result, messageKey, nullptr); 622 bool resultVal = true; 623 napi_has_property(env, result, messageKey, &resultVal); 624 ASSERT_FALSE(resultVal); 625 626 napi_value newKey = nullptr; 627 const char* newKeyStr = "new"; 628 napi_create_string_latin1(env, newKeyStr, strlen(newKeyStr), &newKey); 629 int32_t testnumber = 12345; 630 napi_value numberValue = nullptr; 631 napi_create_int32(env, testnumber, &numberValue); 632 napi_set_property(env, result, newKey, numberValue); 633 634 napi_value propNames = nullptr; 635 napi_get_property_names(env, result, &propNames); 636 uint32_t arrayLength = 0; 637 napi_get_array_length(env, propNames, &arrayLength); 638 ASSERT_EQ(arrayLength, static_cast<uint32_t>(1)); 639} 640 641/** 642 * @tc.name: ObjectTest003 643 * @tc.desc: Test Object Type. 644 * @tc.type: FUNC 645 */ 646HWTEST_F(NapiBasicTest, ObjectTest003, testing::ext::TestSize.Level1) 647{ 648 napi_env env = reinterpret_cast<napi_env>(engine_); 649 650 napi_value result = nullptr; 651 napi_create_object(env, &result); 652 653 auto func = [](napi_env env, napi_callback_info info) -> napi_value { 654 return nullptr; 655 }; 656 napi_value funcAttribute = nullptr; 657 napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, func, nullptr, &funcAttribute); 658 659 napi_value funcKey = nullptr; 660 const char* funcKeyStr = "func"; 661 napi_create_string_latin1(env, funcKeyStr, strlen(funcKeyStr), &funcKey); 662 napi_status status = napi_set_property(env, result, funcKey, funcAttribute); 663 ASSERT_EQ(status, napi_status::napi_ok); 664 665 bool isFuncExist = false; 666 ASSERT_CHECK_CALL(napi_has_property(env, result, funcKey, &isFuncExist)); 667 ASSERT_TRUE(isFuncExist); 668 669 napi_value propFuncValue = nullptr; 670 napi_get_property_names(env, result, &propFuncValue); 671 uint32_t arrayLength = 0; 672 napi_get_array_length(env, propFuncValue, &arrayLength); 673 ASSERT_EQ(arrayLength, static_cast<uint32_t>(1)); 674 675 bool isFuncDelete = false; 676 ASSERT_CHECK_CALL(napi_delete_property(env, result, funcKey, &isFuncDelete)); 677 ASSERT_TRUE(isFuncDelete); 678} 679 680/** 681 * @tc.name: FunctionTest001 682 * @tc.desc: Test function type. 683 * @tc.type: FUNC 684 */ 685HWTEST_F(NapiBasicTest, FunctionTest001, testing::ext::TestSize.Level1) 686{ 687 napi_env env = (napi_env)engine_; 688 689 auto func = [](napi_env env, napi_callback_info info) -> napi_value { 690 napi_value thisVar; 691 napi_value* argv = nullptr; 692 size_t argc = 0; 693 void* data = nullptr; 694 695 napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr); 696 if (argc > 0) { 697 argv = new napi_value[argc]; 698 } 699 napi_get_cb_info(env, info, &argc, argv, &thisVar, &data); 700 701 napi_value result = nullptr; 702 napi_create_object(env, &result); 703 704 napi_value messageKey = nullptr; 705 const char* messageKeyStr = "message"; 706 napi_create_string_latin1(env, messageKeyStr, strlen(messageKeyStr), &messageKey); 707 napi_value messageValue = nullptr; 708 const char* messageValueStr = "OK"; 709 napi_create_string_latin1(env, messageValueStr, strlen(messageValueStr), &messageValue); 710 napi_set_property(env, result, messageKey, messageValue); 711 712 if (argv != nullptr) { 713 delete []argv; 714 } 715 716 return result; 717 }; 718 719 napi_value recv = nullptr; 720 napi_value funcValue = nullptr; 721 napi_get_undefined(env, &recv); 722 ASSERT_NE(recv, nullptr); 723 724 napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, func, nullptr, &funcValue); 725 ASSERT_NE(funcValue, nullptr); 726 727 napi_handle_scope parentScope = nullptr; 728 napi_open_handle_scope(env, &parentScope); 729 ASSERT_NE(parentScope, nullptr); 730 731 napi_escapable_handle_scope childScope = nullptr; 732 napi_open_escapable_handle_scope(env, &childScope); 733 ASSERT_NE(childScope, nullptr); 734 735 napi_value funcResultValue = nullptr; 736 napi_value newFuncResultValue = nullptr; 737 napi_call_function(env, recv, funcValue, 0, nullptr, &funcResultValue); 738 ASSERT_NE(funcResultValue, nullptr); 739 740 napi_escape_handle(env, childScope, funcResultValue, &newFuncResultValue); 741 napi_close_escapable_handle_scope(env, childScope); 742 ASSERT_TRUE(newFuncResultValue != nullptr); 743 ASSERT_CHECK_VALUE_TYPE(env, newFuncResultValue, napi_object); 744 napi_close_handle_scope(env, parentScope); 745} 746 747/** 748 * @tc.name: FunctionTest002 749 * @tc.desc: Test function type. 750 * @tc.type: FUNC 751 */ 752HWTEST_F(NapiBasicTest, FunctionTest002, testing::ext::TestSize.Level1) 753{ 754 napi_env env = reinterpret_cast<napi_env>(engine_); 755 756 auto func = [](napi_env env, napi_callback_info info) -> napi_value { 757 return nullptr; 758 }; 759 napi_value fn; 760 const char data[] = "data"; 761 napi_status status = napi_create_function(nullptr, nullptr, 0, nullptr, nullptr, &fn); 762 ASSERT_EQ(status, napi_invalid_arg); 763 status = napi_create_function(env, nullptr, 0, nullptr, nullptr, &fn); 764 ASSERT_EQ(status, napi_invalid_arg); 765 status = napi_create_function(env, nullptr, 0, func, (void*)data, nullptr); 766 ASSERT_EQ(status, napi_invalid_arg); 767 status = napi_create_function(env, nullptr, 0, func, nullptr, &fn); 768 ASSERT_EQ(status, napi_ok); 769 status = napi_create_function(env, nullptr, 0, func, (void*)data, &fn); 770 ASSERT_EQ(status, napi_ok); 771} 772 773/** 774 * @tc.name: FunctionTest003 775 * @tc.desc: Test function type. 776 * @tc.type: FUNC 777 */ 778HWTEST_F(NapiBasicTest, FunctionTest003, testing::ext::TestSize.Level1) 779{ 780 napi_env env = reinterpret_cast<napi_env>(engine_); 781 auto func = [](napi_env env, napi_callback_info info) -> napi_value { 782 napi_value thisVar; 783 napi_value* argv = nullptr; 784 size_t argc = 0; 785 void* innerData = nullptr; 786 787 napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr); 788 if (argc > 0) { 789 argv = new napi_value[argc]; 790 } 791 napi_get_cb_info(env, info, &argc, argv, &thisVar, &innerData); 792 napi_value result; 793 if (argv) { 794 result = argv[0]; 795 delete[] argv; 796 } else { 797 napi_get_undefined(env, &result); 798 } 799 return result; 800 }; 801 802 napi_value fn; 803 napi_value funcResultValue; 804 napi_value recv; 805 napi_value jsNumber; 806 const static char data[] = "data"; 807 napi_status status = napi_create_function(env, nullptr, 0, func, (void*)data, &fn); 808 ASSERT_EQ(napi_ok, status); 809 810 const int32_t testNumber = 1; 811 napi_create_int32(env, testNumber, &jsNumber); 812 napi_value argv[] = { jsNumber }; 813 napi_get_undefined(env, &recv); 814 status = napi_call_function(env, recv, fn, 1, argv, &funcResultValue); 815 ASSERT_EQ(status, napi_ok); 816 817 int32_t cNumber; 818 napi_get_value_int32(env, funcResultValue, &cNumber); 819 ASSERT_EQ(cNumber, testNumber); 820 821 status = napi_call_function(env, nullptr, fn, 1, argv, &funcResultValue); 822 ASSERT_EQ(status, napi_ok); 823 824 status = napi_call_function(env, nullptr, nullptr, 1, argv, &funcResultValue); 825 ASSERT_EQ(status, napi_invalid_arg); 826 827 status = napi_call_function(env, nullptr, nullptr, 0, nullptr, &funcResultValue); 828 ASSERT_EQ(status, napi_invalid_arg); 829 830 status = napi_call_function(env, nullptr, fn, 1, argv, nullptr); 831 ASSERT_EQ(status, napi_ok); 832} 833 834static napi_value TestCreateFunc(napi_env env, napi_callback_info info) 835{ 836 napi_value result = nullptr; 837 napi_create_object(env, &result); 838 return result; 839} 840 841/** 842 * @tc.name: FunctionTest004 843 * @tc.desc: Test the second parameter as null 844 * @tc.type: FUNC 845 */ 846HWTEST_F(NapiBasicTest, FunctionTest004, testing::ext::TestSize.Level1) 847{ 848 napi_env env = reinterpret_cast<napi_env>(engine_); 849 napi_value funcValue = nullptr; 850 napi_create_function(env, nullptr, NAPI_AUTO_LENGTH, TestCreateFunc, nullptr, &funcValue); 851 ASSERT_NE(funcValue, nullptr); 852 853 napi_value recv = nullptr; 854 napi_get_undefined(env, &recv); 855 ASSERT_NE(recv, nullptr); 856 napi_value funcResultValue = nullptr; 857 napi_call_function(env, recv, funcValue, 0, nullptr, &funcResultValue); 858 ASSERT_NE(funcResultValue, nullptr); 859} 860 861static napi_value TestCallFunc(napi_env env, napi_callback_info info) 862{ 863 napi_value error = nullptr; 864 napi_throw_error(env, "500", "Common error"); 865 return error; 866} 867 868/** 869 * @tc.name: FunctionTest005 870 * @tc.desc: Test callfunction throw error 871 * @tc.type: FUNC 872 */ 873HWTEST_F(NapiBasicTest, FunctionTest005, testing::ext::TestSize.Level1) 874{ 875 napi_env env = reinterpret_cast<napi_env>(engine_); 876 napi_value funcValue = nullptr; 877 napi_value exception = nullptr; 878 napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, TestCallFunc, nullptr, &funcValue); 879 ASSERT_NE(funcValue, nullptr); 880 881 napi_value recv = nullptr; 882 napi_get_undefined(env, &recv); 883 ASSERT_NE(recv, nullptr); 884 napi_value funcResultValue = nullptr; 885 bool isExceptionPending = false; 886 napi_call_function(env, recv, funcValue, 0, nullptr, &funcResultValue); 887 napi_is_exception_pending(env, &isExceptionPending); 888 ASSERT_TRUE(isExceptionPending); 889 890 napi_get_and_clear_last_exception(env, &exception); 891} 892 893/** 894 * @tc.name: ArrayTest001 895 * @tc.desc: Test array type. 896 * @tc.type: FUNC 897 */ 898HWTEST_F(NapiBasicTest, ArrayTest001, testing::ext::TestSize.Level1) { 899 napi_env env = (napi_env) engine_; 900 901 napi_value array = nullptr; 902 napi_create_array(env, &array); 903 ASSERT_NE(array, nullptr); 904 bool isArray = false; 905 napi_is_array(env, array, &isArray); 906 ASSERT_TRUE(isArray); 907 908 for (size_t i = 0; i < 10; i++) { 909 napi_value num = nullptr; 910 napi_create_uint32(env, i, &num); 911 napi_set_element(env, array, i, num); 912 } 913 914 uint32_t arrayLength = 0; 915 napi_get_array_length(env, array, &arrayLength); 916 917 ASSERT_EQ(arrayLength, static_cast<uint32_t>(10)); 918 919 for (size_t i = 0; i < arrayLength; i++) { 920 bool hasIndex = false; 921 napi_has_element(env, array, i, &hasIndex); 922 ASSERT_TRUE(hasIndex); 923 } 924 925 for (size_t i = 0; i < arrayLength; i++) { 926 bool isDelete = false; 927 napi_delete_element(env, array, i, &isDelete); 928 ASSERT_TRUE(isDelete); 929 } 930} 931 932/** 933 * @tc.name: ArrayBufferTest001 934 * @tc.desc: Test array buffer type. 935 * @tc.type: FUNC 936 */ 937HWTEST_F(NapiBasicTest, ArrayBufferTest001, testing::ext::TestSize.Level1) 938{ 939 napi_env env = (napi_env)engine_; 940 941 napi_value arrayBuffer = nullptr; 942 void* arrayBufferPtr = nullptr; 943 size_t arrayBufferSize = 1024; 944 napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer); 945 946 void* tmpArrayBufferPtr = nullptr; 947 size_t arrayBufferLength = 0; 948 napi_get_arraybuffer_info(env, arrayBuffer, &tmpArrayBufferPtr, &arrayBufferLength); 949 950 ASSERT_EQ(arrayBufferPtr, tmpArrayBufferPtr); 951 ASSERT_EQ(arrayBufferSize, arrayBufferLength); 952} 953 954/** 955 * @tc.name: TypedArrayTest001 956 * @tc.desc: Test typed array type. 957 * @tc.type: FUNC 958 */ 959HWTEST_F(NapiBasicTest, TypedArrayTest001, testing::ext::TestSize.Level1) 960{ 961 napi_env env = (napi_env)engine_; 962 963 { 964 napi_value arrayBuffer = nullptr; 965 void* arrayBufferPtr = nullptr; 966 size_t arrayBufferSize = 1024; 967 napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer); 968 969 void* tmpArrayBufferPtr = nullptr; 970 size_t arrayBufferLength = 0; 971 napi_get_arraybuffer_info(env, arrayBuffer, &tmpArrayBufferPtr, &arrayBufferLength); 972 973 ASSERT_EQ(arrayBufferPtr, tmpArrayBufferPtr); 974 ASSERT_EQ(arrayBufferSize, arrayBufferLength); 975 976 napi_value typedarray = nullptr; 977 napi_create_typedarray(env, napi_int8_array, arrayBufferSize, arrayBuffer, 0, &typedarray); 978 ASSERT_NE(typedarray, nullptr); 979 bool isTypedArray = false; 980 napi_is_typedarray(env, typedarray, &isTypedArray); 981 ASSERT_TRUE(isTypedArray); 982 983 napi_typedarray_type typedarrayType; 984 size_t typedarrayLength = 0; 985 void* typedarrayBufferPtr = nullptr; 986 napi_value tmpArrayBuffer = nullptr; 987 size_t byteOffset = 0; 988 989 napi_get_typedarray_info(env, typedarray, &typedarrayType, &typedarrayLength, &typedarrayBufferPtr, 990 &tmpArrayBuffer, &byteOffset); 991 992 ASSERT_EQ(typedarrayBufferPtr, arrayBufferPtr); 993 ASSERT_EQ(arrayBufferSize, typedarrayLength); 994 } 995} 996 997/** 998 * @tc.name: DataViewTest001 999 * @tc.desc: Test data view type. 1000 * @tc.type: FUNC 1001 */ 1002HWTEST_F(NapiBasicTest, DataViewTest001, testing::ext::TestSize.Level1) 1003{ 1004 napi_env env = (napi_env)engine_; 1005 1006 napi_value arrayBuffer = nullptr; 1007 void* arrayBufferPtr = nullptr; 1008 size_t arrayBufferSize = 1024; 1009 napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer); 1010 ASSERT_NE(arrayBuffer, nullptr); 1011 ASSERT_NE(arrayBufferPtr, nullptr); 1012 bool isArrayBuffer = false; 1013 napi_is_arraybuffer(env, arrayBuffer, &isArrayBuffer); 1014 ASSERT_TRUE(isArrayBuffer); 1015 1016 napi_value result = nullptr; 1017 napi_create_dataview(env, arrayBufferSize, arrayBuffer, 0, &result); 1018 1019 bool isDataView = false; 1020 napi_is_dataview(env, result, &isDataView); 1021 1022 napi_value retArrayBuffer = nullptr; 1023 void* data = nullptr; 1024 size_t byteLength = 0; 1025 size_t byteOffset = 0; 1026 napi_get_dataview_info(env, result, &byteLength, &data, &retArrayBuffer, &byteOffset); 1027 1028 bool retIsArrayBuffer = false; 1029 napi_is_arraybuffer(env, arrayBuffer, &retIsArrayBuffer); 1030 ASSERT_TRUE(retIsArrayBuffer); 1031 ASSERT_EQ(arrayBufferPtr, data); 1032 ASSERT_EQ(arrayBufferSize, byteLength); 1033 ASSERT_EQ(static_cast<size_t>(0), byteOffset); 1034} 1035 1036/** 1037 * @tc.name: PromiseTest001 1038 * @tc.desc: Test promise type. 1039 * @tc.type: FUNC 1040 */ 1041HWTEST_F(NapiBasicTest, PromiseTest001, testing::ext::TestSize.Level1) 1042{ 1043 napi_env env = (napi_env)engine_; 1044 { 1045 napi_deferred deferred = nullptr; 1046 napi_value promise = nullptr; 1047 ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise)); 1048 ASSERT_NE(deferred, nullptr); 1049 ASSERT_NE(promise, nullptr); 1050 1051 bool isPromise = false; 1052 ASSERT_CHECK_CALL(napi_is_promise(env, promise, &isPromise)); 1053 ASSERT_TRUE(isPromise); 1054 1055 napi_value undefined = nullptr; 1056 napi_get_undefined(env, &undefined); 1057 ASSERT_CHECK_CALL(napi_resolve_deferred(env, deferred, undefined)); 1058 } 1059 { 1060 napi_deferred deferred = nullptr; 1061 napi_value promise = nullptr; 1062 ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise)); 1063 ASSERT_NE(deferred, nullptr); 1064 ASSERT_NE(promise, nullptr); 1065 1066 bool isPromise = false; 1067 ASSERT_CHECK_CALL(napi_is_promise(env, promise, &isPromise)); 1068 ASSERT_TRUE(isPromise); 1069 1070 napi_value undefined = nullptr; 1071 napi_get_undefined(env, &undefined); 1072 ASSERT_CHECK_CALL(napi_reject_deferred(env, deferred, undefined)); 1073 } 1074 { 1075 napi_deferred deferred = nullptr; 1076 napi_value promise = nullptr; 1077 ASSERT_CHECK_CALL(napi_throw_error(env, "500", "common error")); 1078 ASSERT_NE(napi_create_promise(env, &deferred, &promise), napi_ok); 1079 ASSERT_EQ(deferred, nullptr); 1080 ASSERT_EQ(promise, nullptr); 1081 napi_value error = nullptr; 1082 napi_get_and_clear_last_exception(env, &error); 1083 } 1084} 1085 1086/** 1087 * @tc.name: PromiseTest002 1088 * @tc.desc: Test promise type. 1089 * @tc.type: FUNC 1090 */ 1091HWTEST_F(NapiBasicTest, PromiseTest002, testing::ext::TestSize.Level1) 1092{ 1093 napi_env env = reinterpret_cast<napi_env>(engine_); 1094 { 1095 napi_deferred deferred = nullptr; 1096 napi_value promise = nullptr; 1097 napi_status status = napi_create_promise(nullptr, &deferred, &promise); 1098 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1099 status = napi_create_promise(env, nullptr, &promise); 1100 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1101 status = napi_create_promise(env, &deferred, nullptr); 1102 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1103 } 1104 { 1105 napi_deferred deferred = nullptr; 1106 napi_value promise = nullptr; 1107 ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise)); 1108 1109 bool isPromise = false; 1110 napi_status status = napi_is_promise(nullptr, promise, &isPromise); 1111 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1112 status = napi_is_promise(env, nullptr, &isPromise); 1113 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1114 status = napi_is_promise(env, promise, nullptr); 1115 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1116 } 1117 { 1118 napi_deferred deferred = nullptr; 1119 napi_value promise = nullptr; 1120 ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise)); 1121 1122 napi_value undefined = nullptr; 1123 napi_get_undefined(env, &undefined); 1124 napi_status status = napi_resolve_deferred(nullptr, deferred, undefined); 1125 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1126 status = napi_resolve_deferred(env, nullptr, undefined); 1127 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1128 status = napi_resolve_deferred(env, deferred, nullptr); 1129 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1130 } 1131 { 1132 napi_deferred deferred = nullptr; 1133 napi_value promise = nullptr; 1134 ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise)); 1135 1136 napi_value undefined = nullptr; 1137 napi_get_undefined(env, &undefined); 1138 napi_status status = napi_reject_deferred(nullptr, deferred, undefined); 1139 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1140 status = napi_reject_deferred(env, nullptr, undefined); 1141 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1142 status = napi_reject_deferred(env, deferred, nullptr); 1143 ASSERT_EQ(status, napi_status::napi_invalid_arg); 1144 } 1145} 1146 1147/** 1148 * @tc.name: ErrorTest001 1149 * @tc.desc: Test error type. 1150 * @tc.type: FUNC 1151 */ 1152HWTEST_F(NapiBasicTest, ErrorTest001, testing::ext::TestSize.Level1) 1153{ 1154 napi_env env = (napi_env)engine_; 1155 bool isExceptionPending = false; 1156 napi_value exception = nullptr; 1157 1158 { 1159 napi_value code = nullptr; 1160 napi_value message = nullptr; 1161 1162 napi_create_string_latin1(env, "500", NAPI_AUTO_LENGTH, &code); 1163 napi_create_string_latin1(env, "common error", NAPI_AUTO_LENGTH, &message); 1164 1165 napi_value error = nullptr; 1166 napi_create_error(env, code, message, &error); 1167 ASSERT_TRUE(error != nullptr); 1168 bool isError = false; 1169 napi_is_error(env, error, &isError); 1170 ASSERT_TRUE(isError); 1171 napi_throw(env, error); 1172 napi_is_exception_pending(env, &isExceptionPending); 1173 ASSERT_TRUE(isExceptionPending); 1174 napi_get_and_clear_last_exception(env, &exception); 1175 napi_is_exception_pending(env, &isExceptionPending); 1176 ASSERT_FALSE(isExceptionPending); 1177 } 1178 1179 { 1180 napi_value code = nullptr; 1181 napi_value message = nullptr; 1182 napi_create_string_latin1(env, "500", NAPI_AUTO_LENGTH, &code); 1183 napi_create_string_latin1(env, "range error", NAPI_AUTO_LENGTH, &message); 1184 napi_value error = nullptr; 1185 napi_create_range_error(env, code, message, &error); 1186 ASSERT_TRUE(error != nullptr); 1187 bool isError = false; 1188 napi_is_error(env, error, &isError); 1189 ASSERT_TRUE(isError); 1190 1191 napi_throw_range_error(env, "500", "Range error"); 1192 napi_is_exception_pending(env, &isExceptionPending); 1193 ASSERT_TRUE(isExceptionPending); 1194 napi_get_and_clear_last_exception(env, &exception); 1195 napi_is_exception_pending(env, &isExceptionPending); 1196 ASSERT_FALSE(isExceptionPending); 1197 } 1198 1199 { 1200 napi_value code = nullptr; 1201 napi_value message = nullptr; 1202 napi_create_string_latin1(env, "500", NAPI_AUTO_LENGTH, &code); 1203 napi_create_string_latin1(env, "type error", NAPI_AUTO_LENGTH, &message); 1204 napi_value error = nullptr; 1205 napi_create_type_error(env, code, message, &error); 1206 ASSERT_TRUE(error != nullptr); 1207 bool isError = false; 1208 napi_is_error(env, error, &isError); 1209 ASSERT_TRUE(isError); 1210 1211 napi_throw_type_error(env, "500", "Type error"); 1212 napi_is_exception_pending(env, &isExceptionPending); 1213 ASSERT_TRUE(isExceptionPending); 1214 napi_get_and_clear_last_exception(env, &exception); 1215 napi_is_exception_pending(env, &isExceptionPending); 1216 ASSERT_FALSE(isExceptionPending); 1217 } 1218 1219 napi_throw_error(env, "500", "Common error"); 1220 napi_is_exception_pending(env, &isExceptionPending); 1221 ASSERT_TRUE(isExceptionPending); 1222 napi_get_and_clear_last_exception(env, &exception); 1223 napi_is_exception_pending(env, &isExceptionPending); 1224 ASSERT_FALSE(isExceptionPending); 1225} 1226 1227/** 1228 * @tc.name: ReferenceTest001 1229 * @tc.desc: Test reference type. 1230 * @tc.type: FUNC 1231 */ 1232HWTEST_F(NapiBasicTest, ReferenceTest001, testing::ext::TestSize.Level1) 1233{ 1234 napi_env env = (napi_env)engine_; 1235 1236 napi_value result = nullptr; 1237 napi_ref resultRef = nullptr; 1238 1239 napi_create_object(env, &result); 1240 napi_create_reference(env, result, 1, &resultRef); 1241 1242 uint32_t resultRefCount = 0; 1243 1244 napi_reference_ref(env, resultRef, &resultRefCount); 1245 ASSERT_EQ(resultRefCount, static_cast<uint32_t>(2)); 1246 1247 napi_reference_unref(env, resultRef, &resultRefCount); 1248 ASSERT_EQ(resultRefCount, static_cast<uint32_t>(1)); 1249 1250 napi_value refValue = nullptr; 1251 napi_get_reference_value(env, resultRef, &refValue); 1252 1253 ASSERT_NE(refValue, nullptr); 1254 1255 napi_delete_reference(env, resultRef); 1256} 1257 1258/** 1259 * @tc.name: CustomClassTest001 1260 * @tc.desc: Test define class. 1261 * @tc.type: FUNC 1262 */ 1263HWTEST_F(NapiBasicTest, CustomClassTest001, testing::ext::TestSize.Level1) 1264{ 1265 napi_env env = (napi_env)engine_; 1266 1267 auto constructor = [](napi_env env, napi_callback_info info) -> napi_value { 1268 napi_value thisVar = nullptr; 1269 napi_value* argv = nullptr; 1270 size_t argc = 0; 1271 void* data = nullptr; 1272 napi_value constructor = nullptr; 1273 napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr); 1274 if (argc > 0) { 1275 argv = new napi_value[argc]; 1276 } 1277 napi_get_cb_info(env, info, &argc, argv, &thisVar, &data); 1278 napi_get_new_target(env, info, &constructor); 1279 if (constructor == nullptr) { 1280 napi_throw_error(env, nullptr, "is not new instance"); 1281 } 1282 if (argv != nullptr) { 1283 delete []argv; 1284 } 1285 return thisVar; 1286 }; 1287 1288 napi_value ln2 = nullptr; 1289 napi_value e = nullptr; 1290 1291 napi_create_double(env, 2.718281828459045, &e); 1292 napi_create_double(env, 0.6931471805599453, &ln2); 1293 1294 napi_property_descriptor desc[] = { 1295 DECLARE_NAPI_FUNCTION("add", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }), 1296 DECLARE_NAPI_FUNCTION("sub", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }), 1297 DECLARE_NAPI_FUNCTION("mul", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }), 1298 DECLARE_NAPI_FUNCTION("div", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }), 1299 DECLARE_NAPI_STATIC_FUNCTION("getTime", 1300 [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }), 1301 DECLARE_NAPI_GETTER_SETTER( 1302 "pi", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, 1303 [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }), 1304 1305 }; 1306 1307 napi_value customClass = nullptr; 1308 1309 ASSERT_CHECK_CALL(napi_define_class(env, "CustomClass", NAPI_AUTO_LENGTH, constructor, nullptr, 1310 sizeof(desc) / sizeof(desc[0]), desc, &customClass)); 1311 ASSERT_CHECK_VALUE_TYPE(env, customClass, napi_function); 1312 napi_value customClassPrototype = nullptr; 1313 napi_get_prototype(env, customClass, &customClassPrototype); 1314 ASSERT_CHECK_VALUE_TYPE(env, customClassPrototype, napi_function); 1315 1316 napi_value customInstance = nullptr; 1317 ASSERT_CHECK_CALL(napi_new_instance(env, customClass, 0, nullptr, &customInstance)); 1318 1319 bool isInstanceOf = false; 1320 ASSERT_CHECK_CALL(napi_instanceof(env, customInstance, customClass, &isInstanceOf)); 1321 ASSERT_TRUE(isInstanceOf); 1322} 1323 1324/** 1325 * @tc.name: CreateMap001 1326 * @tc.desc: Test napi_create_map. 1327 * @tc.type: FUNC 1328 */ 1329HWTEST_F(NapiBasicTest, CreateMap001, testing::ext::TestSize.Level1) 1330{ 1331 ASSERT_NE(engine_, nullptr); 1332 napi_env env = reinterpret_cast<napi_env>(engine_); 1333 napi_status res = napi_ok; 1334 1335 res = napi_create_map(env, nullptr); 1336 ASSERT_EQ(res, napi_invalid_arg); 1337 1338 napi_value result = nullptr; 1339 ASSERT_CHECK_CALL(napi_create_map(env, &result)); 1340 1341 bool isMap = false; 1342 ASSERT_CHECK_CALL(napi_is_map(env, result, &isMap)); 1343 ASSERT_EQ(isMap, true); 1344} 1345 1346/** 1347 * @tc.name: CreateMap002 1348 * @tc.desc: Test napi_create_map. 1349 * @tc.type: FUNC 1350 */ 1351HWTEST_F(NapiBasicTest, CreateMap002, testing::ext::TestSize.Level1) 1352{ 1353 ASSERT_NE(engine_, nullptr); 1354 napi_env env = reinterpret_cast<napi_env>(engine_); 1355 1356 napi_value result = nullptr; 1357 ASSERT_CHECK_CALL(napi_create_map(env, &result)); 1358 1359 uint32_t length = 0; 1360 napi_value value = nullptr; 1361 bool hasKey = false; 1362 1363 napi_value key = nullptr; 1364 ASSERT_CHECK_CALL(napi_create_string_utf8(env, "null", NAPI_AUTO_LENGTH, &key)); 1365 napi_value null = nullptr; 1366 ASSERT_CHECK_CALL(napi_get_null(env, &null)); 1367 napi_value undefined = nullptr; 1368 ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined)); 1369 1370 ASSERT_CHECK_CALL(napi_map_set_property(env, result, key, null)); 1371 ASSERT_CHECK_CALL(napi_map_get_size(env, result, &length)); 1372 ASSERT_EQ(length, 1); 1373 ASSERT_CHECK_CALL(napi_map_has_property(env, result, key, &hasKey)); 1374 ASSERT_TRUE(hasKey); 1375 ASSERT_CHECK_CALL(napi_map_get_property(env, result, key, &value)); 1376 ASSERT_CHECK_VALUE_TYPE(env, value, napi_null); 1377 1378 ASSERT_CHECK_CALL(napi_map_delete_property(env, result, key)); 1379 ASSERT_CHECK_CALL(napi_map_get_size(env, result, &length)); 1380 ASSERT_EQ(length, 0); 1381 ASSERT_CHECK_CALL(napi_map_has_property(env, result, key, &hasKey)); 1382 ASSERT_FALSE(hasKey); 1383 ASSERT_CHECK_CALL(napi_map_get_property(env, result, key, &value)); 1384 ASSERT_CHECK_VALUE_TYPE(env, value, napi_undefined); 1385} 1386 1387/** 1388 * @tc.name: CreateMap003 1389 * @tc.desc: Test napi_create_map. 1390 * @tc.type: FUNC 1391 */ 1392HWTEST_F(NapiBasicTest, CreateMap003, testing::ext::TestSize.Level1) 1393{ 1394 ASSERT_NE(engine_, nullptr); 1395 napi_env env = reinterpret_cast<napi_env>(engine_); 1396 1397 napi_value result = nullptr; 1398 ASSERT_CHECK_CALL(napi_create_map(env, &result)); 1399 1400 uint32_t length = 0; 1401 napi_value value = nullptr; 1402 bool hasKey = false; 1403 1404 const char* key = "null"; 1405 napi_value null = nullptr; 1406 ASSERT_CHECK_CALL(napi_get_null(env, &null)); 1407 napi_value undefined = nullptr; 1408 ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined)); 1409 1410 ASSERT_CHECK_CALL(napi_map_set_named_property(env, result, key, null)); 1411 ASSERT_CHECK_CALL(napi_map_get_size(env, result, &length)); 1412 ASSERT_EQ(length, 1); 1413 ASSERT_CHECK_CALL(napi_map_has_named_property(env, result, key, &hasKey)); 1414 ASSERT_TRUE(hasKey); 1415 ASSERT_CHECK_CALL(napi_map_get_named_property(env, result, key, &value)); 1416 ASSERT_CHECK_VALUE_TYPE(env, value, napi_null); 1417 1418 ASSERT_CHECK_CALL(napi_map_clear(env, result)); 1419 ASSERT_CHECK_CALL(napi_map_get_size(env, result, &length)); 1420 ASSERT_EQ(length, 0); 1421 ASSERT_CHECK_CALL(napi_map_has_named_property(env, result, key, &hasKey)); 1422 ASSERT_FALSE(hasKey); 1423 ASSERT_CHECK_CALL(napi_map_get_named_property(env, result, key, &value)); 1424 ASSERT_CHECK_VALUE_TYPE(env, value, napi_undefined); 1425 1426 napi_value object = nullptr; 1427 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 1428 ASSERT_CHECK_CALL(napi_map_set_named_property(env, result, key, object)); 1429 ASSERT_CHECK_CALL(napi_map_get_named_property(env, result, key, &value)); 1430 ASSERT_CHECK_VALUE_TYPE(env, value, napi_object); 1431} 1432 1433/** 1434 * @tc.name: CreateMap004 1435 * @tc.desc: Test napi_create_map. 1436 * @tc.type: FUNC 1437 */ 1438HWTEST_F(NapiBasicTest, CreateMap004, testing::ext::TestSize.Level1) 1439{ 1440 ASSERT_NE(engine_, nullptr); 1441 napi_env env = reinterpret_cast<napi_env>(engine_); 1442 1443 napi_value map = nullptr; 1444 ASSERT_CHECK_CALL(napi_create_map(env, &map)); 1445 1446 napi_value zero = nullptr; 1447 ASSERT_CHECK_CALL(napi_create_int32(env, 0, &zero)); 1448 napi_value one = nullptr; 1449 ASSERT_CHECK_CALL(napi_create_int32(env, 1, &one)); 1450 1451 ASSERT_CHECK_CALL(napi_map_set_property(env, map, zero, one)); 1452 1453 napi_value entries; 1454 ASSERT_CHECK_CALL(napi_map_get_entries(env, map, &entries)); 1455 1456 napi_value entries0; 1457 ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, entries, &entries0)); 1458 napi_value entries0Value = nullptr; 1459 ASSERT_CHECK_CALL(napi_get_named_property(env, entries0, "value", &entries0Value)); 1460 napi_value key = nullptr; 1461 ASSERT_CHECK_CALL(napi_get_element(env, entries0Value, 0, &key)); 1462 int32_t nativeKey; 1463 ASSERT_CHECK_CALL(napi_get_value_int32(env, key, &nativeKey)); 1464 ASSERT_EQ(nativeKey, 0); 1465 napi_value value = nullptr; 1466 ASSERT_CHECK_CALL(napi_get_element(env, entries0Value, 1, &value)); 1467 int32_t nativeValue; 1468 ASSERT_CHECK_CALL(napi_get_value_int32(env, value, &nativeValue)); 1469 ASSERT_EQ(nativeValue, 1); 1470 1471 napi_value end; 1472 ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, entries, &end)); 1473 napi_value done = nullptr; 1474 ASSERT_CHECK_CALL(napi_get_named_property(env, end, "done", &done)); 1475 bool isDone; 1476 ASSERT_CHECK_CALL(napi_get_value_bool(env, done, &isDone)); 1477 ASSERT_TRUE(isDone); 1478} 1479 1480/** 1481 * @tc.name: CreateMap005 1482 * @tc.desc: Test napi_create_map. 1483 * @tc.type: FUNC 1484 */ 1485HWTEST_F(NapiBasicTest, CreateMap005, testing::ext::TestSize.Level1) 1486{ 1487 ASSERT_NE(engine_, nullptr); 1488 napi_env env = reinterpret_cast<napi_env>(engine_); 1489 1490 napi_value map = nullptr; 1491 ASSERT_CHECK_CALL(napi_create_map(env, &map)); 1492 1493 napi_value zero = nullptr; 1494 ASSERT_CHECK_CALL(napi_create_int32(env, 0, &zero)); 1495 napi_value one = nullptr; 1496 ASSERT_CHECK_CALL(napi_create_int32(env, 1, &one)); 1497 1498 ASSERT_CHECK_CALL(napi_map_set_property(env, map, zero, one)); 1499 1500 napi_value keys; 1501 ASSERT_CHECK_CALL(napi_map_get_keys(env, map, &keys)); 1502 1503 napi_value keys0; 1504 ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, keys, &keys0)); 1505 napi_value key = nullptr; 1506 ASSERT_CHECK_CALL(napi_get_named_property(env, keys0, "value", &key)); 1507 int32_t nativeKey; 1508 ASSERT_CHECK_CALL(napi_get_value_int32(env, key, &nativeKey)); 1509 ASSERT_EQ(nativeKey, 0); 1510 1511 napi_value end; 1512 ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, keys, &end)); 1513 napi_value done = nullptr; 1514 ASSERT_CHECK_CALL(napi_get_named_property(env, end, "done", &done)); 1515 bool isDone; 1516 ASSERT_CHECK_CALL(napi_get_value_bool(env, done, &isDone)); 1517 ASSERT_TRUE(isDone); 1518} 1519 1520/** 1521 * @tc.name: CreateMap006 1522 * @tc.desc: Test napi_create_map. 1523 * @tc.type: FUNC 1524 */ 1525HWTEST_F(NapiBasicTest, CreateMap006, testing::ext::TestSize.Level1) 1526{ 1527 ASSERT_NE(engine_, nullptr); 1528 napi_env env = reinterpret_cast<napi_env>(engine_); 1529 1530 napi_value map = nullptr; 1531 ASSERT_CHECK_CALL(napi_create_map(env, &map)); 1532 1533 napi_value zero = nullptr; 1534 ASSERT_CHECK_CALL(napi_create_int32(env, 0, &zero)); 1535 napi_value one = nullptr; 1536 ASSERT_CHECK_CALL(napi_create_int32(env, 1, &one)); 1537 1538 ASSERT_CHECK_CALL(napi_map_set_property(env, map, zero, one)); 1539 1540 napi_value values; 1541 ASSERT_CHECK_CALL(napi_map_get_values(env, map, &values)); 1542 1543 napi_value values0; 1544 ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, values, &values0)); 1545 napi_value value = nullptr; 1546 ASSERT_CHECK_CALL(napi_get_named_property(env, values0, "value", &value)); 1547 int32_t nativeValue; 1548 ASSERT_CHECK_CALL(napi_get_value_int32(env, value, &nativeValue)); 1549 ASSERT_EQ(nativeValue, 1); 1550 1551 napi_value end; 1552 ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, values, &end)); 1553 napi_value done = nullptr; 1554 ASSERT_CHECK_CALL(napi_get_named_property(env, end, "done", &done)); 1555 bool isDone; 1556 ASSERT_CHECK_CALL(napi_get_value_bool(env, done, &isDone)); 1557 ASSERT_TRUE(isDone); 1558} 1559 1560/** 1561 * @tc.name: AsyncWorkTest001 1562 * @tc.desc: Test async work. 1563 * @tc.type: FUNC 1564 */ 1565HWTEST_F(NapiBasicTest, AsyncWorkTest001, testing::ext::TestSize.Level1) 1566{ 1567 struct AsyncWorkContext { 1568 napi_async_work work = nullptr; 1569 }; 1570 napi_env env = (napi_env)engine_; 1571 { 1572 auto asyncWorkContext = new AsyncWorkContext(); 1573 napi_value resourceName = nullptr; 1574 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 1575 ASSERT_CHECK_CALL(napi_create_async_work( 1576 env, nullptr, resourceName, [](napi_env value, void* data) {}, 1577 [](napi_env env, napi_status status, void* data) { 1578 AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data; 1579 ASSERT_CHECK_CALL(napi_delete_async_work(env, asyncWorkContext->work)); 1580 delete asyncWorkContext; 1581 STOP_EVENT_LOOP(env); 1582 }, 1583 asyncWorkContext, &asyncWorkContext->work)); 1584 ASSERT_CHECK_CALL(napi_queue_async_work(env, asyncWorkContext->work)); 1585 RUN_EVENT_LOOP(env); 1586 } 1587 { 1588 auto asyncWorkContext = new AsyncWorkContext(); 1589 napi_value resourceName = nullptr; 1590 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 1591 napi_create_async_work( 1592 env, nullptr, resourceName, [](napi_env value, void* data) {}, 1593 [](napi_env env, napi_status status, void* data) { 1594 AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data; 1595 ASSERT_EQ(status, napi_status::napi_cancelled); 1596 napi_delete_async_work(env, asyncWorkContext->work); 1597 delete asyncWorkContext; 1598 STOP_EVENT_LOOP(env); 1599 }, 1600 asyncWorkContext, &asyncWorkContext->work); 1601 napi_queue_async_work(env, asyncWorkContext->work); 1602 ASSERT_CHECK_CALL(napi_cancel_async_work(env, asyncWorkContext->work)); 1603 RUN_EVENT_LOOP(env); 1604 } 1605} 1606 1607/** 1608 * @tc.name: AsyncWorkTest003 1609 * @tc.desc: Test async work. 1610 * @tc.type: FUNC 1611 */ 1612HWTEST_F(NapiBasicTest, AsyncWorkTest003, testing::ext::TestSize.Level1) 1613{ 1614 struct AsyncWorkContext { 1615 napi_async_work work = nullptr; 1616 }; 1617 napi_env env = reinterpret_cast<napi_env>(engine_); 1618 std::unique_ptr<AsyncWorkContext> asyncWorkContext = std::make_unique<AsyncWorkContext>(); 1619 napi_value resourceName = nullptr; 1620 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 1621 napi_status status = napi_create_async_work( 1622 env, nullptr, nullptr, [](napi_env env, void* data) {}, 1623 [](napi_env env, napi_status status, void* data) {}, 1624 asyncWorkContext.get(), &asyncWorkContext->work); 1625 ASSERT_EQ(status, napi_invalid_arg); 1626 1627 status = napi_create_async_work( 1628 env, nullptr, resourceName, nullptr, 1629 [](napi_env env, napi_status status, void* data) {}, 1630 asyncWorkContext.get(), &asyncWorkContext->work); 1631 ASSERT_EQ(status, napi_invalid_arg); 1632 1633 status = napi_create_async_work( 1634 env, nullptr, resourceName, [](napi_env env, void* data) {}, 1635 nullptr, 1636 asyncWorkContext.get(), &asyncWorkContext->work); 1637 ASSERT_EQ(status, napi_invalid_arg); 1638 1639 status = napi_create_async_work( 1640 env, nullptr, resourceName, [](napi_env env, void* data) {}, 1641 [](napi_env env, napi_status status, void* data) {}, 1642 nullptr, &asyncWorkContext->work); 1643 ASSERT_EQ(status, napi_ok); 1644 1645 status = napi_create_async_work( 1646 env, nullptr, resourceName, [](napi_env env, void* data) {}, 1647 [](napi_env env, napi_status status, void* data) {}, 1648 asyncWorkContext.get(), nullptr); 1649 ASSERT_EQ(status, napi_invalid_arg); 1650} 1651 1652/** 1653 * @tc.name: AsyncWorkTest004 1654 * @tc.desc: Test async work. 1655 * @tc.type: FUNC 1656 */ 1657HWTEST_F(NapiBasicTest, AsyncWorkTest004, testing::ext::TestSize.Level1) 1658{ 1659 struct AsyncWorkContext { 1660 napi_async_work work = nullptr; 1661 }; 1662 napi_env env = reinterpret_cast<napi_env>(engine_); 1663 auto asyncWorkContext = new AsyncWorkContext(); 1664 napi_value resourceName = nullptr; 1665 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 1666 napi_create_async_work( 1667 env, nullptr, resourceName, [](napi_env env, void* data) {}, 1668 [](napi_env env, napi_status status, void* data) { 1669 AsyncWorkContext* asyncWorkContext = reinterpret_cast<AsyncWorkContext*>(data); 1670 ASSERT_NE(asyncWorkContext, nullptr); 1671 delete asyncWorkContext; 1672 }, 1673 nullptr, &asyncWorkContext->work); 1674 napi_delete_async_work(env, asyncWorkContext->work); 1675} 1676 1677/** 1678 * @tc.name: AsyncWorkTest005 1679 * @tc.desc: Test async work. 1680 * @tc.type: FUNC 1681 */ 1682HWTEST_F(NapiBasicTest, AsyncWorkTest005, testing::ext::TestSize.Level1) 1683{ 1684 struct AsyncWorkContext { 1685 napi_async_work work = nullptr; 1686 }; 1687 napi_env env = reinterpret_cast<napi_env>(engine_); 1688 auto asyncWorkContext = new AsyncWorkContext(); 1689 napi_value resourceName = nullptr; 1690 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 1691 napi_create_async_work( 1692 env, nullptr, resourceName, [](napi_env env, void* data) {}, 1693 [](napi_env env, napi_status status, void* data) { 1694 AsyncWorkContext* asyncWorkContext = reinterpret_cast<AsyncWorkContext*>(data); 1695 ASSERT_NE(asyncWorkContext, nullptr); 1696 delete asyncWorkContext; 1697 STOP_EVENT_LOOP(env); 1698 }, 1699 asyncWorkContext, &asyncWorkContext->work); 1700 napi_status status = napi_queue_async_work(env, asyncWorkContext->work); 1701 ASSERT_EQ(status, napi_ok); 1702 status = napi_queue_async_work(env, nullptr); 1703 ASSERT_EQ(status, napi_invalid_arg); 1704 RUN_EVENT_LOOP(env); 1705} 1706 1707/** 1708 * @tc.name: ObjectWrapperTest001 1709 * @tc.desc: Test object wrapper. 1710 * @tc.type: FUNC 1711 */ 1712HWTEST_F(NapiBasicTest, ObjectWrapperTest001, testing::ext::TestSize.Level1) 1713{ 1714 napi_env env = (napi_env)engine_; 1715 1716 napi_value testClass = nullptr; 1717 napi_define_class( 1718 env, "TestClass", NAPI_AUTO_LENGTH, 1719 [](napi_env env, napi_callback_info info) -> napi_value { 1720 napi_value thisVar = nullptr; 1721 napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); 1722 1723 return thisVar; 1724 }, 1725 nullptr, 0, nullptr, &testClass); 1726 1727 napi_value instanceValue = nullptr; 1728 napi_new_instance(env, testClass, 0, nullptr, &instanceValue); 1729 1730 const char* testStr = "test"; 1731 napi_wrap( 1732 env, instanceValue, (void*)testStr, [](napi_env env, void* data, void* hint) {}, nullptr, nullptr); 1733 1734 char* tmpTestStr = nullptr; 1735 napi_unwrap(env, instanceValue, (void**)&tmpTestStr); 1736 ASSERT_STREQ(testStr, tmpTestStr); 1737 1738 char* tmpTestStr1 = nullptr; 1739 napi_remove_wrap(env, instanceValue, (void**)&tmpTestStr1); 1740 ASSERT_STREQ(testStr, tmpTestStr1); 1741} 1742 1743/** 1744 * @tc.name: StrictEqualsTest001 1745 * @tc.desc: Test date type. 1746 * @tc.type: FUNC 1747 */ 1748HWTEST_F(NapiBasicTest, StrictEqualsTest001, testing::ext::TestSize.Level1) 1749{ 1750 napi_env env = (napi_env)engine_; 1751 1752 const char* testStringStr = "test"; 1753 napi_value testString = nullptr; 1754 napi_create_string_utf8(env, testStringStr, strlen(testStringStr), &testString); 1755 bool isStrictEquals = false; 1756 napi_strict_equals(env, testString, testString, &isStrictEquals); 1757 ASSERT_TRUE(isStrictEquals); 1758 1759 napi_value testObject = nullptr; 1760 napi_create_object(env, &testObject); 1761 isStrictEquals = false; 1762 napi_strict_equals(env, testObject, testObject, &isStrictEquals); 1763 ASSERT_TRUE(isStrictEquals); 1764} 1765 1766/** 1767 * @tc.name: CreateRuntimeTest001 1768 * @tc.desc: Test create runtime. 1769 * @tc.type: FUNC 1770 */ 1771HWTEST_F(NapiBasicTest, CreateRuntimeTest001, testing::ext::TestSize.Level1) 1772{ 1773 napi_env env = (napi_env)engine_; 1774 1775 napi_env newEnv = nullptr; 1776 napi_create_runtime(env, &newEnv); 1777} 1778 1779/** 1780 * @tc.name: SerializeDeSerializeTest001 1781 * @tc.desc: Test serialize & deserialize. 1782 * @tc.type: FUNC 1783 */ 1784HWTEST_F(NapiBasicTest, SerializeDeSerializeTest001, testing::ext::TestSize.Level1) 1785{ 1786 napi_env env = (napi_env)engine_; 1787 1788 napi_value undefined = nullptr; 1789 napi_get_undefined(env, &undefined); 1790 1791 napi_value num = nullptr; 1792 uint32_t value = 1000; 1793 napi_create_uint32(env, value, &num); 1794 void* data = nullptr; 1795 napi_serialize_inner(env, num, undefined, undefined, false, true, &data); 1796 ASSERT_NE(data, nullptr); 1797 1798 napi_value result = nullptr; 1799 napi_deserialize(env, data, &result); 1800 ASSERT_CHECK_VALUE_TYPE(env, result, napi_number); 1801 napi_delete_serialization_data(env, data); 1802 int32_t resultData = 0; 1803 napi_get_value_int32(env, result, &resultData); 1804 ASSERT_EQ(resultData, 1000); 1805} 1806 1807/** 1808 * @tc.name: SerializeDeSerializeTest002 1809 * @tc.desc: Test serialize & deserialize. 1810 * @tc.type: FUNC 1811 */ 1812HWTEST_F(NapiBasicTest, SerializeDeSerializeTest002, testing::ext::TestSize.Level1) 1813{ 1814 napi_env env = (napi_env)engine_; 1815 1816 napi_value undefined = nullptr; 1817 napi_get_undefined(env, &undefined); 1818 1819 napi_value num = nullptr; 1820 uint32_t value = 1000; 1821 napi_create_uint32(env, value, &num); 1822 void* data = nullptr; 1823 napi_serialize_inner(env, num, undefined, undefined, false, true, &data); 1824 ASSERT_NE(data, nullptr); 1825 1826 napi_value result1 = nullptr; 1827 napi_deserialize(env, data, &result1); 1828 ASSERT_CHECK_VALUE_TYPE(env, result1, napi_number); 1829 int32_t resultData1 = 0; 1830 napi_get_value_int32(env, result1, &resultData1); 1831 ASSERT_EQ(resultData1, 1000); 1832 1833 napi_value result2 = nullptr; 1834 napi_deserialize(env, data, &result2); 1835 ASSERT_CHECK_VALUE_TYPE(env, result2, napi_number); 1836 int32_t resultData2 = 0; 1837 napi_get_value_int32(env, result2, &resultData2); 1838 ASSERT_EQ(resultData2, 1000); 1839 1840 napi_delete_serialization_data(env, data); 1841} 1842 1843/** 1844 * @tc.name: SerializeDeSerializeTest003 1845 * @tc.desc: Test nativeBinding object type. 1846 * @tc.type: FUNC 1847 */ 1848HWTEST_F(NapiBasicTest, SerializeDeSerializeTest003, testing::ext::TestSize.Level1) 1849{ 1850 napi_env env = (napi_env)engine_; 1851 napi_value object = nullptr; 1852 napi_create_object(env, &object); 1853 napi_value hint = nullptr; 1854 napi_create_object(env, &hint); 1855 napi_value object1 = nullptr; 1856 napi_create_object(env, &object1); 1857 napi_status status = napi_coerce_to_native_binding_object(env, object, 1858 TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), reinterpret_cast<void*>(hint)); 1859 ASSERT_EQ(status, napi_status::napi_ok); 1860 napi_value undefined = nullptr; 1861 napi_get_undefined(env, &undefined); 1862 void* data = nullptr; 1863 napi_serialize_inner(env, object, undefined, undefined, false, true, &data); 1864 ASSERT_NE(data, nullptr); 1865 1866 napi_value result1 = nullptr; 1867 napi_deserialize(env, data, &result1); 1868 ASSERT_CHECK_VALUE_TYPE(env, result1, napi_object); 1869 napi_value number1 = nullptr; 1870 napi_get_named_property(env, result1, "number", &number1); 1871 ASSERT_CHECK_VALUE_TYPE(env, number1, napi_number); 1872 uint32_t numData1 = 0; 1873 napi_get_value_uint32(env, number1, &numData1); 1874 ASSERT_EQ(numData1, 2000); 1875 1876 napi_value result2 = nullptr; 1877 napi_deserialize(env, data, &result2); 1878 ASSERT_CHECK_VALUE_TYPE(env, result2, napi_object); 1879 napi_value number2 = nullptr; 1880 napi_get_named_property(env, result2, "number", &number2); 1881 ASSERT_CHECK_VALUE_TYPE(env, number2, napi_number); 1882 uint32_t numData2 = 0; 1883 napi_get_value_uint32(env, number2, &numData2); 1884 ASSERT_EQ(numData2, 2000); 1885 1886 napi_delete_serialization_data(env, data); 1887} 1888 1889/** 1890 * @tc.name: SerializeDeSerializeTest004 1891 * @tc.desc: Test nativeBinding object type. 1892 * @tc.type: FUNC 1893 */ 1894HWTEST_F(NapiBasicTest, SerializeDeSerializeTest004, testing::ext::TestSize.Level1) 1895{ 1896 napi_env env = (napi_env)engine_; 1897 1898 napi_value object = nullptr; 1899 napi_create_object(env, &object); 1900 napi_value num = nullptr; 1901 uint32_t value = 1000; 1902 napi_create_uint32(env, value, &num); 1903 napi_set_named_property(env, object, "numKey", num); 1904 napi_value obj = nullptr; 1905 napi_create_object(env, &obj); 1906 napi_set_named_property(env, object, "objKey", obj); 1907 1908 napi_value undefined = nullptr; 1909 napi_get_undefined(env, &undefined); 1910 void* data = nullptr; 1911 napi_serialize_inner(env, object, undefined, undefined, false, true, &data); 1912 ASSERT_NE(data, nullptr); 1913 1914 napi_value result1 = nullptr; 1915 napi_deserialize(env, data, &result1); 1916 ASSERT_CHECK_VALUE_TYPE(env, result1, napi_object); 1917 napi_value obj1 = nullptr; 1918 napi_get_named_property(env, result1, "objKey", &obj1); 1919 ASSERT_CHECK_VALUE_TYPE(env, obj1, napi_object); 1920 1921 napi_value result2 = nullptr; 1922 napi_deserialize(env, data, &result2); 1923 ASSERT_CHECK_VALUE_TYPE(env, result2, napi_object); 1924 napi_value num1 = nullptr; 1925 napi_get_named_property(env, result2, "numKey", &num1); 1926 uint32_t value1 = 0; 1927 napi_get_value_uint32(env, num1, &value1); 1928 ASSERT_EQ(value1, 1000); 1929 1930 napi_delete_serialization_data(env, data); 1931} 1932 1933/** 1934 * @tc.name: SerializeDeSerializeTest005 1935 * @tc.desc: Test serialize & deserialize. 1936 * @tc.type: FUNC 1937 */ 1938HWTEST_F(NapiBasicTest, SerializeDeSerializeTest005, testing::ext::TestSize.Level1) 1939{ 1940 napi_env env = (napi_env)engine_; 1941 1942 napi_value undefined = nullptr; 1943 napi_get_undefined(env, &undefined); 1944 1945 napi_value num = nullptr; 1946 uint32_t value = 1000; 1947 napi_create_uint32(env, value, &num); 1948 void* data = nullptr; 1949 napi_serialize(env, num, undefined, undefined, &data); 1950 ASSERT_NE(data, nullptr); 1951 1952 napi_value result = nullptr; 1953 napi_deserialize(env, data, &result); 1954 ASSERT_CHECK_VALUE_TYPE(env, result, napi_number); 1955 napi_delete_serialization_data(env, data); 1956 int32_t resultData = 0; 1957 napi_get_value_int32(env, result, &resultData); 1958 ASSERT_EQ(resultData, 1000); 1959} 1960 1961/** 1962 * @tc.name: SerializeDeSerializeTest006 1963 * @tc.desc: Test serialize & deserialize. 1964 * @tc.type: FUNC 1965 */ 1966HWTEST_F(NapiBasicTest, SerializeDeSerializeTest006, testing::ext::TestSize.Level1) 1967{ 1968 napi_env env = (napi_env)engine_; 1969 1970 napi_value undefined = nullptr; 1971 napi_get_undefined(env, &undefined); 1972 1973 napi_value num = nullptr; 1974 uint32_t value = 1000; 1975 napi_create_uint32(env, value, &num); 1976 void* data = nullptr; 1977 napi_serialize(env, num, undefined, undefined, &data); 1978 ASSERT_NE(data, nullptr); 1979 1980 napi_value result1 = nullptr; 1981 napi_deserialize(env, data, &result1); 1982 ASSERT_CHECK_VALUE_TYPE(env, result1, napi_number); 1983 int32_t resultData1 = 0; 1984 napi_get_value_int32(env, result1, &resultData1); 1985 ASSERT_EQ(resultData1, 1000); 1986 1987 napi_value result2 = nullptr; 1988 napi_deserialize(env, data, &result2); 1989 ASSERT_CHECK_VALUE_TYPE(env, result2, napi_number); 1990 int32_t resultData2 = 0; 1991 napi_get_value_int32(env, result2, &resultData2); 1992 ASSERT_EQ(resultData2, 1000); 1993 1994 napi_delete_serialization_data(env, data); 1995} 1996 1997/** 1998 * @tc.name: SerializeDeSerializeTest007 1999 * @tc.desc: Test nativeBinding object type. 2000 * @tc.type: FUNC 2001 */ 2002HWTEST_F(NapiBasicTest, SerializeDeSerializeTest007, testing::ext::TestSize.Level1) 2003{ 2004 napi_env env = (napi_env)engine_; 2005 napi_value object = nullptr; 2006 napi_create_object(env, &object); 2007 napi_value hint = nullptr; 2008 napi_create_object(env, &hint); 2009 napi_value object1 = nullptr; 2010 napi_create_object(env, &object1); 2011 napi_status status = napi_coerce_to_native_binding_object(env, object, 2012 TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), reinterpret_cast<void*>(hint)); 2013 ASSERT_EQ(status, napi_status::napi_ok); 2014 napi_value undefined = nullptr; 2015 napi_get_undefined(env, &undefined); 2016 void* data = nullptr; 2017 napi_serialize(env, object, undefined, undefined, &data); 2018 ASSERT_NE(data, nullptr); 2019 2020 napi_value result1 = nullptr; 2021 napi_deserialize(env, data, &result1); 2022 ASSERT_CHECK_VALUE_TYPE(env, result1, napi_object); 2023 napi_value number1 = nullptr; 2024 napi_get_named_property(env, result1, "number", &number1); 2025 ASSERT_CHECK_VALUE_TYPE(env, number1, napi_number); 2026 uint32_t numData1 = 0; 2027 napi_get_value_uint32(env, number1, &numData1); 2028 ASSERT_EQ(numData1, 2000); 2029 2030 napi_value result2 = nullptr; 2031 napi_deserialize(env, data, &result2); 2032 ASSERT_CHECK_VALUE_TYPE(env, result2, napi_object); 2033 napi_value number2 = nullptr; 2034 napi_get_named_property(env, result2, "number", &number2); 2035 ASSERT_CHECK_VALUE_TYPE(env, number2, napi_number); 2036 uint32_t numData2 = 0; 2037 napi_get_value_uint32(env, number2, &numData2); 2038 ASSERT_EQ(numData2, 2000); 2039 2040 napi_delete_serialization_data(env, data); 2041} 2042 2043/** 2044 * @tc.name: SerializeDeSerializeTest008 2045 * @tc.desc: Test nativeBinding object type. 2046 * @tc.type: FUNC 2047 */ 2048HWTEST_F(NapiBasicTest, SerializeDeSerializeTest008, testing::ext::TestSize.Level1) 2049{ 2050 napi_env env = (napi_env)engine_; 2051 2052 napi_value object = nullptr; 2053 napi_create_object(env, &object); 2054 napi_value num = nullptr; 2055 uint32_t value = 1000; 2056 napi_create_uint32(env, value, &num); 2057 napi_set_named_property(env, object, "numKey", num); 2058 napi_value obj = nullptr; 2059 napi_create_object(env, &obj); 2060 napi_set_named_property(env, object, "objKey", obj); 2061 2062 napi_value undefined = nullptr; 2063 napi_get_undefined(env, &undefined); 2064 void* data = nullptr; 2065 napi_serialize(env, object, undefined, undefined, &data); 2066 ASSERT_NE(data, nullptr); 2067 2068 napi_value result1 = nullptr; 2069 napi_deserialize(env, data, &result1); 2070 ASSERT_CHECK_VALUE_TYPE(env, result1, napi_object); 2071 napi_value obj1 = nullptr; 2072 napi_get_named_property(env, result1, "objKey", &obj1); 2073 ASSERT_CHECK_VALUE_TYPE(env, obj1, napi_object); 2074 2075 napi_value result2 = nullptr; 2076 napi_deserialize(env, data, &result2); 2077 ASSERT_CHECK_VALUE_TYPE(env, result2, napi_object); 2078 napi_value num1 = nullptr; 2079 napi_get_named_property(env, result2, "numKey", &num1); 2080 uint32_t value1 = 0; 2081 napi_get_value_uint32(env, num1, &value1); 2082 ASSERT_EQ(value1, 1000); 2083 2084 napi_delete_serialization_data(env, data); 2085} 2086 2087/** 2088 * @tc.name: IsCallableTest001 2089 * @tc.desc: Test is callable. 2090 * @tc.type: FUNC 2091 */ 2092HWTEST_F(NapiBasicTest, IsCallableTest001, testing::ext::TestSize.Level1) 2093{ 2094 napi_env env = (napi_env)engine_; 2095 2096 auto func = [](napi_env env, napi_callback_info info) -> napi_value { 2097 napi_value thisVar; 2098 napi_value* argv = nullptr; 2099 size_t argc = 0; 2100 void* data = nullptr; 2101 2102 napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr); 2103 if (argc > 0) { 2104 argv = new napi_value[argc]; 2105 } 2106 napi_get_cb_info(env, info, &argc, argv, &thisVar, &data); 2107 2108 napi_value result = nullptr; 2109 napi_create_object(env, &result); 2110 2111 napi_value messageKey = nullptr; 2112 const char* messageKeyStr = "message"; 2113 napi_create_string_latin1(env, messageKeyStr, strlen(messageKeyStr), &messageKey); 2114 napi_value messageValue = nullptr; 2115 const char* messageValueStr = "OK"; 2116 napi_create_string_latin1(env, messageValueStr, strlen(messageValueStr), &messageValue); 2117 napi_set_property(env, result, messageKey, messageValue); 2118 2119 if (argv != nullptr) { 2120 delete []argv; 2121 } 2122 return result; 2123 }; 2124 2125 napi_value funcValue = nullptr; 2126 napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, func, nullptr, &funcValue); 2127 ASSERT_NE(funcValue, nullptr); 2128 2129 bool result = false; 2130 napi_is_callable(env, funcValue, &result); 2131 ASSERT_TRUE(result); 2132} 2133 2134/** 2135 * @tc.name: EncodeToUtf8Test001 2136 * @tc.desc: Test EncodeToUtf8 Func. 2137 * @tc.type: FUNC 2138 */ 2139HWTEST_F(NapiBasicTest, EncodeToUtf8Test001, testing::ext::TestSize.Level1) 2140{ 2141 napi_env env = (napi_env)engine_; 2142 std::string str = "encode"; 2143 napi_value testStr = nullptr; 2144 napi_create_string_utf8(env, str.c_str(), str.length(), &testStr); 2145 char* buffer = new char[str.length()]; 2146 size_t bufferSize = str.length(); 2147 uint32_t written = 0; 2148 int32_t nchars = 0; 2149 ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK); 2150 engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars); 2151 ASSERT_EQ(written, 6); 2152 ASSERT_EQ(nchars, 6); 2153 delete[] buffer; 2154 2155 str = "encode\xc2\xab\xe2\x98\x80"; 2156 testStr = nullptr; 2157 napi_create_string_utf8(env, str.c_str(), str.length(), &testStr); 2158 buffer = new char[str.length()]; 2159 bufferSize = str.length(); 2160 ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK); 2161 engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars); 2162 ASSERT_EQ(written, 11); 2163 ASSERT_EQ(nchars, 8); 2164 delete[] buffer; 2165 2166 buffer = new char[str.length()]; 2167 bufferSize = str.length(); 2168 ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK); 2169 bufferSize--; 2170 engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars); 2171 ASSERT_EQ(written, 8); 2172 ASSERT_EQ(nchars, 7); 2173 delete[] buffer; 2174 2175 buffer = new char[str.length()]; 2176 bufferSize = str.length(); 2177 ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK); 2178 bufferSize -= 4; 2179 engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars); 2180 ASSERT_EQ(written, 6); 2181 ASSERT_EQ(nchars, 6); 2182 delete[] buffer; 2183 2184 str = "encode\xc2\xab\xe2\x98\x80t"; 2185 testStr = nullptr; 2186 napi_create_string_utf8(env, str.c_str(), str.length(), &testStr); 2187 buffer = new char[str.length()]; 2188 bufferSize = str.length(); 2189 ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK); 2190 bufferSize--; 2191 engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars); 2192 ASSERT_EQ(written, 11); 2193 ASSERT_EQ(nchars, 8); 2194 delete[] buffer; 2195 2196 str = ""; 2197 testStr = nullptr; 2198 napi_create_string_utf8(env, str.c_str(), str.length(), &testStr); 2199 buffer = new char[str.length() + 1]; 2200 bufferSize = str.length() + 1; 2201 ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK); 2202 engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars); 2203 ASSERT_EQ(written, 0); 2204 ASSERT_EQ(nchars, 0); 2205 delete[] buffer; 2206} 2207 2208/** 2209 * @tc.name: WrapWithSizeTest001 2210 * @tc.desc: Test wrap with size. 2211 * @tc.type: FUNC 2212 */ 2213HWTEST_F(NapiBasicTest, WrapWithSizeTest001, testing::ext::TestSize.Level1) 2214{ 2215 napi_env env = (napi_env)engine_; 2216 2217 napi_value testWrapClass = nullptr; 2218 napi_define_class( 2219 env, "TestWrapClass", NAPI_AUTO_LENGTH, 2220 [](napi_env env, napi_callback_info info) -> napi_value { 2221 napi_value thisVar = nullptr; 2222 napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); 2223 2224 return thisVar; 2225 }, 2226 nullptr, 0, nullptr, &testWrapClass); 2227 2228 napi_value instanceValue = nullptr; 2229 napi_new_instance(env, testWrapClass, 0, nullptr, &instanceValue); 2230 2231 const char* testWrapStr = "testWrapStr"; 2232 size_t size = sizeof(*testWrapStr) / sizeof(char); 2233 napi_wrap_with_size( 2234 env, instanceValue, (void*)testWrapStr, [](napi_env env, void* data, void* hint) {}, nullptr, nullptr, size); 2235 2236 char* tempTestStr = nullptr; 2237 napi_unwrap(env, instanceValue, (void**)&tempTestStr); 2238 ASSERT_STREQ(testWrapStr, tempTestStr); 2239 2240 char* tempTestStr1 = nullptr; 2241 napi_remove_wrap(env, instanceValue, (void**)&tempTestStr1); 2242 ASSERT_STREQ(testWrapStr, tempTestStr1); 2243 2244} 2245 2246/** 2247 * @tc.name: CreateExternalWithSizeTest001 2248 * @tc.desc: Test create external with size. 2249 * @tc.type: FUNC 2250 */ 2251HWTEST_F(NapiBasicTest, CreateExternalWithSizeTest001, testing::ext::TestSize.Level1) 2252{ 2253 napi_env env = (napi_env)engine_; 2254 const char testStr[] = "test"; 2255 size_t size = sizeof(testStr) / sizeof(char); 2256 napi_value external = nullptr; 2257 napi_create_external_with_size( 2258 env, (void*)testStr, 2259 [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); }, 2260 (void*)testStr, &external, size); 2261 2262 ASSERT_CHECK_VALUE_TYPE(env, external, napi_external); 2263 void* tempExternal = nullptr; 2264 napi_get_value_external(env, external, &tempExternal); 2265 ASSERT_TRUE(tempExternal); 2266 ASSERT_EQ(tempExternal, testStr); 2267} 2268 2269/** 2270 * @tc.name: BigArrayTest001 2271 * @tc.desc: Test is big int64 array and big uint64 array. 2272 * @tc.type: FUNC 2273 */ 2274HWTEST_F(NapiBasicTest, BigArrayTest001, testing::ext::TestSize.Level1) { 2275 napi_env env = (napi_env) engine_; 2276 2277 napi_value array = nullptr; 2278 napi_create_array(env, &array); 2279 ASSERT_NE(array, nullptr); 2280 bool isArray = false; 2281 napi_is_array(env, array, &isArray); 2282 ASSERT_TRUE(isArray); 2283 2284 bool isBigInt64Array = true; 2285 napi_is_big_int64_array(env, array, &isBigInt64Array); 2286 ASSERT_EQ(isBigInt64Array, false); 2287 2288 bool isBigUInt64Array = true; 2289 napi_is_big_uint64_array(env, array, &isBigUInt64Array); 2290 ASSERT_EQ(isBigUInt64Array, false); 2291} 2292 2293/** 2294 * @tc.name: CreateBufferTest001 2295 * @tc.desc: Test is CreateBuffer. 2296 * @tc.type: FUNC 2297 */ 2298HWTEST_F(NapiBasicTest, CreateBufferTest001, testing::ext::TestSize.Level1) 2299{ 2300 napi_env env = (napi_env)engine_; 2301 2302 napi_value buffer = nullptr; 2303 void* bufferPtr = nullptr; 2304 size_t bufferSize = -1; 2305 napi_status creatresult = napi_create_buffer(env, bufferSize, &bufferPtr, &buffer); 2306 2307 ASSERT_EQ(creatresult, napi_status::napi_invalid_arg); 2308 ASSERT_EQ(bufferPtr, nullptr); 2309} 2310 2311/** 2312 * @tc.name: CreateBufferTest002 2313 * @tc.desc: Test is CreateBuffer. 2314 * @tc.type: FUNC 2315 */ 2316HWTEST_F(NapiBasicTest, CreateBufferTest002, testing::ext::TestSize.Level1) 2317{ 2318 napi_env env = (napi_env)engine_; 2319 2320 napi_value buffer = nullptr; 2321 void* bufferPtr = nullptr; 2322 const char* data = nullptr; 2323 size_t bufferSize = -1; 2324 napi_status creatresult = napi_create_buffer_copy(env, bufferSize, data, &bufferPtr, &buffer); 2325 2326 ASSERT_EQ(creatresult, napi_status::napi_invalid_arg); 2327 ASSERT_EQ(bufferPtr, nullptr); 2328} 2329 2330/** 2331 * @tc.name: CreateBufferTest003 2332 * @tc.desc: Test is CreateBuffer. 2333 * @tc.type: FUNC 2334 */ 2335HWTEST_F(NapiBasicTest, CreateBufferTest003, testing::ext::TestSize.Level1) 2336{ 2337 napi_env env = reinterpret_cast<napi_env>(engine_); 2338 napi_value buffer = nullptr; 2339 void* bufferPtr = nullptr; 2340 size_t bufferSize = 1; 2341 napi_status creatresult = napi_create_buffer(env, bufferSize, &bufferPtr, &buffer); 2342 ASSERT_EQ(creatresult, napi_status::napi_ok); 2343 creatresult = napi_create_buffer(env, bufferSize, nullptr, &buffer); 2344 ASSERT_EQ(creatresult, napi_status::napi_invalid_arg); 2345} 2346 2347/** 2348 * @tc.name: CreateBufferTest004 2349 * @tc.desc: Test is CreateBufferCopy. 2350 * @tc.type: FUNC 2351 */ 2352HWTEST_F(NapiBasicTest, CreateBufferTest004, testing::ext::TestSize.Level1) 2353{ 2354 napi_env env = reinterpret_cast<napi_env>(engine_); 2355 2356 napi_value buffer = nullptr; 2357 void* bufferPtr = nullptr; 2358 const char* data = nullptr; 2359 size_t bufferSize = 1; 2360 napi_status creatresult = napi_create_buffer_copy(env, bufferSize, nullptr, &bufferPtr, &buffer); 2361 ASSERT_EQ(creatresult, napi_status::napi_invalid_arg); 2362 creatresult = napi_create_buffer_copy(env, bufferSize, data, &bufferPtr, nullptr); 2363 ASSERT_EQ(creatresult, napi_status::napi_invalid_arg); 2364} 2365 2366/** 2367 * @tc.name: IsDetachedArrayBufferTest001 2368 * @tc.desc: Test is DetachedArrayBuffer. 2369 * @tc.type: FUNC 2370 */ 2371HWTEST_F(NapiBasicTest, IsDetachedArrayBufferTest001, testing::ext::TestSize.Level1) 2372{ 2373 static constexpr size_t arrayBufferSize = 1024; 2374 napi_env env = (napi_env)engine_; 2375 napi_value arrayBuffer = nullptr; 2376 void* arrayBufferPtr = nullptr; 2377 napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer); 2378 2379 bool result = false; 2380 ASSERT_CHECK_CALL(napi_is_detached_arraybuffer(env, arrayBuffer, &result)); 2381 2382 auto out = napi_detach_arraybuffer(env, arrayBuffer); 2383 if (out == napi_ok) { 2384 arrayBufferPtr = nullptr; 2385 } 2386 ASSERT_EQ(out, napi_ok); 2387 2388 result = false; 2389 ASSERT_CHECK_CALL(napi_is_detached_arraybuffer(env, arrayBuffer, &result)); 2390 ASSERT_TRUE(result); 2391} 2392 2393/** 2394 * @tc.name: FreezeObjectTest001 2395 * @tc.desc: Test is FreezeObject. 2396 * @tc.type: FUNC 2397 */ 2398HWTEST_F(NapiBasicTest, FreezeObjectTest001, testing::ext::TestSize.Level1) 2399{ 2400 constexpr int dataSize = 60; 2401 napi_env env = (napi_env)engine_; 2402 napi_value object = nullptr; 2403 napi_create_object(env, &object); 2404 2405 const char testStr[] = "1234567"; 2406 napi_value strAttribute = nullptr; 2407 napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute); 2408 napi_set_named_property(env, object, "strAttribute", strAttribute); 2409 2410 int32_t testNumber = 1; 2411 napi_value numberAttribute = nullptr; 2412 napi_create_int32(env, testNumber, &numberAttribute); 2413 napi_set_named_property(env, object, "numberAttribute", numberAttribute); 2414 2415 ASSERT_CHECK_CALL(napi_object_freeze(env, object)); 2416 2417 int32_t testNumber2 = 0; 2418 napi_value numberAttribute2 = nullptr; 2419 napi_create_int32(env, testNumber2, &numberAttribute2); 2420 // Set property after freezed will throw 'Cannot add property in prevent extensions'. 2421 napi_status status = napi_set_named_property(env, object, "test", numberAttribute2); 2422 ASSERT_EQ(status, napi_pending_exception); 2423 2424 napi_value ex; 2425 napi_get_and_clear_last_exception(env, &ex); 2426 2427 napi_key_collection_mode keyMode = napi_key_own_only; 2428 napi_key_filter keyFilter = napi_key_all_properties; 2429 napi_key_conversion keyConversion = napi_key_keep_numbers; 2430 napi_value propNames = nullptr; 2431 ASSERT_CHECK_CALL(napi_get_all_property_names(env, object, keyMode, keyFilter, keyConversion, &propNames)); 2432 2433 uint32_t arrayLength = 0; 2434 ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength)); 2435 ASSERT_EQ(arrayLength, MAX_BUFFER_SIZE); 2436 2437 char names[2][30]; 2438 memset_s(names, dataSize, 0, dataSize); 2439 auto ret = memcpy_s(names[0], strlen("strAttribute"), "strAttribute", strlen("strAttribute")); 2440 ASSERT_EQ(ret, EOK); 2441 ret = memcpy_s(names[1], strlen("numberAttribute"), "numberAttribute", strlen("numberAttribute")); 2442 ASSERT_EQ(ret, EOK); 2443 for (uint32_t i = 0; i < arrayLength; i++) { 2444 bool hasElement = false; 2445 ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement)); 2446 2447 napi_value propName = nullptr; 2448 ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName)); 2449 ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string); 2450 2451 size_t testStrLength = TEST_STR_LENGTH; 2452 char testStrInner[TEST_STR_LENGTH + 1]; 2453 size_t outStrLength = 0; 2454 memset_s(testStrInner, testStrLength + 1, 0, testStrLength + 1); 2455 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, propName, testStrInner, testStrLength, &outStrLength)); 2456 2457 int ret = strcmp(testStrInner, names[i]); 2458 ASSERT_EQ(ret, 0); 2459 } 2460} 2461 2462/** 2463 * @tc.name: SealObjectTest001 2464 * @tc.desc: Test is SealObject. 2465 * @tc.type: FUNC 2466 */ 2467HWTEST_F(NapiBasicTest, SealObjectTest001, testing::ext::TestSize.Level1) 2468{ 2469 napi_env env = (napi_env)engine_; 2470 napi_value object = nullptr; 2471 2472 napi_create_object(env, &object); 2473 2474 const char testStr[] = "1234567"; 2475 napi_value strAttribute = nullptr; 2476 napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute); 2477 napi_set_named_property(env, object, "strAttribute", strAttribute); 2478 2479 int32_t testNumber = 1; 2480 napi_value numberAttribute = nullptr; 2481 napi_create_int32(env, testNumber, &numberAttribute); 2482 napi_set_named_property(env, object, "numberAttribute", numberAttribute); 2483 2484 ASSERT_CHECK_CALL(napi_object_seal(env, object)); 2485 2486 bool testDeleted = false; 2487 ASSERT_CHECK_CALL(napi_delete_property(env, object, strAttribute, &testDeleted)); 2488 ASSERT_TRUE(testDeleted); 2489 2490 const char modifiedStr[] = "modified"; 2491 napi_value modifiedValue = nullptr; 2492 napi_create_string_utf8(env, modifiedStr, strlen(modifiedStr), &modifiedValue); 2493 ASSERT_CHECK_CALL(napi_set_named_property(env, object, "strAttribute", modifiedValue)); 2494 2495 napi_value strAttribute2 = nullptr; 2496 napi_get_named_property(env, object, "strAttribute", &strAttribute2); 2497 char buffer[TEST_STR_LENGTH] = {0}; 2498 size_t length = 0; 2499 napi_status status = napi_get_value_string_utf8(env, strAttribute2, buffer, sizeof(buffer) - 1, &length); 2500 ASSERT_EQ(status, napi_ok); 2501 ASSERT_EQ(length, strlen(modifiedStr)); 2502 ASSERT_EQ(strcmp(buffer, modifiedStr), 0); 2503 2504 napi_key_collection_mode keyMode = napi_key_own_only; 2505 napi_key_filter keyFilter = napi_key_all_properties; 2506 napi_key_conversion keyConversion = napi_key_keep_numbers; 2507 napi_value propNames = nullptr; 2508 ASSERT_CHECK_CALL(napi_get_all_property_names(env, object, keyMode, keyFilter, keyConversion, &propNames)); 2509 2510 uint32_t arrayLength = 0; 2511 ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength)); 2512 ASSERT_EQ(arrayLength, MAX_BUFFER_SIZE); 2513 2514 char names[2][TEST_STR_LENGTH]; 2515 // There are 2 elements in the string array, 2516 // so the parameter is set to TEST_STR_LENGTH * 2 to clear the entire array. 2517 memset_s(names, TEST_STR_LENGTH * 2, 0, TEST_STR_LENGTH * 2); 2518 auto ret = memcpy_s(names[0], strlen("strAttribute"), "strAttribute", strlen("strAttribute")); 2519 ASSERT_EQ(ret, EOK); 2520 ret = memcpy_s(names[1], strlen("numberAttribute"), "numberAttribute", strlen("numberAttribute")); 2521 ASSERT_EQ(ret, EOK); 2522 2523 for (uint32_t i = 0; i < arrayLength; i++) { 2524 bool hasElement = false; 2525 ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement)); 2526 2527 napi_value propName = nullptr; 2528 ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName)); 2529 ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string); 2530 2531 size_t testStrLength = TEST_STR_LENGTH; 2532 char testStrInner[TEST_STR_LENGTH + 1]; 2533 size_t outStrLength = 0; 2534 memset_s(testStrInner, testStrLength + 1, 0, testStrLength + 1); 2535 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, propName, testStrInner, testStrLength, &outStrLength)); 2536 2537 int ret = strcmp(testStrInner, names[i]); 2538 ASSERT_EQ(ret, 0); 2539 } 2540} 2541 2542/** 2543 * @tc.name: AllPropertyNamesTest001 2544 * @tc.desc: Test is AllPropertyNames. 2545 * @tc.type: FUNC 2546 */ 2547HWTEST_F(NapiBasicTest, AllPropertyNamesTest001, testing::ext::TestSize.Level1) 2548{ 2549 napi_env env = (napi_env)engine_; 2550 napi_key_collection_mode keyMode = napi_key_own_only; 2551 napi_key_filter keyFilter = napi_key_all_properties; 2552 napi_key_conversion keyConversion = napi_key_keep_numbers; 2553 napi_value result = nullptr; 2554 napi_value propNames = nullptr; 2555 2556 ASSERT_CHECK_CALL(napi_create_object(env, &result)); 2557 ASSERT_CHECK_VALUE_TYPE(env, result, napi_object); 2558 2559 const char testStr[] = "1234567"; 2560 napi_value strAttribute = nullptr; 2561 napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute); 2562 napi_set_named_property(env, result, "strAttribute", strAttribute); 2563 2564 int32_t testNumber = 1; 2565 napi_value numberAttribute = nullptr; 2566 napi_create_int32(env, testNumber, &numberAttribute); 2567 napi_set_named_property(env, result, "numberAttribute", numberAttribute); 2568 2569 ASSERT_CHECK_CALL(napi_get_all_property_names(env, result, keyMode, keyFilter, keyConversion, &propNames)); 2570 2571 ASSERT_CHECK_VALUE_TYPE(env, propNames, napi_object); 2572 bool isArray = false; 2573 ASSERT_CHECK_CALL(napi_is_array(env, propNames, &isArray)); 2574 ASSERT_TRUE(isArray); 2575 uint32_t arrayLength = 0; 2576 ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength)); 2577 ASSERT_EQ(arrayLength, MAX_BUFFER_SIZE); 2578 2579 char names[2][TEST_STR_LENGTH]; 2580 // There are 2 elements in the string array, 2581 // so the parameter is set to TEST_STR_LENGTH * 2 to clear the entire array. 2582 memset_s(names, TEST_STR_LENGTH * 2, 0, TEST_STR_LENGTH * 2); 2583 auto ret = memcpy_s(names[0], strlen("strAttribute"), "strAttribute", strlen("strAttribute")); 2584 ASSERT_EQ(ret, EOK); 2585 ret = memcpy_s(names[1], strlen("numberAttribute"), "numberAttribute", strlen("numberAttribute")); 2586 ASSERT_EQ(ret, EOK); 2587 2588 for (uint32_t i = 0; i < arrayLength; i++) { 2589 bool hasElement = false; 2590 ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement)); 2591 2592 napi_value propName = nullptr; 2593 ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName)); 2594 ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string); 2595 2596 size_t testStrLength = TEST_STR_LENGTH; 2597 char testStrInner[TEST_STR_LENGTH + 1]; 2598 size_t outStrLength = 0; 2599 memset_s(testStrInner, testStrLength + 1, 0, testStrLength + 1); 2600 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, propName, testStrInner, testStrLength, &outStrLength)); 2601 2602 int ret = strcmp(testStrInner, names[i]); 2603 ASSERT_EQ(ret, 0); 2604 } 2605} 2606 2607/** 2608 * @tc.name: AllPropertyNamesTest002 2609 * @tc.desc: Test is AllPropertyNames. 2610 * @tc.type: FUNC 2611 */ 2612HWTEST_F(NapiBasicTest, AllPropertyNamesTest002, testing::ext::TestSize.Level1) 2613{ 2614 napi_env env = (napi_env)engine_; 2615 napi_key_collection_mode keyMode = napi_key_own_only; 2616 napi_key_filter keyFilter = napi_key_writable; 2617 napi_key_conversion keyConversion = napi_key_keep_numbers; 2618 napi_value result = nullptr; 2619 napi_value propNames = nullptr; 2620 // Create napi_values for 123, 456 and 789 2621 napi_value unenumerAble, writAble, configurAble; 2622 napi_create_int32(env, 123, &unenumerAble); 2623 napi_create_int32(env, 456, &writAble); 2624 napi_create_int32(env, 789, &configurAble); 2625 2626 napi_property_descriptor descriptors[] = { 2627 {"unenumerable", 2628 nullptr, nullptr, nullptr, nullptr, unenumerAble, 2629 napi_default_method, nullptr}, 2630 {"writable", 2631 nullptr, nullptr, nullptr, nullptr, writAble, 2632 static_cast<napi_property_attributes>(napi_enumerable | napi_writable), nullptr}, 2633 {"configurable", 2634 nullptr, nullptr, nullptr, nullptr, configurAble, 2635 static_cast<napi_property_attributes>(napi_enumerable | napi_configurable), nullptr} 2636 }; 2637 2638 ASSERT_CHECK_CALL(napi_create_object(env, &result)); 2639 ASSERT_CHECK_VALUE_TYPE(env, result, napi_object); 2640 ASSERT_CHECK_CALL(napi_define_properties(env, result, sizeof(descriptors) / sizeof(descriptors[0]), descriptors)); 2641 2642 const char testStr[] = "1234567"; 2643 napi_value strAttribute = nullptr; 2644 napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute); 2645 napi_set_named_property(env, result, "strAttribute", strAttribute); 2646 2647 int32_t testNumber = 1; 2648 napi_value numberAttribute = nullptr; 2649 napi_create_int32(env, testNumber, &numberAttribute); 2650 napi_set_named_property(env, result, "numberAttribute", numberAttribute); 2651 2652 ASSERT_CHECK_CALL(napi_get_all_property_names(env, result, keyMode, keyFilter, keyConversion, &propNames)); 2653 2654 ASSERT_CHECK_VALUE_TYPE(env, propNames, napi_object); 2655 bool isArray = false; 2656 ASSERT_CHECK_CALL(napi_is_array(env, propNames, &isArray)); 2657 ASSERT_TRUE(isArray); 2658 uint32_t arrayLength = 0; 2659 ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength)); 2660 ASSERT_EQ(arrayLength, 4); // 4 means array length. 2661 2662 char names[4][TEST_STR_LENGTH]; 2663 // There are 4 elements in the string array, 2664 // so the parameter is set to TEST_STR_LENGTH * 4 to clear the entire array. 2665 memset_s(names, TEST_STR_LENGTH * 4, 0, TEST_STR_LENGTH * 4); 2666 auto ret = memcpy_s(names[0], strlen("unenumerable"), "unenumerable", strlen("unenumerable")); 2667 ASSERT_EQ(ret, EOK); 2668 ret = memcpy_s(names[1], strlen("writable"), "writable", strlen("writable")); 2669 ASSERT_EQ(ret, EOK); 2670 ret = memcpy_s(names[2], strlen("strAttribute"), "strAttribute", strlen("strAttribute")); 2671 ASSERT_EQ(ret, EOK); 2672 ret = memcpy_s(names[3], strlen("numberAttribute"), "numberAttribute", strlen("numberAttribute")); 2673 ASSERT_EQ(ret, EOK); 2674 2675 for (uint32_t i = 0; i < arrayLength; i++) { 2676 bool hasElement = false; 2677 ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement)); 2678 2679 napi_value propName = nullptr; 2680 ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName)); 2681 ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string); 2682 2683 size_t testStrLength = TEST_STR_LENGTH; 2684 char testStrInner[TEST_STR_LENGTH + 1]; 2685 size_t outStrLength = 0; 2686 memset_s(testStrInner, testStrLength + 1, 0, testStrLength + 1); 2687 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, propName, testStrInner, testStrLength, &outStrLength)); 2688 2689 int ret = strcmp(testStrInner, names[i]); 2690 ASSERT_EQ(ret, 0); 2691 } 2692} 2693 2694/** 2695 * @tc.name: StringUtf16Test001 2696 * @tc.desc: Test is Chinese space character special character truncation. 2697 * @tc.type: FUNC 2698 */ 2699HWTEST_F(NapiBasicTest, StringUtf16Test001, testing::ext::TestSize.Level1) 2700{ 2701 napi_env env = reinterpret_cast<napi_env>(engine_); 2702 const char16_t testStr[] = u"中文,English,123456,!@#$%$#^%&12345 "; 2703 int testStrLength = static_cast<int>(std::char_traits<char16_t>::length(testStr)); 2704 napi_value result = nullptr; 2705 ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &result)); 2706 ASSERT_CHECK_VALUE_TYPE(env, result, napi_string); 2707 2708 char16_t* buffer = nullptr; 2709 size_t bufferSize = 0; 2710 size_t strLength = 0; 2711 ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, nullptr, 0, &bufferSize)); 2712 ASSERT_GT(bufferSize, 0); 2713 buffer = new char16_t[bufferSize + 1] { 0 }; 2714 ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, buffer, bufferSize + 1, &strLength)); 2715 for (int i = 0; i < testStrLength; i++) { 2716 ASSERT_EQ(testStr[i], buffer[i]); 2717 } 2718 ASSERT_EQ(testStrLength, strLength); 2719 delete[] buffer; 2720 buffer = nullptr; 2721 2722 char16_t* bufferShort = nullptr; 2723 int bufferShortSize = 3; 2724 bufferShort = new char16_t[bufferShortSize] { 0 }; 2725 ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, bufferShort, bufferShortSize, &strLength)); 2726 for (int i = 0; i < bufferShortSize; i++) { 2727 if (i == (bufferShortSize - 1)) { 2728 ASSERT_EQ(0, bufferShort[i]); 2729 } else { 2730 ASSERT_EQ(testStr[i], bufferShort[i]); 2731 } 2732 } 2733 ASSERT_EQ(strLength, MAX_BUFFER_SIZE); 2734 delete[] bufferShort; 2735 bufferShort = nullptr; 2736} 2737 2738/** 2739 * @tc.name: StringUtf16Test002 2740 * @tc.desc: Test string type. 2741 * @tc.type: FUNC 2742 */ 2743HWTEST_F(NapiBasicTest, StringUtf16Test002, testing::ext::TestSize.Level2) 2744{ 2745 napi_env env = reinterpret_cast<napi_env>(engine_); 2746 char16_t testStr[] = u"ut.utf16test.napi.!@#%中^&*()6666"; 2747 int testStrLength = static_cast<int>(std::char_traits<char16_t>::length(testStr)); 2748 napi_value result = nullptr; 2749 { 2750 napi_status ret = napi_create_string_utf16(env, nullptr, testStrLength, &result); 2751 ASSERT_EQ(ret, napi_status::napi_invalid_arg); 2752 } 2753 { 2754 napi_status ret = napi_create_string_utf16(env, testStr, (size_t)INT_MAX + 1, &result); 2755 ASSERT_EQ(ret, napi_status::napi_invalid_arg); 2756 } 2757} 2758 2759/** 2760 * @tc.name: StringUtf16Test003 2761 * @tc.desc: Test string type. 2762 * @tc.type: FUNC 2763 */ 2764HWTEST_F(NapiBasicTest, StringUtf16Test003, testing::ext::TestSize.Level2) 2765{ 2766 napi_env env = reinterpret_cast<napi_env>(engine_); 2767 char16_t testStr[] = u"ut.utf16test.napi.!@#$%^&*123"; 2768 size_t testStrLength = static_cast<size_t>(std::char_traits<char16_t>::length(testStr)); 2769 char16_t buffer[] = u"12345"; 2770 size_t bufferSize = 0; 2771 size_t copied = 0; 2772 napi_value result = nullptr; 2773 2774 ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &result)); 2775 ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, buffer, bufferSize, &copied)); 2776 2777 for (size_t i = 0; i < MAX_BUFFER_SIZE; i++) { 2778 ASSERT_NE(buffer[i], testStr[i]); 2779 } 2780} 2781 2782/** 2783 * @tc.name: StringUtf16Test004 2784 * @tc.desc: Test string type. 2785 * @tc.type: FUNC 2786 */ 2787HWTEST_F(NapiBasicTest, StringUtf16Test004, testing::ext::TestSize.Level2) 2788{ 2789 napi_env env = reinterpret_cast<napi_env>(engine_); 2790 char16_t buffer[BUFFER_SIZE_FIVE]; 2791 int testStrLength = static_cast<int>(std::char_traits<char16_t>::length(buffer)); 2792 size_t copied; 2793 int64_t testValue = INT64_MAX; 2794 napi_value result = nullptr; 2795 2796 ASSERT_CHECK_CALL(napi_create_bigint_int64(env, testValue, &result)); 2797 ASSERT_CHECK_VALUE_TYPE(env, result, napi_bigint); 2798 2799 napi_status ret = napi_get_value_string_utf16(env, result, buffer, testStrLength, &copied); 2800 ASSERT_EQ(ret, napi_status::napi_string_expected); 2801} 2802 2803/** 2804 * @tc.name: StringUtf16Test005 2805 * @tc.desc: Test string type. 2806 * @tc.type: FUNC 2807 */ 2808HWTEST_F(NapiBasicTest, StringUtf16Test005, testing::ext::TestSize.Level2) 2809{ 2810 napi_env env = reinterpret_cast<napi_env>(engine_); 2811 char16_t testStr[] = u"ut.utf16test.napi.!@#$%^&*123"; 2812 int testStrLength = static_cast<int>(std::char_traits<char16_t>::length(testStr)); 2813 char16_t buffer[testStrLength]; 2814 size_t copied; 2815 napi_value result = nullptr; 2816 2817 napi_status ret = napi_get_value_string_utf16(env, result, buffer, testStrLength, &copied); 2818 ASSERT_EQ(ret, napi_status::napi_invalid_arg); 2819} 2820 2821/** 2822 * @tc.name: StringUtf16Test006 2823 * @tc.desc: Test string length. 2824 * @tc.type: FUNC 2825 */ 2826HWTEST_F(NapiBasicTest, StringUtf16Test006, testing::ext::TestSize.Level1) 2827{ 2828 napi_env env = reinterpret_cast<napi_env>(engine_); 2829 char16_t testStr[] = u"ut.utf16test.napi.!@#$%^&*123"; 2830 size_t testStrLength = static_cast<size_t>(std::char_traits<char16_t>::length(testStr)); 2831 size_t copied = 0; 2832 napi_value result = nullptr; 2833 2834 ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &result)); 2835 ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, nullptr, testStrLength, &copied)); 2836 2837 ASSERT_EQ(testStrLength, copied); 2838} 2839 2840/** 2841 * @tc.name: StringUtf8Test001 2842 * @tc.desc: Test string type. 2843 * @tc.type: FUNC 2844 */ 2845HWTEST_F(NapiBasicTest, StringUtf8Test001, testing::ext::TestSize.Level2) 2846{ 2847 napi_env env = reinterpret_cast<napi_env>(engine_); 2848 const char testStr[] = "ut.utf8test.napi.!@#%中^&*()6666"; 2849 size_t testStrLength = strlen(testStr); 2850 2851 napi_status ret = napi_create_string_utf8(env, testStr, testStrLength, nullptr); 2852 ASSERT_EQ(ret, napi_status::napi_invalid_arg); 2853} 2854 2855/** 2856 * @tc.name: StringUtf8Test002 2857 * @tc.desc: Test string type. 2858 * @tc.type: FUNC 2859 */ 2860HWTEST_F(NapiBasicTest, StringUtf8Test002, testing::ext::TestSize.Level2) 2861{ 2862 napi_env env = reinterpret_cast<napi_env>(engine_); 2863 char buffer[BUFFER_SIZE_FIVE] = { 0 }; 2864 size_t testStrLength = strlen(buffer); 2865 size_t copied; 2866 napi_value result = nullptr; 2867 napi_get_boolean(env, true, &result); 2868 ASSERT_CHECK_VALUE_TYPE(env, result, napi_boolean); 2869 2870 napi_status ret = napi_get_value_string_utf8(env, result, buffer, testStrLength, &copied); 2871 ASSERT_EQ(ret, napi_status::napi_string_expected); 2872} 2873 2874/** 2875 * @tc.name: StringUtf8Test003 2876 * @tc.desc: Test string type. 2877 * @tc.type: FUNC 2878 */ 2879HWTEST_F(NapiBasicTest, StringUtf8Test003, testing::ext::TestSize.Level2) 2880{ 2881 napi_env env = reinterpret_cast<napi_env>(engine_); 2882 const char testStr[] = "ut.utf8test.napi.!@#$%^&*123"; 2883 size_t testStrLength = strlen(testStr); 2884 char buffer[testStrLength]; 2885 size_t copied; 2886 napi_value result = nullptr; 2887 2888 napi_status ret = napi_get_value_string_utf8(env, result, buffer, testStrLength, &copied); 2889 ASSERT_EQ(ret, napi_status::napi_invalid_arg); 2890} 2891 2892/** 2893 * @tc.name: StringUtf8Test004 2894 * @tc.desc: Test string length. 2895 * @tc.type: FUNC 2896 */ 2897HWTEST_F(NapiBasicTest, StringUtf8Test004, testing::ext::TestSize.Level1) 2898{ 2899 napi_env env = reinterpret_cast<napi_env>(engine_); 2900 const char testStr[] = "ut.utf8test.napi.!@#$%^&*123"; 2901 size_t testStrLength = strlen(testStr); 2902 size_t copied = 0; 2903 napi_value result = nullptr; 2904 2905 ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &result)); 2906 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, nullptr, testStrLength, &copied)); 2907 2908 ASSERT_EQ(testStrLength, copied); 2909} 2910 2911/** 2912 * @tc.name: StringLatin1Test001 2913 * @tc.desc: Test string type. 2914 * @tc.type: FUNC 2915 */ 2916HWTEST_F(NapiBasicTest, StringLatin1Test001, testing::ext::TestSize.Level1) 2917{ 2918 napi_env env = reinterpret_cast<napi_env>(engine_); 2919 const char testStr[] = "ut.latin1test.napi.!@#%^&*()6666"; 2920 size_t testStrLength = strlen(testStr); 2921 napi_value result = nullptr; 2922 ASSERT_CHECK_CALL(napi_create_string_latin1(env, testStr, testStrLength, &result)); 2923 ASSERT_CHECK_VALUE_TYPE(env, result, napi_string); 2924 2925 char* buffer = nullptr; 2926 size_t bufferSize = 0; 2927 size_t strLength = 0; 2928 ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, nullptr, 0, &bufferSize)); 2929 ASSERT_GT(bufferSize, 0); 2930 buffer = new char[bufferSize + 1]{ 0 }; 2931 ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, buffer, bufferSize + 1, &strLength)); 2932 ASSERT_STREQ(testStr, buffer); 2933 ASSERT_EQ(testStrLength, strLength); 2934 delete []buffer; 2935 buffer = nullptr; 2936} 2937 2938/** 2939 * @tc.name: StringLatin1Test002 2940 * @tc.desc: Test string type. 2941 * @tc.type: FUNC 2942 */ 2943HWTEST_F(NapiBasicTest, StringLatin1Test002, testing::ext::TestSize.Level1) 2944{ 2945 napi_env env = reinterpret_cast<napi_env>(engine_); 2946 const char testStr[] = "ut.latin1test.中文测试"; 2947 size_t testStrLength = strlen(testStr); 2948 napi_value result = nullptr; 2949 ASSERT_CHECK_CALL(napi_create_string_latin1(env, testStr, testStrLength, &result)); 2950 ASSERT_CHECK_VALUE_TYPE(env, result, napi_string); 2951 2952 char* buffer = nullptr; 2953 size_t bufferSize = 0; 2954 size_t strLength = 0; 2955 ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, nullptr, 0, &bufferSize)); 2956 ASSERT_GT(bufferSize, 0); 2957 buffer = new char[bufferSize + 1]{ 0 }; 2958 ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, buffer, bufferSize + 1, &strLength)); 2959 ASSERT_STRNE(testStr, buffer); 2960 ASSERT_GT(testStrLength, strLength); 2961 delete []buffer; 2962 buffer = nullptr; 2963} 2964 2965/** 2966 * @tc.name: StringLatin1Test003 2967 * @tc.desc: Test string type. 2968 * @tc.type: FUNC 2969 */ 2970HWTEST_F(NapiBasicTest, StringLatin1Test003, testing::ext::TestSize.Level2) 2971{ 2972 napi_env env = reinterpret_cast<napi_env>(engine_); 2973 napi_value result = nullptr; 2974 2975 const char testStr[] = "ut.latin1test.napi.!@#%^&*()6666"; 2976 size_t testStrLength = strlen(testStr); 2977 2978 napi_status ret = napi_create_string_latin1(env, nullptr, testStrLength, &result); 2979 ASSERT_EQ(ret, napi_status::napi_invalid_arg); 2980} 2981 2982/** 2983 * @tc.name: StringLatin1Test004 2984 * @tc.desc: Test string type. 2985 * @tc.type: FUNC 2986 */ 2987HWTEST_F(NapiBasicTest, StringLatin1Test004, testing::ext::TestSize.Level2) 2988{ 2989 napi_env env = reinterpret_cast<napi_env>(engine_); 2990 napi_value result = nullptr; 2991 2992 const char testStr[] = "ut.latin1test.napi.!@#%^&*()6666"; 2993 2994 napi_status ret = napi_create_string_latin1(env, testStr, 0, &result); 2995 ASSERT_EQ(ret, napi_status::napi_ok); 2996 2997 size_t bufferSize = 0; 2998 ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, nullptr, 0, &bufferSize)); 2999 ASSERT_EQ(bufferSize, 0); 3000} 3001 3002/** 3003 * @tc.name: StringLatin1Test005 3004 * @tc.desc: Test string type. 3005 * @tc.type: FUNC 3006 */ 3007HWTEST_F(NapiBasicTest, StringLatin1Test005, testing::ext::TestSize.Level2) 3008{ 3009 napi_env env = reinterpret_cast<napi_env>(engine_); 3010 char buffer[BUFFER_SIZE_FIVE] = { 0 }; 3011 size_t testStrLength = strlen(buffer); 3012 size_t copied; 3013 napi_value result = nullptr; 3014 napi_get_boolean(env, true, &result); 3015 ASSERT_CHECK_VALUE_TYPE(env, result, napi_boolean); 3016 3017 napi_status ret = napi_get_value_string_latin1(env, result, buffer, testStrLength, &copied); 3018 ASSERT_EQ(ret, napi_status::napi_string_expected); 3019} 3020 3021/** 3022 * @tc.name: StringLatin1Test006 3023 * @tc.desc: Test string type. 3024 * @tc.type: FUNC 3025 */ 3026HWTEST_F(NapiBasicTest, StringLatin1Test006, testing::ext::TestSize.Level2) 3027{ 3028 napi_env env = reinterpret_cast<napi_env>(engine_); 3029 const char testStr[] = "ut.latin1test.napi.!@#$%^&*123"; 3030 size_t testStrLength = strlen(testStr); 3031 char buffer[testStrLength]; 3032 size_t copied; 3033 napi_value result = nullptr; 3034 3035 napi_status ret = napi_get_value_string_latin1(env, result, buffer, testStrLength, &copied); 3036 ASSERT_EQ(ret, napi_status::napi_invalid_arg); 3037} 3038 3039/** 3040 * @tc.name: StringLatin1Test007 3041 * @tc.desc: Test string type. 3042 * @tc.type: FUNC 3043 */ 3044HWTEST_F(NapiBasicTest, StringLatin1Test007, testing::ext::TestSize.Level1) 3045{ 3046 napi_env env = reinterpret_cast<napi_env>(engine_); 3047 const char testStr[] = "ut.latin1test.napi.!@#$%^&*123"; 3048 size_t testStrLength = strlen(testStr); 3049 size_t copied = 0; 3050 napi_value result = nullptr; 3051 3052 ASSERT_CHECK_CALL(napi_create_string_latin1(env, testStr, testStrLength, &result)); 3053 ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, nullptr, testStrLength, &copied)); 3054 3055 ASSERT_EQ(testStrLength, copied); 3056} 3057 3058/** 3059 * @tc.name: ToStringTest001 3060 * @tc.desc: Test string type of str. 3061 * @tc.type: FUNC 3062 */ 3063HWTEST_F(NapiBasicTest, ToStringTest001, testing::ext::TestSize.Level1) 3064{ 3065 napi_env env = reinterpret_cast<napi_env>(engine_); 3066 const char testStr[] = "中文,English,123456,!@#$%$#^%&"; 3067 size_t testStrLength = strlen(testStr); 3068 napi_value str = nullptr; 3069 ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &str)); 3070 ASSERT_CHECK_VALUE_TYPE(env, str, napi_string); 3071 3072 napi_value result = nullptr; 3073 ASSERT_CHECK_CALL(napi_coerce_to_string(env, str, &result)); 3074 char* buffer = nullptr; 3075 size_t bufferSize = 0; 3076 size_t strLength = 0; 3077 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize)); 3078 ASSERT_GT(bufferSize, 0); 3079 buffer = new char[bufferSize + 1]{ 0 }; 3080 ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength)); 3081 ASSERT_STREQ(testStr, buffer); 3082 ASSERT_EQ(testStrLength, strLength); 3083 delete []buffer; 3084 buffer = nullptr; 3085} 3086 3087/** 3088 * @tc.name: ToStringTest002 3089 * @tc.desc: Test string type of undefined. 3090 * @tc.type: FUNC 3091 */ 3092HWTEST_F(NapiBasicTest, ToStringTest002, testing::ext::TestSize.Level1) 3093{ 3094 napi_env env = reinterpret_cast<napi_env>(engine_); 3095 napi_value argument; 3096 napi_get_undefined(env, &argument); 3097 ASSERT_CHECK_VALUE_TYPE(env, argument, napi_undefined); 3098 3099 napi_value result; 3100 ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result)); 3101 3102 const char expected[] = "undefined"; 3103 size_t expectedLength = strlen(expected); 3104 char* buffer = nullptr; 3105 size_t bufferSize = 0; 3106 size_t strLength = 0; 3107 napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize); 3108 ASSERT_GT(bufferSize, 0); 3109 buffer = new char[bufferSize + 1]{ 0 }; 3110 napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength); 3111 ASSERT_EQ(expectedLength, strLength); 3112 ASSERT_STREQ(expected, buffer); 3113 delete []buffer; 3114 buffer = nullptr; 3115} 3116 3117/** 3118 * @tc.name: ToStringTest003 3119 * @tc.desc: Test string type of null. 3120 * @tc.type: FUNC 3121 */ 3122HWTEST_F(NapiBasicTest, ToStringTest003, testing::ext::TestSize.Level1) 3123{ 3124 napi_env env = reinterpret_cast<napi_env>(engine_); 3125 napi_value argument; 3126 napi_get_null(env, &argument); 3127 ASSERT_CHECK_VALUE_TYPE(env, argument, napi_null); 3128 3129 napi_value result; 3130 ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result)); 3131 3132 const char expected[] = "null"; 3133 size_t expectedLength = strlen(expected); 3134 char* buffer = nullptr; 3135 size_t bufferSize = 0; 3136 size_t strLength = 0; 3137 napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize); 3138 ASSERT_GT(bufferSize, 0); 3139 buffer = new char[bufferSize + 1]{ 0 }; 3140 napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength); 3141 ASSERT_EQ(expectedLength, strLength); 3142 ASSERT_STREQ(expected, buffer); 3143 delete []buffer; 3144 buffer = nullptr; 3145} 3146 3147/** 3148 * @tc.name: ToStringTest004 3149 * @tc.desc: Test string type of bool. 3150 * @tc.type: FUNC 3151 */ 3152HWTEST_F(NapiBasicTest, ToStringTest004, testing::ext::TestSize.Level1) 3153{ 3154 napi_env env = reinterpret_cast<napi_env>(engine_); 3155 napi_value argument; 3156 napi_get_boolean(env, true, &argument); 3157 ASSERT_CHECK_VALUE_TYPE(env, argument, napi_boolean); 3158 3159 napi_value result; 3160 ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result)); 3161 3162 const char expected[] = "true"; 3163 size_t expectedLength = strlen(expected); 3164 char* buffer = nullptr; 3165 size_t bufferSize = 0; 3166 size_t strLength = 0; 3167 napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize); 3168 ASSERT_GT(bufferSize, 0); 3169 buffer = new char[bufferSize + 1]{ 0 }; 3170 napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength); 3171 ASSERT_EQ(expectedLength, strLength); 3172 ASSERT_STREQ(expected, buffer); 3173 delete []buffer; 3174 buffer = nullptr; 3175} 3176 3177/** 3178 * @tc.name: ToStringTest005 3179 * @tc.desc: Test string type of number. 3180 * @tc.type: FUNC 3181 */ 3182HWTEST_F(NapiBasicTest, ToStringTest005, testing::ext::TestSize.Level1) 3183{ 3184 napi_env env = reinterpret_cast<napi_env>(engine_); 3185 napi_value argument; 3186 double number = 0.1; 3187 napi_create_double(env, number, &argument); 3188 ASSERT_CHECK_VALUE_TYPE(env, argument, napi_number); 3189 3190 napi_value result; 3191 ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result)); 3192 3193 double numberValue; 3194 napi_get_value_double(env, argument, &numberValue); 3195 std::string expected = std::to_string(numberValue); 3196 // Remove excess '0' after delimiter 3197 while (!expected.empty() && expected.back() == '0') 3198 { 3199 expected.pop_back(); 3200 } 3201 3202 size_t expectedLength = expected.length(); 3203 char* buffer = nullptr; 3204 size_t bufferSize = 0; 3205 size_t strLength = 0; 3206 napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize); 3207 ASSERT_GT(bufferSize, 0); 3208 buffer = new char[bufferSize + 1]{ 0 }; 3209 napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength); 3210 ASSERT_EQ(expectedLength, strLength); 3211 ASSERT_STREQ(expected.c_str(), buffer); 3212 delete []buffer; 3213 buffer = nullptr; 3214} 3215 3216/** 3217 * @tc.name: ToStringTest006 3218 * @tc.desc: Test string type of bigint. 3219 * @tc.type: FUNC 3220 */ 3221HWTEST_F(NapiBasicTest, ToStringTest006, testing::ext::TestSize.Level1) 3222{ 3223 napi_env env = reinterpret_cast<napi_env>(engine_); 3224 int64_t testValue = INT64_MAX; 3225 napi_value argument; 3226 bool flag = false; 3227 ASSERT_CHECK_CALL(napi_create_bigint_int64(env, testValue, &argument)); 3228 ASSERT_CHECK_VALUE_TYPE(env, argument, napi_bigint); 3229 3230 napi_value result; 3231 ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result)); 3232 3233 int64_t numberValue = 0; 3234 ASSERT_CHECK_CALL(napi_get_value_bigint_int64(env, argument, &numberValue, &flag)); 3235 ASSERT_EQ(numberValue, INT64_MAX); 3236 ASSERT_TRUE(flag); 3237 std::string expected = std::to_string(numberValue); 3238 3239 size_t expectedLength = expected.length(); 3240 char* buffer = nullptr; 3241 size_t bufferSize = 0; 3242 size_t strLength = 0; 3243 napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize); 3244 ASSERT_GT(bufferSize, 0); 3245 buffer = new char[bufferSize + 1]{ 0 }; 3246 napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength); 3247 ASSERT_EQ(expectedLength, strLength); 3248 ASSERT_STREQ(expected.c_str(), buffer); 3249 delete []buffer; 3250 buffer = nullptr; 3251} 3252 3253/** 3254 * @tc.name: ToStringTest007 3255 * @tc.desc: Test string type of symbol. 3256 * @tc.type: FUNC 3257 */ 3258HWTEST_F(NapiBasicTest, ToStringTest007, testing::ext::TestSize.Level1) 3259{ 3260 napi_env env = reinterpret_cast<napi_env>(engine_); 3261 const char testStr[] = "testSymbol"; 3262 size_t testStrLength = strlen(testStr); 3263 napi_value testSymbol = nullptr; 3264 napi_create_string_utf8(env, testStr, testStrLength, &testSymbol); 3265 napi_value symbolVal = nullptr; 3266 napi_create_symbol(env, testSymbol, &symbolVal); 3267 ASSERT_CHECK_VALUE_TYPE(env, symbolVal, napi_symbol); 3268 3269 napi_value result = nullptr; 3270 ASSERT_CHECK_CALL(napi_coerce_to_string(env, symbolVal, &result)); 3271 ASSERT_CHECK_VALUE_TYPE(env, result, napi_undefined); 3272} 3273 3274/** 3275 * @tc.name: ToStringTest001 3276 * @tc.desc: Test string type. 3277 * @tc.type: FUNC 3278 */ 3279HWTEST_F(NapiBasicTest, ToStringTest008, testing::ext::TestSize.Level1) 3280{ 3281 napi_env env = reinterpret_cast<napi_env>(engine_); 3282 3283 napi_value result; 3284 napi_status status = napi_coerce_to_string(env, nullptr, &result); 3285 ASSERT_EQ(status, napi_status::napi_invalid_arg); 3286} 3287 3288/** 3289 * @tc.name: InstanceDataTest_001 3290 * @tc.desc: Test instance type. 3291 * @tc.type: FUNC 3292 */ 3293struct AddonDataTest { 3294 size_t value; 3295 bool print; 3296 napi_ref jsCbRef; 3297}; 3298 3299static void DeleteAddonData(napi_env env, void* rawData, void* hint) 3300{ 3301 AddonDataTest* data = reinterpret_cast<AddonDataTest*>(rawData); 3302 if (data->print) { 3303 printf("deleting addon data\n"); 3304 } 3305 if (data->jsCbRef != nullptr) { 3306 NAPI_CALL_RETURN_VOID(env, napi_delete_reference(env, data->jsCbRef)); 3307 } 3308 free(data); 3309} 3310 3311static napi_value SetPrintOnDelete(napi_env env, napi_callback_info info) 3312{ 3313 AddonDataTest* data; 3314 NAPI_CALL(env, napi_get_instance_data(env, (void**)&data)); 3315 data->print = true; 3316 return nullptr; 3317} 3318 3319static void TestFinalizer(napi_env env, void* rawData, void* hint) 3320{ 3321 (void)rawData; 3322 (void)hint; 3323 3324 AddonDataTest* data; 3325 napi_value jsResult; 3326 NAPI_CALL_RETURN_VOID(env, napi_get_instance_data(env, (void**)&data)); 3327 napi_value jsCb; 3328 napi_value value; 3329 NAPI_CALL_RETURN_VOID(env, napi_get_reference_value(env, data->jsCbRef, &jsCb)); 3330 NAPI_CALL_RETURN_VOID(env, napi_get_undefined(env, &value)); 3331 NAPI_CALL_RETURN_VOID(env, napi_call_function(env, value, jsCb, 0, nullptr, &jsResult)); 3332 3333 NAPI_CALL_RETURN_VOID(env, napi_delete_reference(env, data->jsCbRef)); 3334 data->jsCbRef = nullptr; 3335} 3336 3337static napi_value ObjectWithFinalizer(napi_env env, napi_callback_info info) 3338{ 3339 AddonDataTest* data; 3340 3341 napi_value value; 3342 napi_value jsCb; 3343 size_t argc = 1; 3344 3345 auto func = [](napi_env env, napi_callback_info info) -> napi_value { 3346 return nullptr; 3347 }; 3348 3349 napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, func, nullptr, &jsCb); 3350 3351 NAPI_CALL(env, napi_get_instance_data(env, (void**)&data)); 3352 NAPI_ASSERT(env, data->jsCbRef == nullptr, "reference must be nullptr"); 3353 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, &jsCb, nullptr, nullptr)); 3354 NAPI_CALL(env, napi_create_object(env, &value)); 3355 NAPI_CALL(env, napi_add_finalizer(env, value, nullptr, TestFinalizer, nullptr, nullptr)); 3356 NAPI_CALL(env, napi_create_reference(env, jsCb, 1, &data->jsCbRef)); 3357 return nullptr; 3358} 3359 3360HWTEST_F(NapiBasicTest, InstanceDataTest_001, testing::ext::TestSize.Level1) 3361{ 3362 napi_env env = reinterpret_cast<napi_env>(engine_); 3363 // Set instance data 3364 AddonDataTest* data = new AddonDataTest(); 3365 data->value = 41; 3366 data->print = false; 3367 data->jsCbRef = nullptr; 3368 ASSERT_CHECK_CALL(napi_set_instance_data(env, data, DeleteAddonData, nullptr)); 3369 3370 // Test get instance data 3371 AddonDataTest* getData = nullptr; 3372 ASSERT_CHECK_CALL(napi_get_instance_data(env, (void**)&getData)); 3373 ++getData->value; 3374 const size_t expectValue = 42; 3375 ASSERT_EQ(getData->value, expectValue); 3376 3377 // Test finalizer 3378 SetPrintOnDelete(env, nullptr); 3379 ObjectWithFinalizer(env, nullptr); 3380} 3381 3382/** 3383 * @tc.name: AsyncInitTest001. 3384 * @tc.desc: Test napi_async_init, napi_async_destroy. 3385 * @tc.type: FUNC 3386 */ 3387HWTEST_F(NapiBasicTest, AsyncInitTest001, testing::ext::TestSize.Level1) 3388{ 3389 napi_env env = reinterpret_cast<napi_env>(engine_); 3390 3391 napi_value name; 3392 NAPI_CALL_RETURN_VOID(env, napi_create_string_utf8(env, "ACE_napi_async_init_Test_001", 3393 NAPI_AUTO_LENGTH, &name)); 3394 3395 napi_async_context context = nullptr; 3396 napi_status ret = napi_async_init(env, nullptr, name, &context); 3397 ASSERT_EQ(ret, napi_ok); 3398 EXPECT_NE(context, nullptr); 3399 3400 ret = napi_async_destroy(env, context); 3401 ASSERT_EQ(ret, napi_ok); 3402} 3403 3404/** 3405 * @tc.name: AsyncInitTest002 3406 * @tc.desc: Test napi_async_init with invalid arguments. 3407 * @tc.type: FUNC 3408 */ 3409HWTEST_F(NapiBasicTest, AsyncInitTest002, testing::ext::TestSize.Level1) 3410{ 3411 napi_env env = reinterpret_cast<napi_env>(engine_); 3412 3413 napi_value resourceName; 3414 NAPI_CALL_RETURN_VOID(env, napi_create_string_utf8(env, "test", NAPI_AUTO_LENGTH, &resourceName)); 3415 3416 napi_async_context* contextPtr = nullptr; 3417 napi_status status = napi_async_init(env, nullptr, resourceName, contextPtr); 3418 EXPECT_EQ(status, napi_invalid_arg); 3419} 3420 3421/** 3422 * @tc.name: OpenCallbackScopeTest001 3423 * @tc.desc: Test napi_open_callback_scope, napi_close_callback_scope. 3424 * @tc.type: FUNC 3425 */ 3426HWTEST_F(NapiBasicTest, OpenCallbackScopeTest001, testing::ext::TestSize.Level1) 3427{ 3428 napi_env envOne = reinterpret_cast<napi_env>(engine_); 3429 3430 auto callbackScopeManager = engine_->GetCallbackScopeManager(); 3431 ASSERT_NE(callbackScopeManager, nullptr); 3432 3433 int openCallbackScopesBefore = callbackScopeManager->GetOpenCallbackScopes(); 3434 int asyncCallbackScopeDepthBefore = callbackScopeManager->GetAsyncCallbackScopeDepth(); 3435 3436 napi_value resourceName; 3437 NAPI_CALL_RETURN_VOID(envOne, napi_create_string_utf8(envOne, "test", NAPI_AUTO_LENGTH, &resourceName)); 3438 3439 napi_async_context context; 3440 NAPI_CALL_RETURN_VOID(envOne, napi_async_init(envOne, nullptr, resourceName, &context)); 3441 3442 napi_callback_scope scope = nullptr; 3443 napi_status ret = napi_open_callback_scope(envOne, nullptr, context, &scope); 3444 EXPECT_EQ(ret, napi_ok); 3445 EXPECT_NE(scope, nullptr); 3446 3447 int openCallbackScopes = callbackScopeManager->GetOpenCallbackScopes(); 3448 int asyncCallbackScopeDepth = callbackScopeManager->GetAsyncCallbackScopeDepth(); 3449 EXPECT_EQ(openCallbackScopes, (openCallbackScopesBefore + 1)); 3450 EXPECT_EQ(asyncCallbackScopeDepth, (asyncCallbackScopeDepthBefore + 1)); 3451 3452 ret = napi_close_callback_scope(envOne, scope); 3453 EXPECT_EQ(ret, napi_ok); 3454 3455 int openCallbackScopesAfter = callbackScopeManager->GetOpenCallbackScopes(); 3456 int asyncCallbackScopeDepthAfter = callbackScopeManager->GetAsyncCallbackScopeDepth(); 3457 EXPECT_EQ(openCallbackScopesAfter, openCallbackScopesBefore); 3458 EXPECT_EQ(asyncCallbackScopeDepthAfter, asyncCallbackScopeDepthBefore); 3459 3460 NAPI_CALL_RETURN_VOID(envOne, napi_async_destroy(envOne, context)); 3461} 3462 3463/** 3464 * @tc.name: OpenCallbackScopeTest002 3465 * @tc.desc: Test napi_open_callback_scope, napi_close_callback_scope. 3466 * @tc.type: FUNC 3467 */ 3468HWTEST_F(NapiBasicTest, OpenCallbackScopeTest002, testing::ext::TestSize.Level1) 3469{ 3470 napi_env envOne = reinterpret_cast<napi_env>(engine_); 3471 3472 auto callbackScopeManager = engine_->GetCallbackScopeManager(); 3473 ASSERT_NE(callbackScopeManager, nullptr); 3474 3475 int openCallbackScopesBefore = callbackScopeManager->GetOpenCallbackScopes(); 3476 int asyncCallbackScopeDepthBefore = callbackScopeManager->GetAsyncCallbackScopeDepth(); 3477 3478 napi_value resourceName; 3479 NAPI_CALL_RETURN_VOID(envOne, napi_create_string_utf8(envOne, "test", NAPI_AUTO_LENGTH, &resourceName)); 3480 3481 napi_async_context context; 3482 NAPI_CALL_RETURN_VOID(envOne, napi_async_init(envOne, nullptr, resourceName, &context)); 3483 3484 napi_callback_scope scope = nullptr; 3485 napi_status res = napi_open_callback_scope(envOne, nullptr, context, &scope); 3486 EXPECT_EQ(res, napi_ok); 3487 EXPECT_NE(scope, nullptr); 3488 3489 int openCallbackScopesOne = callbackScopeManager->GetOpenCallbackScopes(); 3490 int asyncCallbackScopeDepthOne = callbackScopeManager->GetAsyncCallbackScopeDepth(); 3491 3492 // Open a internal callback scope 3493 panda::Local<panda::ObjectRef> obj = panda::ObjectRef::New(engine_->GetEcmaVm()); 3494 auto scopeTwo = callbackScopeManager->Open(engine_, obj, {0, 0}); 3495 int openCallbackScopesTwo = callbackScopeManager->GetOpenCallbackScopes(); 3496 int asyncCallbackScopeDepthTwo = callbackScopeManager->GetAsyncCallbackScopeDepth(); 3497 3498 EXPECT_NE(scopeTwo, nullptr); 3499 EXPECT_EQ(openCallbackScopesTwo, openCallbackScopesOne); 3500 EXPECT_EQ(asyncCallbackScopeDepthTwo, (asyncCallbackScopeDepthOne + 1)); 3501 3502 callbackScopeManager->Close(scopeTwo); 3503 obj->Delete(engine_->GetEcmaVm(), obj); 3504 int openCallbackScopesAfterTwo = callbackScopeManager->GetOpenCallbackScopes(); 3505 int asyncCallbackScopeDepthAfterTwo = callbackScopeManager->GetAsyncCallbackScopeDepth(); 3506 3507 EXPECT_EQ(openCallbackScopesAfterTwo, openCallbackScopesOne); 3508 EXPECT_EQ(asyncCallbackScopeDepthAfterTwo, asyncCallbackScopeDepthOne); 3509 3510 res = napi_close_callback_scope(envOne, scope); 3511 EXPECT_EQ(res, napi_ok); 3512 3513 int openCallbackScopesAfter = callbackScopeManager->GetOpenCallbackScopes(); 3514 int asyncCallbackScopeDepthAfter = callbackScopeManager->GetAsyncCallbackScopeDepth(); 3515 3516 EXPECT_EQ(openCallbackScopesAfter, openCallbackScopesBefore); 3517 EXPECT_EQ(asyncCallbackScopeDepthAfter, asyncCallbackScopeDepthBefore); 3518 3519 NAPI_CALL_RETURN_VOID(envOne, napi_async_destroy(envOne, context)); 3520} 3521 3522static void ExpectCheckCall(napi_status call) 3523{ 3524 EXPECT_EQ(call, napi_ok); 3525} 3526 3527static void Cleanup(void* arg) 3528{ 3529 g_hookTag += INT_ONE; 3530 if (arg != nullptr) { 3531 } 3532} 3533 3534static void CleanupCopy(void* arg) 3535{ 3536 g_hookTagcp += INT_ONE; 3537 if (arg != nullptr) { 3538 } 3539} 3540 3541/** 3542 * @tc.name: AddEnvCleanupHook001 3543 * @tc.desc: Test napi_add_env_cleanup_hook 3544 * @tc.type: FUNC 3545 */ 3546HWTEST_F(NapiBasicTest, AddEnvCleanupHook001, testing::ext::TestSize.Level1) 3547{ 3548 std::this_thread::sleep_for(std::chrono::seconds(2)); 3549 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3550 g_hookTag = INT_ZERO; 3551 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3552 engine_->RunCleanup(); 3553 EXPECT_EQ(g_hookTag, INT_ONE); 3554} 3555 3556/** 3557 * @tc.name: AddEnvCleanupHook002 3558 * @tc.desc: Test napi_add_env_cleanup_hook 3559 * @tc.type: FUNC 3560 */ 3561HWTEST_F(NapiBasicTest, AddEnvCleanupHook002, testing::ext::TestSize.Level2) 3562{ 3563 napi_env env = reinterpret_cast<napi_env>(engine_); 3564 napi_status res = napi_invalid_arg; 3565 res = napi_add_env_cleanup_hook(env, Cleanup, nullptr); 3566 engine_->RunCleanup(); 3567 EXPECT_EQ(res, napi_ok); 3568} 3569 3570/** 3571 * @tc.name: AddEnvCleanupHook003 3572 * @tc.desc: Test napi_add_env_cleanup_hook 3573 * @tc.type: FUNC 3574 */ 3575HWTEST_F(NapiBasicTest, AddEnvCleanupHook003, testing::ext::TestSize.Level2) 3576{ 3577 napi_env env = reinterpret_cast<napi_env>(engine_); 3578 napi_status res = napi_ok; 3579 res = napi_add_env_cleanup_hook(env, nullptr, &g_hookArgOne); 3580 3581 EXPECT_EQ(res, napi_invalid_arg); 3582} 3583 3584/** 3585 * @tc.name: AddEnvCleanupHook004 3586 * @tc.desc: Test napi_add_env_cleanup_hook 3587 * @tc.type: FUNC 3588 */ 3589HWTEST_F(NapiBasicTest, AddEnvCleanupHook004, testing::ext::TestSize.Level2) 3590{ 3591 napi_status res = napi_ok; 3592 res = napi_add_env_cleanup_hook(nullptr, Cleanup, &g_hookArgOne); 3593 engine_->RunCleanup(); 3594 EXPECT_EQ(res, napi_invalid_arg); 3595} 3596 3597/** 3598 * @tc.name: AddEnvCleanupHook005 3599 * @tc.desc: Test napi_add_env_cleanup_hook 3600 * @tc.type: FUNC 3601 */ 3602HWTEST_F(NapiBasicTest, AddEnvCleanupHook005, testing::ext::TestSize.Level1) 3603{ 3604 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3605 g_hookTag = INT_ZERO; 3606 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3607 ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3608 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3609 engine_->RunCleanup(); 3610 EXPECT_EQ(g_hookTag, INT_ONE); 3611} 3612 3613/** 3614 * @tc.name: AddEnvCleanupHook006 3615 * @tc.desc: Test napi_add_env_cleanup_hook 3616 * @tc.type: FUNC 3617 */ 3618HWTEST_F(NapiBasicTest, AddEnvCleanupHook006, testing::ext::TestSize.Level1) 3619{ 3620 g_hookTag = INT_ZERO; 3621 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3622 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3623 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo)); 3624 engine_->RunCleanup(); 3625 EXPECT_EQ(g_hookTag, INT_TWO); 3626} 3627 3628/** 3629 * @tc.name: AddEnvCleanupHook007 3630 * @tc.desc: Test napi_add_env_cleanup_hook 3631 * @tc.type: FUNC 3632 */ 3633HWTEST_F(NapiBasicTest, AddEnvCleanupHook007, testing::ext::TestSize.Level1) 3634{ 3635 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3636 g_hookTag = INT_ZERO; 3637 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3638 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo)); 3639 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgThree)); 3640 engine_->RunCleanup(); 3641 EXPECT_EQ(g_hookTag, INT_THREE); 3642} 3643 3644/** 3645 * @tc.name: EnvCleanupHook008 3646 * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook 3647 * @tc.type: FUNC 3648 */ 3649HWTEST_F(NapiBasicTest, EnvCleanupHook008, testing::ext::TestSize.Level1) 3650{ 3651 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3652 g_hookTag = INT_ZERO; 3653 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3654 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo)); 3655 ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo)); 3656 engine_->RunCleanup(); 3657 EXPECT_EQ(g_hookTag, INT_ONE); 3658} 3659 3660/** 3661 * @tc.name: EnvCleanupHook0009 3662 * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook 3663 * @tc.type: FUNC 3664 */ 3665HWTEST_F(NapiBasicTest, EnvCleanupHook0009, testing::ext::TestSize.Level2) 3666{ 3667 napi_env env = reinterpret_cast<napi_env>(engine_); 3668 g_hookTag = INT_ZERO; 3669 napi_status res = napi_invalid_arg; 3670 ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgOne)); 3671 ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgTwo)); 3672 res = napi_remove_env_cleanup_hook(env, Cleanup, nullptr); 3673 engine_->RunCleanup(); 3674 EXPECT_EQ(g_hookTag, INT_TWO); 3675 EXPECT_EQ(res, napi_ok); 3676} 3677 3678/** 3679 * @tc.name: EnvCleanupHook0010 3680 * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook 3681 * @tc.type: FUNC 3682 */ 3683HWTEST_F(NapiBasicTest, EnvCleanupHook0010, testing::ext::TestSize.Level2) 3684{ 3685 napi_env env = reinterpret_cast<napi_env>(engine_); 3686 g_hookTag = INT_ZERO; 3687 napi_status res = napi_ok; 3688 ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgOne)); 3689 ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgTwo)); 3690 res = napi_remove_env_cleanup_hook(env, nullptr, &g_hookArgTwo); 3691 engine_->RunCleanup(); 3692 EXPECT_EQ(g_hookTag, INT_TWO); 3693 EXPECT_EQ(res, napi_invalid_arg); 3694} 3695 3696/** 3697 * @tc.name: EnvCleanupHook0011 3698 * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook 3699 * @tc.type: FUNC 3700 */ 3701HWTEST_F(NapiBasicTest, EnvCleanupHook0011, testing::ext::TestSize.Level2) 3702{ 3703 napi_env env = reinterpret_cast<napi_env>(engine_); 3704 g_hookTag = INT_ZERO; 3705 napi_status res = napi_ok; 3706 ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgOne)); 3707 ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgTwo)); 3708 res = napi_remove_env_cleanup_hook(nullptr, Cleanup, &g_hookArgTwo); 3709 engine_->RunCleanup(); 3710 EXPECT_EQ(g_hookTag, INT_TWO); 3711 EXPECT_EQ(res, napi_invalid_arg); 3712} 3713 3714/** 3715 * @tc.name: EnvCleanupHook0012 3716 * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook 3717 * @tc.type: FUNC 3718 */ 3719HWTEST_F(NapiBasicTest, EnvCleanupHook0012, testing::ext::TestSize.Level2) 3720{ 3721 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3722 g_hookTag = INT_ZERO; 3723 g_hookTagcp = INT_ZERO; 3724 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3725 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, CleanupCopy, &g_hookArgTwo)); 3726 ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo)); 3727 ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, CleanupCopy, &g_hookArgOne)); 3728 engine_->RunCleanup(); 3729 EXPECT_EQ(g_hookTag, INT_ONE); 3730 EXPECT_EQ(g_hookTagcp, INT_ONE); 3731} 3732 3733/** 3734 * @tc.name: EnvCleanupHook0013 3735 * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook 3736 * @tc.type: FUNC 3737 */ 3738HWTEST_F(NapiBasicTest, EnvCleanupHook0013, testing::ext::TestSize.Level1) 3739{ 3740 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3741 g_hookTag = INT_ZERO; 3742 g_hookTagcp = INT_ZERO; 3743 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3744 ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, CleanupCopy, &g_hookArgTwo)); 3745 ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne)); 3746 ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, CleanupCopy, &g_hookArgTwo)); 3747 engine_->RunCleanup(); 3748 EXPECT_EQ(g_hookTag, INT_ZERO); 3749 EXPECT_EQ(g_hookTagcp, INT_ZERO); 3750} 3751 3752struct AsyncData { 3753 uv_async_t async; 3754 napi_env env; 3755 napi_async_cleanup_hook_handle handle; 3756}; 3757 3758static void MustNotCall(napi_async_cleanup_hook_handle hook, void* arg) 3759{ 3760 EXPECT_EQ(1, 0); 3761} 3762 3763static struct AsyncData* CreateAsyncData() 3764{ 3765 AsyncData* data = static_cast<AsyncData*>(malloc(sizeof(AsyncData))); 3766 if (data == nullptr) { 3767 return nullptr; 3768 } 3769 data->handle = nullptr; 3770 return data; 3771} 3772 3773static void AfterCleanupHookTwo(uv_handle_t* handle) 3774{ 3775 AsyncData* data = static_cast<AsyncData*>(handle->data); 3776 ExpectCheckCall(napi_remove_async_cleanup_hook(data->handle)); 3777 g_hookTag += INT_ONE; 3778 free(data); 3779} 3780 3781static void AfterCleanupHookOne(uv_async_t* async) 3782{ 3783 uv_close((uv_handle_t*)async, AfterCleanupHookTwo); 3784} 3785 3786static void AsyncCleanupHook(napi_async_cleanup_hook_handle handle, void* arg) 3787{ 3788 AsyncData* data = static_cast<AsyncData*>(arg); 3789 uv_loop_t* loop; 3790 ExpectCheckCall(napi_get_uv_event_loop(data->env, &loop)); 3791 int res = uv_async_init(loop, &data->async, AfterCleanupHookOne); 3792 EXPECT_EQ(res, 0); 3793 3794 data->async.data = data; 3795 data->handle = handle; 3796 uv_async_send(&data->async); 3797} 3798 3799/** 3800 * @tc.name: AsyncCleanupHook001 3801 * @tc.desc: Test napi_add_async_cleanup_hook 3802 * @tc.type: FUNC 3803 */ 3804HWTEST_F(NapiBasicTest, AsyncCleanupHook001, testing::ext::TestSize.Level1) 3805{ 3806 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3807 AsyncData* data = CreateAsyncData(); 3808 if (data == nullptr) { 3809 return; 3810 } 3811 g_hookTag = INT_ZERO; 3812 data->env = testEnv; 3813 napi_status res = napi_add_async_cleanup_hook(testEnv, AsyncCleanupHook, data, &data->handle); 3814 engine_->RunCleanup(); 3815 EXPECT_EQ(res, napi_ok); 3816 EXPECT_EQ(g_hookTag, INT_ONE); 3817} 3818 3819/** 3820 * @tc.name: AsyncCleanupHook002 3821 * @tc.desc: Test napi_add_async_cleanup_hook 3822 * @tc.type: FUNC 3823 */ 3824HWTEST_F(NapiBasicTest, AsyncCleanupHook002, testing::ext::TestSize.Level1) 3825{ 3826 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3827 AsyncData* data = CreateAsyncData(); 3828 if (data == nullptr) { 3829 return; 3830 } 3831 g_hookTag = INT_ZERO; 3832 data->env = testEnv; 3833 napi_status res = napi_add_async_cleanup_hook(testEnv, AsyncCleanupHook, data, nullptr); 3834 engine_->RunCleanup(); 3835 EXPECT_EQ(g_hookTag, INT_ONE); 3836 EXPECT_EQ(res, napi_ok); 3837} 3838 3839/** 3840 * @tc.name: AsyncCleanupHook003 3841 * @tc.desc: Test napi_add_async_cleanup_hook napi_remove_async_cleanup_hook 3842 * @tc.type: FUNC 3843 */ 3844HWTEST_F(NapiBasicTest, ACE_Napi_Add_Async_Cleanup_Hook_0300, testing::ext::TestSize.Level2) 3845{ 3846 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 3847 napi_async_cleanup_hook_handle mustNotCallHandle; 3848 g_hookTag = INT_ZERO; 3849 ExpectCheckCall(napi_add_async_cleanup_hook(testEnv, MustNotCall, nullptr, &mustNotCallHandle)); 3850 ExpectCheckCall(napi_remove_async_cleanup_hook(mustNotCallHandle)); 3851 engine_->RunCleanup(); 3852 EXPECT_EQ(g_hookTag, INT_ZERO); 3853} 3854 3855/** 3856 * @tc.name: AsyncCleanupHook004 3857 * @tc.desc: Test napi_add_async_cleanup_hook 3858 * @tc.type: FUNC 3859 */ 3860HWTEST_F(NapiBasicTest, ACE_Napi_Add_Async_Cleanup_Hook_0400, testing::ext::TestSize.Level2) 3861{ 3862 napi_status res = napi_ok; 3863 napi_async_cleanup_hook_handle mustNotCallHandle; 3864 g_hookTag = INT_ZERO; 3865 res = napi_add_async_cleanup_hook(nullptr, MustNotCall, nullptr, &mustNotCallHandle); 3866 engine_->RunCleanup(); 3867 EXPECT_EQ(res, napi_invalid_arg); 3868} 3869 3870/** 3871 * @tc.name: AsyncCleanupHook005 3872 * @tc.desc: Test napi_add_async_cleanup_hook 3873 * @tc.type: FUNC 3874 */ 3875HWTEST_F(NapiBasicTest, ACE_Napi_Add_Async_Cleanup_Hook_0500, testing::ext::TestSize.Level2) 3876{ 3877 napi_env env = reinterpret_cast<napi_env>(engine_); 3878 napi_status res = napi_ok; 3879 napi_async_cleanup_hook_handle mustNotCallHandle; 3880 res = napi_add_async_cleanup_hook(env, nullptr, nullptr, &mustNotCallHandle); 3881 engine_->RunCleanup(); 3882 EXPECT_EQ(res, napi_invalid_arg); 3883} 3884 3885/** 3886 * @tc.name: AsyncCleanupHook006 3887 * @tc.desc: Test napi_add_async_cleanup_hook napi_remove_async_cleanup_hook 3888 * @tc.type: FUNC 3889 */ 3890HWTEST_F(NapiBasicTest, ACE_Napi_Add_Async_Cleanup_Hook_0600, testing::ext::TestSize.Level1) 3891{ 3892 napi_env env = reinterpret_cast<napi_env>(engine_); 3893 AsyncData* data = CreateAsyncData(); 3894 if (data == nullptr) { 3895 return; 3896 } 3897 data->env = env; 3898 g_hookTag = INT_ZERO; 3899 napi_status res = napi_invalid_arg; 3900 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle); 3901 ASSERT_EQ(res, napi_ok); 3902 res = napi_remove_async_cleanup_hook(data->handle); 3903 ASSERT_EQ(res, napi_ok); 3904 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle); 3905 ASSERT_EQ(res, napi_ok); 3906 engine_->RunCleanup(); 3907 EXPECT_EQ(g_hookTag, INT_ONE); 3908 EXPECT_EQ(res, napi_ok); 3909} 3910 3911/** 3912 * @tc.name: AsyncCleanupHook007 3913 * @tc.desc: Test napi_add_async_cleanup_hook 3914 * @tc.type: FUNC 3915 */ 3916HWTEST_F(NapiBasicTest, AsyncCleanupHook007, testing::ext::TestSize.Level1) 3917{ 3918 napi_env env = reinterpret_cast<napi_env>(engine_); 3919 napi_env envTwo = reinterpret_cast<napi_env>(engine_); 3920 g_hookTag = INT_ZERO; 3921 AsyncData* data = CreateAsyncData(); 3922 if (data == nullptr) { 3923 return; 3924 } 3925 data->env = env; 3926 napi_status res = napi_invalid_arg; 3927 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle); 3928 EXPECT_EQ(res, napi_ok); 3929 AsyncData* dataTwo = CreateAsyncData(); 3930 if (dataTwo == nullptr) { 3931 return; 3932 } 3933 dataTwo->env = envTwo; 3934 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, dataTwo, &dataTwo->handle); 3935 EXPECT_EQ(res, napi_ok); 3936 engine_->RunCleanup(); 3937 EXPECT_EQ(g_hookTag, INT_TWO); 3938} 3939 3940/** 3941 * @tc.name: AsyncCleanupHook008 3942 * @tc.desc: Test napi_add_async_cleanup_hook 3943 * @tc.type: FUNC 3944 */ 3945HWTEST_F(NapiBasicTest, AsyncCleanupHook008, testing::ext::TestSize.Level1) 3946{ 3947 napi_env env = reinterpret_cast<napi_env>(engine_); 3948 napi_env envTwo = reinterpret_cast<napi_env>(engine_); 3949 napi_env envThree = reinterpret_cast<napi_env>(engine_); 3950 AsyncData* data = CreateAsyncData(); 3951 if (data == nullptr) { 3952 return; 3953 } 3954 g_hookTag = INT_ZERO; 3955 data->env = env; 3956 napi_status res = napi_invalid_arg; 3957 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle); 3958 EXPECT_EQ(res, napi_ok); 3959 3960 AsyncData* dataTwo = CreateAsyncData(); 3961 if (dataTwo == nullptr) { 3962 return; 3963 } 3964 dataTwo->env = envTwo; 3965 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, dataTwo, &dataTwo->handle); 3966 EXPECT_EQ(res, napi_ok); 3967 3968 AsyncData* dataThree = CreateAsyncData(); 3969 if (dataThree == nullptr) { 3970 return; 3971 } 3972 dataThree->env = envThree; 3973 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, dataThree, &dataThree->handle); 3974 EXPECT_EQ(res, napi_ok); 3975 engine_->RunCleanup(); 3976 EXPECT_EQ(g_hookTag, INT_THREE); 3977} 3978 3979/** 3980 * @tc.name: AsyncCleanupHook009 3981 * @tc.desc: Test napi_add_async_cleanup_hook napi_remove_async_cleanup_hook 3982 * @tc.type: FUNC 3983 */ 3984HWTEST_F(NapiBasicTest, AsyncCleanupHook009, testing::ext::TestSize.Level1) 3985{ 3986 napi_env env = reinterpret_cast<napi_env>(engine_); 3987 AsyncData* data = CreateAsyncData(); 3988 if (data == nullptr) { 3989 return; 3990 } 3991 napi_status res = napi_invalid_arg; 3992 g_hookTag = INT_ZERO; 3993 data->env = env; 3994 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle); 3995 EXPECT_EQ(res, napi_ok); 3996 res = napi_remove_async_cleanup_hook(data->handle); 3997 EXPECT_EQ(res, napi_ok); 3998 engine_->RunCleanup(); 3999 EXPECT_EQ(g_hookTag, INT_ZERO); 4000} 4001 4002/** 4003 * @tc.name: AsyncCleanupHook0010 4004 * @tc.desc: Test napi_remove_async_cleanup_hook 4005 * @tc.type: FUNC 4006 */ 4007HWTEST_F(NapiBasicTest, AsyncCleanupHook0010, testing::ext::TestSize.Level2) 4008{ 4009 napi_status res = napi_ok; 4010 res = napi_remove_async_cleanup_hook(nullptr); 4011 EXPECT_EQ(res, napi_invalid_arg); 4012} 4013 4014/** 4015 * @tc.name: AsyncCleanupHook0011 4016 * @tc.desc: Test napi_add_async_cleanup_hook napi_remove_async_cleanup_hook 4017 * @tc.type: FUNC 4018 */ 4019HWTEST_F(NapiBasicTest, AsyncCleanupHook0011, testing::ext::TestSize.Level2) 4020{ 4021 4022 napi_env env = reinterpret_cast<napi_env>(engine_); 4023 napi_env envTwo = reinterpret_cast<napi_env>(engine_); 4024 AsyncData* data = CreateAsyncData(); 4025 if (data == nullptr) { 4026 return; 4027 } 4028 napi_status res = napi_invalid_arg; 4029 data->env = env; 4030 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, nullptr); 4031 EXPECT_EQ(res, napi_ok); 4032 AsyncData* dataTwo = CreateAsyncData(); 4033 if (dataTwo == nullptr) { 4034 return; 4035 } 4036 dataTwo->env = envTwo; 4037 res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, dataTwo, &dataTwo->handle); 4038 EXPECT_EQ(res, napi_ok); 4039 res = napi_remove_async_cleanup_hook(dataTwo->handle); 4040 EXPECT_EQ(res, napi_ok); 4041 engine_->RunCleanup(); 4042} 4043 4044/** 4045 * @tc.name: nodeApiGetModuleFileName0001 4046 * @tc.desc: Test node_api_get_module_file_name. 4047 * @tc.type: FUNC 4048 */ 4049HWTEST_F(NapiBasicTest, nodeApiGetModuleFileName0001, testing::ext::TestSize.Level1) 4050{ 4051 const char *fileName; 4052 napi_env testEnv = reinterpret_cast<napi_env>(engine_); 4053 napi_value result; 4054 node_api_get_module_file_name(testEnv, &fileName); 4055 napi_create_string_utf8(testEnv, fileName, NAPI_AUTO_LENGTH, &result); 4056 ASSERT_TRUE(strcmp(fileName, "") == 0); 4057} 4058 4059/** 4060 * @tc.name: AsyncWorkTest002 4061 * @tc.desc: Test async work. 4062 * @tc.type: FUNC 4063 */ 4064HWTEST_F(NapiBasicTest, AsyncWorkTest002, testing::ext::TestSize.Level1) 4065{ 4066 struct AsyncWorkContext { 4067 napi_async_work work = nullptr; 4068 bool executed = false; 4069 }; 4070 napi_env env = reinterpret_cast<napi_env>(engine_); 4071 auto asyncWorkContext = new AsyncWorkContext(); 4072 napi_value resourceName = nullptr; 4073 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 4074 napi_create_async_work( 4075 env, nullptr, resourceName, [](napi_env value, void* data) { 4076 AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data; 4077 asyncWorkContext->executed = true; 4078 }, 4079 [](napi_env env, napi_status status, void* data) { 4080 AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data; 4081 ASSERT_EQ(status, napi_status::napi_cancelled); 4082 std::cout << "status of task is: " << status << std::endl; 4083 napi_delete_async_work(env, asyncWorkContext->work); 4084 delete asyncWorkContext; 4085 STOP_EVENT_LOOP(env); 4086 }, 4087 asyncWorkContext, &asyncWorkContext->work); 4088 napi_queue_async_work(env, asyncWorkContext->work); 4089 napi_cancel_async_work(env, asyncWorkContext->work); 4090 RUN_EVENT_LOOP(env); 4091} 4092 4093static napi_value CreateWithPropertiesTestGetter(napi_env env, napi_callback_info info) 4094{ 4095 napi_value res; 4096 napi_get_boolean(env, false, &res); 4097 return res; 4098} 4099 4100static napi_value CreateWithPropertiesTestSetter(napi_env env, napi_callback_info info) 4101{ 4102 napi_value res; 4103 napi_get_boolean(env, true, &res); 4104 return res; 4105} 4106 4107/** 4108 * @tc.name: CreateObjectWithPropertiesTest001 4109 * @tc.desc: Test napi_create_object_with_properteis. 4110 * @tc.type: FUNC 4111 */ 4112HWTEST_F(NapiBasicTest, CreateObjectWithPropertiesTest001, testing::ext::TestSize.Level1) 4113{ 4114 napi_env env = (napi_env)engine_; 4115 napi_value excep; 4116 ASSERT_CHECK_CALL(napi_get_and_clear_last_exception(env, &excep)); 4117 napi_value val_false; 4118 napi_value val_true; 4119 ASSERT_CHECK_CALL(napi_get_boolean(env, false, &val_false)); 4120 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &val_true)); 4121 napi_property_descriptor desc1[] = { 4122 DECLARE_NAPI_DEFAULT_PROPERTY("x", val_true), 4123 }; 4124 napi_value obj1; 4125 ASSERT_CHECK_CALL(napi_create_object_with_properties(env, &obj1, 1, desc1)); 4126 napi_value obj2; 4127 napi_property_descriptor desc2[] = { 4128 DECLARE_NAPI_DEFAULT_PROPERTY("a", val_false), 4129 DECLARE_NAPI_GETTER_SETTER("b", CreateWithPropertiesTestGetter, CreateWithPropertiesTestSetter), 4130 DECLARE_NAPI_DEFAULT_PROPERTY("c", obj1), 4131 }; 4132 ASSERT_CHECK_CALL(napi_create_object_with_properties(env, &obj2, 3, desc2)); 4133 ASSERT_CHECK_VALUE_TYPE(env, obj1, napi_object); 4134 ASSERT_CHECK_VALUE_TYPE(env, obj2, napi_object); 4135 auto checkPropertyEqualsTo = [env] (napi_value obj, const char *keyStr, napi_value expect) -> bool { 4136 napi_value result; 4137 napi_get_named_property(env, obj, keyStr, &result); 4138 bool equal = false; 4139 napi_strict_equals(env, result, expect, &equal); 4140 return equal; 4141 }; 4142 // get obj1.x == true 4143 ASSERT_TRUE(checkPropertyEqualsTo(obj1, "x", val_true)); 4144 // set obj1.x = false 4145 ASSERT_CHECK_CALL(napi_set_named_property(env, obj1, "x", val_false)); 4146 // get obj1.x == false 4147 ASSERT_TRUE(checkPropertyEqualsTo(obj1, "x", val_false)); 4148 // get obj2.a == false 4149 ASSERT_TRUE(checkPropertyEqualsTo(obj2, "a", val_false)); 4150 // get obj2.b == false 4151 ASSERT_TRUE(checkPropertyEqualsTo(obj2, "b", val_false)); 4152 // set obj2.b = true (useless) 4153 ASSERT_CHECK_CALL(napi_set_named_property(env, obj2, "b", val_true)); 4154 // get obj2.b == false 4155 ASSERT_TRUE(checkPropertyEqualsTo(obj2, "b", val_false)); 4156 // get obj2.c == obj1 4157 ASSERT_TRUE(checkPropertyEqualsTo(obj2, "c", obj1)); 4158 // get obj2.c.x == false 4159 napi_value val_res; 4160 ASSERT_CHECK_CALL(napi_get_named_property(env, obj2, "c", &val_res)); 4161 ASSERT_TRUE(checkPropertyEqualsTo(val_res, "x", val_false)); 4162} 4163 4164/** 4165 * @tc.name: CreateObjectWithNamedPropertiesTest001 4166 * @tc.desc: Test napi_create_object_with_named_properteis. 4167 * @tc.type: FUNC 4168 */ 4169HWTEST_F(NapiBasicTest, CreateObjectWithNamedPropertiesTest001, testing::ext::TestSize.Level1) 4170{ 4171 napi_env env = (napi_env)engine_; 4172 napi_value excep; 4173 ASSERT_CHECK_CALL(napi_get_and_clear_last_exception(env, &excep)); 4174 napi_value val_false; 4175 napi_value val_true; 4176 ASSERT_CHECK_CALL(napi_get_boolean(env, false, &val_false)); 4177 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &val_true)); 4178 const char *keys1[] = { 4179 "x", 4180 }; 4181 const napi_value values1[] = { 4182 val_true, 4183 }; 4184 napi_value obj1; 4185 ASSERT_CHECK_CALL(napi_create_object_with_named_properties(env, &obj1, 1, keys1, values1)); 4186 napi_value obj2; 4187 const char *keys2[] = { 4188 "a", 4189 "b", 4190 }; 4191 const napi_value values2[] = { 4192 val_false, 4193 obj1, 4194 }; 4195 ASSERT_CHECK_CALL(napi_create_object_with_named_properties(env, &obj2, 2, keys2, values2)); 4196 ASSERT_CHECK_VALUE_TYPE(env, obj1, napi_object); 4197 ASSERT_CHECK_VALUE_TYPE(env, obj2, napi_object); 4198 auto checkPropertyEqualsTo = [env] (napi_value obj, const char *keyStr, napi_value expect) -> bool { 4199 napi_value result; 4200 napi_get_named_property(env, obj, keyStr, &result); 4201 bool equal = false; 4202 napi_strict_equals(env, result, expect, &equal); 4203 return equal; 4204 }; 4205 // get obj1.x == true 4206 ASSERT_TRUE(checkPropertyEqualsTo(obj1, "x", val_true)); 4207 // set obj1.x = false 4208 ASSERT_CHECK_CALL(napi_set_named_property(env, obj1, "x", val_false)); 4209 // get obj1.x == false 4210 ASSERT_TRUE(checkPropertyEqualsTo(obj1, "x", val_false)); 4211 // get obj2.a == false 4212 ASSERT_TRUE(checkPropertyEqualsTo(obj2, "a", val_false)); 4213 // get obj2.b == obj1 4214 ASSERT_TRUE(checkPropertyEqualsTo(obj2, "b", obj1)); 4215 // get obj2.b.x == false 4216 napi_value val_res; 4217 ASSERT_CHECK_CALL(napi_get_named_property(env, obj2, "b", &val_res)); 4218 ASSERT_TRUE(checkPropertyEqualsTo(val_res, "x", val_false)); 4219} 4220 4221/** 4222 * @tc.name: loadModuleWithInfo001 4223 * @tc.desc: Test napi_load_module_with_info with nullptr env. 4224 * @tc.type: FUNC 4225 */ 4226HWTEST_F(NapiBasicTest, loadModuleWithInfo001, testing::ext::TestSize.Level1) 4227{ 4228 ASSERT_NE(engine_, nullptr); 4229 napi_value result; 4230 napi_status res = napi_load_module_with_info(nullptr, nullptr, nullptr, &result); 4231 ASSERT_EQ(res, napi_invalid_arg); 4232} 4233 4234/** 4235 * @tc.name: loadModuleWithInfo002 4236 * @tc.desc: Test napi_load_module_with_info with nullptr result. 4237 * @tc.type: FUNC 4238 */ 4239HWTEST_F(NapiBasicTest, loadModuleWithInfo002, testing::ext::TestSize.Level1) 4240{ 4241 ASSERT_NE(engine_, nullptr); 4242 napi_env env = (napi_env)engine_; 4243 napi_status res = napi_load_module_with_info(env, "@ohos.hilog", nullptr, nullptr); 4244 ASSERT_EQ(res, napi_invalid_arg); 4245} 4246 4247/** 4248 * @tc.name: runEventLoopTest001 4249 * @tc.desc: Test napi_run_event_loop with nullptr env. 4250 * @tc.type: FUNC 4251 */ 4252HWTEST_F(NapiBasicTest, runEventLoopTest001, testing::ext::TestSize.Level1) 4253{ 4254 napi_status res = napi_run_event_loop(nullptr, napi_event_mode_default); 4255 ASSERT_EQ(res, napi_invalid_arg); 4256} 4257 4258/** 4259 * @tc.name: runEventLoopTest002 4260 * @tc.desc: Test napi_run_event_loop with nullptr env. 4261 * @tc.type: FUNC 4262 */ 4263HWTEST_F(NapiBasicTest, runEventLoopTest002, testing::ext::TestSize.Level1) 4264{ 4265 napi_status res = napi_run_event_loop(nullptr, napi_event_mode_nowait); 4266 ASSERT_EQ(res, napi_invalid_arg); 4267} 4268 4269/** 4270 * @tc.name: runEventLoopTest003 4271 * @tc.desc: Test napi_run_event_loop with nullptr loop 4272 * @tc.type: FUNC 4273 */ 4274HWTEST_F(NapiBasicTest, runEventLoopTest003, testing::ext::TestSize.Level1) 4275{ 4276 ASSERT_NE(engine_, nullptr); 4277 NativeEngineProxy engine; 4278 engine->Deinit(); 4279 napi_status res = napi_run_event_loop(napi_env(engine), napi_event_mode_nowait); 4280 ASSERT_EQ(res, napi_invalid_arg); 4281 engine->Init(); 4282} 4283 4284/** 4285 * @tc.name: runEventLoopTest004 4286 * @tc.desc: Test napi_run_event_loop with nullptr loop 4287 * @tc.type: FUNC 4288 */ 4289HWTEST_F(NapiBasicTest, runEventLoopTest004, testing::ext::TestSize.Level1) 4290{ 4291 ASSERT_NE(engine_, nullptr); 4292 NativeEngineProxy engine; 4293 engine->Deinit(); 4294 napi_status res = napi_run_event_loop(napi_env(engine), napi_event_mode_default); 4295 engine->Init(); 4296 ASSERT_EQ(res, napi_invalid_arg); 4297} 4298 4299/** 4300 * @tc.name: runEventLoopTest005 4301 * @tc.desc: Test napi_run_event_loop with main thread. 4302 * @tc.type: FUNC 4303 */ 4304HWTEST_F(NapiBasicTest, runEventLoopTest005, testing::ext::TestSize.Level1) 4305{ 4306 ASSERT_NE(engine_, nullptr); 4307 napi_env env = (napi_env)engine_; 4308 // main thread does not support napi_run_event_loop func 4309 napi_status res = napi_run_event_loop(env, napi_event_mode_default); 4310 ASSERT_EQ(res, napi_generic_failure); 4311} 4312 4313/** 4314 * @tc.name: runEventLoopTest006 4315 * @tc.desc: Test napi_run_event_loop with main thread. 4316 * @tc.type: FUNC 4317 */ 4318HWTEST_F(NapiBasicTest, runEventLoopTest006, testing::ext::TestSize.Level1) 4319{ 4320 ASSERT_NE(engine_, nullptr); 4321 napi_env env = (napi_env)engine_; 4322 // main thread does not support napi_run_event_loop func 4323 napi_status res = napi_run_event_loop(env, napi_event_mode_nowait); 4324 ASSERT_EQ(res, napi_generic_failure); 4325} 4326 4327/** 4328 * @tc.name: runEventLoopTest007 4329 * @tc.desc: Test napi_run_event_loop with worker thread. 4330 * @tc.type: FUNC 4331 */ 4332HWTEST_F(NapiBasicTest, runEventLoopTest007, testing::ext::TestSize.Level1) 4333{ 4334 ASSERT_NE(engine_, nullptr); 4335 engine_->MarkWorkerThread(); 4336 napi_env env = (napi_env)engine_; 4337 // worker thread does not support napi_run_event_loop func 4338 napi_status res = napi_run_event_loop(env, napi_event_mode_nowait); 4339 ASSERT_EQ(res, napi_generic_failure); 4340 engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD)); 4341} 4342 4343/** 4344 * @tc.name: runEventLoopTest008 4345 * @tc.desc: Test napi_run_event_loop with worker thread. 4346 * @tc.type: FUNC 4347 */ 4348HWTEST_F(NapiBasicTest, runEventLoopTest008, testing::ext::TestSize.Level1) 4349{ 4350 ASSERT_NE(engine_, nullptr); 4351 engine_->MarkWorkerThread(); 4352 napi_env env = (napi_env)engine_; 4353 // worker thread does not support napi_run_event_loop func 4354 napi_status res = napi_run_event_loop(env, napi_event_mode_default); 4355 ASSERT_EQ(res, napi_generic_failure); 4356 engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD)); 4357} 4358 4359/** 4360 * @tc.name: runEventLoopTest009 4361 * @tc.desc: Test napi_run_event_loop with taskpool thread. 4362 * @tc.type: FUNC 4363 */ 4364HWTEST_F(NapiBasicTest, runEventLoopTest009, testing::ext::TestSize.Level1) 4365{ 4366 ASSERT_NE(engine_, nullptr); 4367 engine_->MarkTaskPoolThread(); 4368 napi_env env = (napi_env)engine_; 4369 // taskpool thread does not support napi_run_event_loop func 4370 napi_status res = napi_run_event_loop(env, napi_event_mode_nowait); 4371 ASSERT_EQ(res, napi_generic_failure); 4372 engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD)); 4373} 4374 4375/** 4376 * @tc.name: runEventLoopTest010 4377 * @tc.desc: Test napi_run_event_loop with taskpool thread. 4378 * @tc.type: FUNC 4379 */ 4380HWTEST_F(NapiBasicTest, runEventLoopTest010, testing::ext::TestSize.Level1) 4381{ 4382 ASSERT_NE(engine_, nullptr); 4383 engine_->MarkTaskPoolThread(); 4384 napi_env env = (napi_env)engine_; 4385 // taskpool thread does not support napi_run_event_loop func 4386 napi_status res = napi_run_event_loop(env, napi_event_mode_default); 4387 ASSERT_EQ(res, napi_generic_failure); 4388 engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD)); 4389} 4390 4391/** 4392 * @tc.name: stopEventLoopTest001 4393 * @tc.desc: Test napi_stop_event_loop with nullptr env. 4394 * @tc.type: FUNC 4395 */ 4396HWTEST_F(NapiBasicTest, stopEventLoopTest001, testing::ext::TestSize.Level1) 4397{ 4398 napi_status res = napi_stop_event_loop(nullptr); 4399 ASSERT_EQ(res, napi_invalid_arg); 4400} 4401 4402/** 4403 * @tc.name: stopEventLoopTest002 4404 * @tc.desc: Test napi_stop_event_loop with nullptr loop. 4405 * @tc.type: FUNC 4406 */ 4407HWTEST_F(NapiBasicTest, stopEventLoopTest002, testing::ext::TestSize.Level1) 4408{ 4409 ASSERT_NE(engine_, nullptr); 4410 NativeEngineProxy engine; 4411 engine->Deinit(); 4412 napi_status res = napi_stop_event_loop(napi_env(engine)); 4413 engine->Init(); 4414 ASSERT_EQ(res, napi_invalid_arg); 4415} 4416 4417/** 4418 * @tc.name: stopEventLoopTest003 4419 * @tc.desc: Test napi_stop_event_loop with main thread. 4420 * @tc.type: FUNC 4421 */ 4422HWTEST_F(NapiBasicTest, stopEventLoopTest003, testing::ext::TestSize.Level1) 4423{ 4424 ASSERT_NE(engine_, nullptr); 4425 napi_env env = (napi_env)engine_; 4426 // main thread does not support napi_run_event_loop func 4427 napi_status res = napi_stop_event_loop(env); 4428 ASSERT_EQ(res, napi_generic_failure); 4429} 4430 4431/** 4432 * @tc.name: stopEventLoopTest004 4433 * @tc.desc: Test napi_stop_event_loop with worker thread. 4434 * @tc.type: FUNC 4435 */ 4436HWTEST_F(NapiBasicTest, stopEventLoopTest004, testing::ext::TestSize.Level1) 4437{ 4438 ASSERT_NE(engine_, nullptr); 4439 engine_->MarkWorkerThread(); 4440 napi_env env = (napi_env)engine_; 4441 // worker thread does not support napi_run_event_loop func 4442 napi_status res = napi_stop_event_loop(env); 4443 ASSERT_EQ(res, napi_generic_failure); 4444 engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD)); 4445} 4446 4447/** 4448 * @tc.name: stopEventLoopTest005 4449 * @tc.desc: Test napi_stop_event_loop with taskpool thread. 4450 * @tc.type: FUNC 4451 */ 4452HWTEST_F(NapiBasicTest, stopEventLoopTest005, testing::ext::TestSize.Level1) 4453{ 4454 ASSERT_NE(engine_, nullptr); 4455 engine_->MarkTaskPoolThread(); 4456 napi_env env = (napi_env)engine_; 4457 // taskpool thread does not support napi_run_event_loop func 4458 napi_status res = napi_stop_event_loop(env); 4459 ASSERT_EQ(res, napi_generic_failure); 4460 engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD)); 4461} 4462 4463/** 4464 * @tc.name: stopEventLoopTest006 4465 * @tc.desc: Test napi_stop_event_loop before running the loop. 4466 * @tc.type: FUNC 4467 */ 4468HWTEST_F(NapiBasicTest, stopEventLoopTest006, testing::ext::TestSize.Level1) 4469{ 4470 ASSERT_NE(engine_, nullptr); 4471 engine_->MarkNativeThread(); 4472 napi_env env = (napi_env)engine_; 4473 napi_status res = napi_stop_event_loop(env); 4474 ASSERT_EQ(res, napi_ok); 4475 engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD)); 4476} 4477 4478/** 4479 * @tc.name: multipleThreadRunEventLoopTest001 4480 * @tc.desc: Test napi_run_event_loop with multiple threads. 4481 * @tc.type: FUNC 4482 */ 4483HWTEST_F(NapiBasicTest, multipleThreadRunEventLoopTest001, testing::ext::TestSize.Level1) 4484{ 4485 ASSERT_NE(engine_, nullptr); 4486 engine_->MarkNativeThread(); 4487 napi_env env = (napi_env)engine_; 4488 4489 // 1. create five child threads to call napi_run_event_loop 4490 auto runFunc = [](const napi_env &env, napi_event_mode mode) { 4491 napi_status res = napi_run_event_loop(env, mode); 4492 ASSERT_EQ(res, napi_ok); 4493 }; 4494 4495 for (int32_t index = 0; index < THREAD_SIZE; ++index) { 4496 std::thread runThread = std::thread(runFunc, std::ref(env), napi_event_mode_nowait); 4497 runThread.detach(); 4498 } 4499 // 2. create async work to stop the loop 4500 struct AsyncWorkContext { 4501 napi_async_work work = nullptr; 4502 }; 4503 auto asyncWorkContext = new AsyncWorkContext(); 4504 napi_value resourceName = nullptr; 4505 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 4506 napi_create_async_work( 4507 env, nullptr, resourceName, [](napi_env env, void* data) { }, 4508 [](napi_env env, napi_status status, void* data) { 4509 AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data; 4510 napi_delete_async_work(env, asyncWorkContext->work); 4511 delete asyncWorkContext; 4512 // stop the loop after the task is processed 4513 napi_status res = napi_stop_event_loop(env); 4514 ASSERT_EQ(res, napi_ok); 4515 }, 4516 asyncWorkContext, &asyncWorkContext->work); 4517 napi_queue_async_work(env, asyncWorkContext->work); 4518 // 3. run the loop 4519 napi_status res = napi_run_event_loop(env, napi_event_mode_default); 4520 ASSERT_EQ(res, napi_ok); 4521 engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD)); 4522} 4523 4524/** 4525 * @tc.name: NapiFatalExceptionTest 4526 * @tc.desc: Test interface of napi_fatal_exception 4527 * @tc.type: FUNC 4528 */ 4529HWTEST_F(NapiBasicTest, NapiFatalExceptionTest001, testing::ext::TestSize.Level1) 4530{ 4531 ASSERT_NE(engine_, nullptr); 4532 napi_env env = reinterpret_cast<napi_env>(engine_); 4533 // create error object 4534 napi_value code = nullptr; 4535 constexpr char codeStr[] = "test code"; 4536 napi_status res = napi_create_string_utf8(env, codeStr, NAPI_AUTO_LENGTH, &code); 4537 ASSERT_EQ(res, napi_ok); 4538 4539 napi_value msg = nullptr; 4540 constexpr char msgStr[] = "test message"; 4541 res = napi_create_string_utf8(env, msgStr, NAPI_AUTO_LENGTH, &msg); 4542 ASSERT_EQ(res, napi_ok); 4543 4544 napi_value error = nullptr; 4545 res = napi_create_error(env, code, msg, &error); 4546 ASSERT_EQ(res, napi_ok); 4547 4548 // call napi_fatal_exception interface with nullptr env 4549 res = napi_fatal_exception(nullptr, error); 4550 ASSERT_EQ(res, napi_invalid_arg); 4551} 4552 4553/** 4554 * @tc.name: NapiFatalExceptionTest 4555 * @tc.desc: Test interface of napi_fatal_exception 4556 * @tc.type: FUNC 4557 */ 4558HWTEST_F(NapiBasicTest, NapiFatalExceptionTest002, testing::ext::TestSize.Level1) 4559{ 4560 ASSERT_NE(engine_, nullptr); 4561 napi_env env = reinterpret_cast<napi_env>(engine_); 4562 // create error object 4563 napi_value code = nullptr; 4564 constexpr char codeStr[] = "test code"; 4565 napi_status res = napi_create_string_utf8(env, codeStr, NAPI_AUTO_LENGTH, &code); 4566 ASSERT_EQ(res, napi_ok); 4567 4568 // call napi_fatal_exception interface with non-JSError object 4569 res = napi_fatal_exception(env, code); 4570 ASSERT_EQ(res, napi_invalid_arg); 4571} 4572 4573/** 4574 * @tc.name: NapiFatalExceptionTest 4575 * @tc.desc: Test interface of napi_fatal_exception 4576 * @tc.type: FUNC 4577 */ 4578HWTEST_F(NapiBasicTest, NapiFatalExceptionTest003, testing::ext::TestSize.Level1) 4579{ 4580 ASSERT_NE(engine_, nullptr); 4581 napi_env env = reinterpret_cast<napi_env>(engine_); 4582 4583 // call napi_fatal_exception interface with nullptr error 4584 auto res = napi_fatal_exception(env, nullptr); 4585 ASSERT_EQ(res, napi_invalid_arg); 4586} 4587 4588/** 4589 * @tc.name: NapiFatalExceptionTest 4590 * @tc.desc: Test interface of napi_coerce_to_bool 4591 * @tc.type: FUNC 4592 */ 4593HWTEST_F(NapiBasicTest, NapiCoerceToBoolTest001, testing::ext::TestSize.Level1) 4594{ 4595 napi_env env = reinterpret_cast<napi_env>(engine_); 4596 napi_value value = nullptr; 4597 napi_value result; 4598 napi_status status = napi_coerce_to_bool(env, value, &result); 4599 ASSERT_EQ(status, napi_invalid_arg); 4600} 4601 4602HWTEST_F(NapiBasicTest, NapiCoerceToBoolTest002, testing::ext::TestSize.Level1) 4603{ 4604 napi_env env = reinterpret_cast<napi_env>(engine_); 4605 napi_value value; 4606 napi_value *result = nullptr; 4607 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4608 status = napi_coerce_to_bool(env, value, result); 4609 ASSERT_EQ(status, napi_invalid_arg); 4610} 4611 4612/** 4613 * @tc.name: NapiFatalExceptionTest 4614 * @tc.desc: Test interface of napi_coerce_to_bool 4615 * @tc.type: FUNC 4616 */ 4617HWTEST_F(NapiBasicTest, NapiCoerceToBoolTest003, testing::ext::TestSize.Level1) 4618{ 4619 napi_env env = reinterpret_cast<napi_env>(engine_); 4620 napi_value value; 4621 napi_value result; 4622 napi_status status = napi_create_double(env, NAN, &value); 4623 status = napi_coerce_to_bool(env, value, &result); 4624 bool ret = true; 4625 napi_get_value_bool(env, result, &ret); 4626 ASSERT_EQ(ret, false); 4627 ASSERT_EQ(status, napi_ok); 4628} 4629/** 4630 * @tc.name: NapiFatalExceptionTest 4631 * @tc.desc: Test interface of napi_coerce_to_bool 4632 * @tc.type: FUNC 4633 */ 4634HWTEST_F(NapiBasicTest, NapiCoerceToBoolTest004, testing::ext::TestSize.Level1) 4635{ 4636 napi_env env = reinterpret_cast<napi_env>(engine_); 4637 napi_value value; 4638 napi_value result; 4639 napi_status status = napi_get_undefined(env, &value); 4640 status = napi_coerce_to_bool(env, value, &result); 4641 bool ret = true; 4642 napi_get_value_bool(env, result, &ret); 4643 ASSERT_EQ(ret, false); 4644 ASSERT_EQ(status, napi_ok); 4645} 4646 4647/** 4648 * @tc.name: NapiFatalExceptionTest 4649 * @tc.desc: Test interface of napi_coerce_to_bool 4650 * @tc.type: FUNC 4651 */ 4652HWTEST_F(NapiBasicTest, NapiCoerceToBoolTest005, testing::ext::TestSize.Level1) 4653{ 4654 napi_env env = reinterpret_cast<napi_env>(engine_); 4655 napi_value value; 4656 napi_value result; 4657 napi_status status = napi_get_null(env, &value); 4658 status = napi_coerce_to_bool(env, value, &result); 4659 bool ret = true; 4660 napi_get_value_bool(env, result, &ret); 4661 ASSERT_EQ(ret, false); 4662 ASSERT_EQ(status, napi_ok); 4663} 4664 4665HWTEST_F(NapiBasicTest, NapiCoerceToNumberTest001, testing::ext::TestSize.Level1) 4666{ 4667 napi_env env = reinterpret_cast<napi_env>(engine_); 4668 napi_value value = nullptr; 4669 napi_value result; 4670 napi_status status = napi_coerce_to_number(env, value, &result); 4671 ASSERT_EQ(status, napi_invalid_arg); 4672} 4673 4674HWTEST_F(NapiBasicTest, NapiCoerceToNumberTest002, testing::ext::TestSize.Level1) 4675{ 4676 napi_env env = reinterpret_cast<napi_env>(engine_); 4677 napi_value value; 4678 napi_value *result = nullptr; 4679 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4680 status = napi_coerce_to_number(env, value, result); 4681 ASSERT_EQ(status, napi_invalid_arg); 4682} 4683 4684HWTEST_F(NapiBasicTest, NapiCoerceToNumberTest003, testing::ext::TestSize.Level1) 4685{ 4686 napi_env env = reinterpret_cast<napi_env>(engine_); 4687 napi_value value; 4688 napi_value result; 4689 napi_status status = napi_create_string_utf8(env, "", 0, &value); 4690 status = napi_coerce_to_number(env, value, &result); 4691 ASSERT_EQ(status, napi_ok); 4692 int32_t num; 4693 status = napi_get_value_int32(env, result, &num); 4694 ASSERT_EQ(num, 0); 4695} 4696 4697HWTEST_F(NapiBasicTest, NapiCoerceToNumberTest004, testing::ext::TestSize.Level1) 4698{ 4699 napi_env env = reinterpret_cast<napi_env>(engine_); 4700 napi_value value; 4701 napi_value result; 4702 napi_status status = napi_create_string_utf8(env, TEST_STRING, 4, &value); 4703 status = napi_coerce_to_number(env, value, &result); 4704 ASSERT_EQ(status, napi_ok); 4705 double db; 4706 status = napi_get_value_double(env, result, &db); 4707 ASSERT_EQ(std::isnan(db), true); 4708} 4709 4710HWTEST_F(NapiBasicTest, NapiCoerceToNumberTest005, testing::ext::TestSize.Level1) 4711{ 4712 napi_env env = reinterpret_cast<napi_env>(engine_); 4713 napi_value value; 4714 napi_value result; 4715 napi_status status = napi_get_undefined(env, &value); 4716 status = napi_coerce_to_number(env, value, &result); 4717 ASSERT_EQ(status, napi_ok); 4718 double db; 4719 status = napi_get_value_double(env, result, &db); 4720 ASSERT_EQ(std::isnan(db), true); 4721} 4722 4723HWTEST_F(NapiBasicTest, NapiCoerceToNumberTest006, testing::ext::TestSize.Level1) 4724{ 4725 napi_env env = reinterpret_cast<napi_env>(engine_); 4726 napi_value value; 4727 napi_value result; 4728 napi_status status = napi_get_null(env, &value); 4729 status = napi_coerce_to_number(env, value, &result); 4730 ASSERT_EQ(status, napi_ok); 4731 int32_t num; 4732 status = napi_get_value_int32(env, result, &num); 4733 ASSERT_EQ(num, 0); 4734} 4735 4736HWTEST_F(NapiBasicTest, NapiCoerceToNumberTest007, testing::ext::TestSize.Level1) 4737{ 4738 napi_env env = reinterpret_cast<napi_env>(engine_); 4739 napi_value value; 4740 napi_value result; 4741 napi_status status = napi_create_object(env, &value); 4742 status = napi_coerce_to_number(env, value, &result); 4743 ASSERT_EQ(status, napi_ok); 4744 double db; 4745 status = napi_get_value_double(env, result, &db); 4746 ASSERT_EQ(std::isnan(db), true); 4747} 4748 4749HWTEST_F(NapiBasicTest, NapiCoerceToObjectTest001, testing::ext::TestSize.Level1) 4750{ 4751 napi_env env = reinterpret_cast<napi_env>(engine_); 4752 napi_value value = nullptr; 4753 napi_value result; 4754 napi_status status = napi_coerce_to_object(env, value, &result); 4755 ASSERT_EQ(status, napi_invalid_arg); 4756} 4757 4758HWTEST_F(NapiBasicTest, NapiCoerceToObjectTest002, testing::ext::TestSize.Level1) 4759{ 4760 napi_env env = reinterpret_cast<napi_env>(engine_); 4761 napi_value value; 4762 napi_value *result = nullptr; 4763 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4764 status = napi_coerce_to_object(env, value, result); 4765 ASSERT_EQ(status, napi_invalid_arg); 4766} 4767 4768HWTEST_F(NapiBasicTest, NapiCoerceToObjectTest003, testing::ext::TestSize.Level1) 4769{ 4770 napi_env env = reinterpret_cast<napi_env>(engine_); 4771 napi_value value; 4772 napi_value result; 4773 napi_status status = napi_get_undefined(env, &value); 4774 status = napi_coerce_to_object(env, value, &result); 4775 ASSERT_EQ(status, napi_ok); 4776 napi_valuetype type = napi_undefined; 4777 status = napi_typeof(env, result, &type); 4778 ASSERT_EQ(status, napi_ok); 4779 ASSERT_EQ(type, napi_undefined); 4780} 4781 4782HWTEST_F(NapiBasicTest, NapiCoerceToObjectTest004, testing::ext::TestSize.Level1) 4783{ 4784 napi_env env = reinterpret_cast<napi_env>(engine_); 4785 napi_value value; 4786 napi_value result; 4787 napi_status status = napi_get_null(env, &value); 4788 status = napi_coerce_to_object(env, value, &result); 4789 ASSERT_EQ(status, napi_ok); 4790 napi_valuetype type = napi_undefined; 4791 status = napi_typeof(env, result, &type); 4792 ASSERT_EQ(status, napi_ok); 4793 ASSERT_EQ(type, napi_undefined); 4794} 4795 4796HWTEST_F(NapiBasicTest, NapiCoerceToStringTest001, testing::ext::TestSize.Level1) 4797{ 4798 napi_env env = reinterpret_cast<napi_env>(engine_); 4799 napi_value value = nullptr; 4800 napi_value result; 4801 napi_status status = napi_coerce_to_string(env, value, &result); 4802 ASSERT_EQ(status, napi_invalid_arg); 4803} 4804 4805HWTEST_F(NapiBasicTest, NapiCoerceToStringTest002, testing::ext::TestSize.Level1) 4806{ 4807 napi_env env = reinterpret_cast<napi_env>(engine_); 4808 napi_value value; 4809 napi_value *result = nullptr; 4810 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4811 status = napi_coerce_to_string(env, value, result); 4812 ASSERT_EQ(status, napi_invalid_arg); 4813} 4814 4815HWTEST_F(NapiBasicTest, NapiTypeofTest001, testing::ext::TestSize.Level1) 4816{ 4817 napi_env env = reinterpret_cast<napi_env>(engine_); 4818 napi_value value = nullptr; 4819 napi_valuetype result; 4820 napi_status status = napi_typeof(env, value, &result); 4821 ASSERT_EQ(status, napi_invalid_arg); 4822} 4823 4824HWTEST_F(NapiBasicTest, NapiTypeofTest002, testing::ext::TestSize.Level1) 4825{ 4826 napi_env env = reinterpret_cast<napi_env>(engine_); 4827 napi_value value; 4828 napi_valuetype *result = nullptr; 4829 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4830 status = napi_typeof(env, value, result); 4831 ASSERT_EQ(status, napi_invalid_arg); 4832} 4833 4834HWTEST_F(NapiBasicTest, NapiInstanceofTest001, testing::ext::TestSize.Level1) 4835{ 4836 napi_env env = reinterpret_cast<napi_env>(engine_); 4837 napi_value value = nullptr; 4838 napi_value constructor; 4839 bool result; 4840 napi_status status = napi_create_object(env, &constructor); 4841 status = napi_instanceof(env, value, constructor, &result); 4842 ASSERT_EQ(status, napi_invalid_arg); 4843} 4844 4845HWTEST_F(NapiBasicTest, NapiInstanceofTest002, testing::ext::TestSize.Level1) 4846{ 4847 napi_env env = reinterpret_cast<napi_env>(engine_); 4848 napi_value value; 4849 napi_value constructor = nullptr; 4850 bool result; 4851 napi_status status = napi_create_object(env, &value); 4852 status = napi_instanceof(env, value, constructor, &result); 4853 ASSERT_EQ(status, napi_invalid_arg); 4854} 4855 4856HWTEST_F(NapiBasicTest, NapiInstanceofTest003, testing::ext::TestSize.Level1) 4857{ 4858 napi_env env = reinterpret_cast<napi_env>(engine_); 4859 napi_value value; 4860 napi_value constructor; 4861 bool *result = nullptr; 4862 napi_status status = napi_create_object(env, &value); 4863 status = napi_create_object(env, &constructor); 4864 status = napi_instanceof(env, value, constructor, result); 4865 ASSERT_EQ(status, napi_invalid_arg); 4866} 4867 4868HWTEST_F(NapiBasicTest, NapiInstanceofTest004, testing::ext::TestSize.Level1) 4869{ 4870 napi_env env = reinterpret_cast<napi_env>(engine_); 4871 napi_value value; 4872 napi_value constructor; 4873 bool result; 4874 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4875 status = napi_create_object(env, &constructor); 4876 status = napi_instanceof(env, value, constructor, &result); 4877 ASSERT_EQ(status, napi_object_expected); 4878} 4879 4880HWTEST_F(NapiBasicTest, NapiInstanceofTest005, testing::ext::TestSize.Level1) 4881{ 4882 napi_env env = reinterpret_cast<napi_env>(engine_); 4883 napi_value value; 4884 napi_value constructor; 4885 bool result; 4886 napi_status status = napi_create_object(env, &value); 4887 status = napi_create_double(env, TEST_DOUBLE, &constructor); 4888 status = napi_instanceof(env, value, constructor, &result); 4889 ASSERT_EQ(status, napi_function_expected); 4890} 4891 4892HWTEST_F(NapiBasicTest, NapiIsArrayTest001, testing::ext::TestSize.Level1) 4893{ 4894 napi_env env = reinterpret_cast<napi_env>(engine_); 4895 napi_value value = nullptr; 4896 bool result; 4897 napi_status status = napi_is_array(env, value, &result); 4898 ASSERT_EQ(status, napi_invalid_arg); 4899} 4900 4901HWTEST_F(NapiBasicTest, NapiIsArrayTest002, testing::ext::TestSize.Level1) 4902{ 4903 napi_env env = reinterpret_cast<napi_env>(engine_); 4904 napi_value value; 4905 bool *result = nullptr; 4906 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4907 status = napi_is_array(env, value, result); 4908 ASSERT_EQ(status, napi_invalid_arg); 4909} 4910 4911HWTEST_F(NapiBasicTest, NapiIsArrayBufferTest001, testing::ext::TestSize.Level1) 4912{ 4913 napi_env env = reinterpret_cast<napi_env>(engine_); 4914 napi_value value = nullptr; 4915 bool result; 4916 napi_status status = napi_is_arraybuffer(env, value, &result); 4917 ASSERT_EQ(status, napi_invalid_arg); 4918} 4919 4920HWTEST_F(NapiBasicTest, NapiIsArrayBufferTest002, testing::ext::TestSize.Level1) 4921{ 4922 napi_env env = reinterpret_cast<napi_env>(engine_); 4923 napi_value value; 4924 bool *result = nullptr; 4925 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4926 status = napi_is_arraybuffer(env, value, result); 4927 ASSERT_EQ(status, napi_invalid_arg); 4928} 4929 4930HWTEST_F(NapiBasicTest, NapiIsTypeBufferTest001, testing::ext::TestSize.Level1) 4931{ 4932 napi_env env = reinterpret_cast<napi_env>(engine_); 4933 napi_value value = nullptr; 4934 bool result; 4935 napi_status status = napi_is_typedarray(env, value, &result); 4936 ASSERT_EQ(status, napi_invalid_arg); 4937} 4938 4939HWTEST_F(NapiBasicTest, NapiIsTypeBufferTest002, testing::ext::TestSize.Level1) 4940{ 4941 napi_env env = reinterpret_cast<napi_env>(engine_); 4942 napi_value value; 4943 bool *result = nullptr; 4944 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4945 status = napi_is_typedarray(env, value, result); 4946 ASSERT_EQ(status, napi_invalid_arg); 4947} 4948 4949HWTEST_F(NapiBasicTest, NapiIsDataViewTest001, testing::ext::TestSize.Level1) 4950{ 4951 napi_env env = reinterpret_cast<napi_env>(engine_); 4952 napi_value value = nullptr; 4953 bool result; 4954 napi_status status = napi_is_dataview(env, value, &result); 4955 ASSERT_EQ(status, napi_invalid_arg); 4956} 4957 4958HWTEST_F(NapiBasicTest, NapiIsDataViewTest002, testing::ext::TestSize.Level1) 4959{ 4960 napi_env env = reinterpret_cast<napi_env>(engine_); 4961 napi_value value; 4962 bool *result = nullptr; 4963 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4964 status = napi_is_dataview(env, value, result); 4965 ASSERT_EQ(status, napi_invalid_arg); 4966} 4967 4968HWTEST_F(NapiBasicTest, NapiIsDateTest001, testing::ext::TestSize.Level1) 4969{ 4970 napi_env env = reinterpret_cast<napi_env>(engine_); 4971 napi_value value = nullptr; 4972 bool result; 4973 napi_status status = napi_is_date(env, value, &result); 4974 ASSERT_EQ(status, napi_invalid_arg); 4975} 4976 4977HWTEST_F(NapiBasicTest, NapiIsDateTest002, testing::ext::TestSize.Level1) 4978{ 4979 napi_env env = reinterpret_cast<napi_env>(engine_); 4980 napi_value value; 4981 bool *result = nullptr; 4982 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 4983 status = napi_is_date(env, value, result); 4984 ASSERT_EQ(status, napi_invalid_arg); 4985} 4986 4987HWTEST_F(NapiBasicTest, NapiStrictEqualsTest001, testing::ext::TestSize.Level1) 4988{ 4989 napi_env env = reinterpret_cast<napi_env>(engine_); 4990 napi_value lhs = nullptr; 4991 napi_value rhs; 4992 bool result; 4993 napi_status status = napi_create_double(env, TEST_DOUBLE, &rhs); 4994 status = napi_strict_equals(env, lhs, rhs, &result); 4995 ASSERT_EQ(status, napi_invalid_arg); 4996} 4997 4998HWTEST_F(NapiBasicTest, NapiStrictEqualsTest002, testing::ext::TestSize.Level1) 4999{ 5000 napi_env env = reinterpret_cast<napi_env>(engine_); 5001 napi_value lhs; 5002 napi_value rhs = nullptr; 5003 bool result; 5004 napi_status status = napi_create_double(env, TEST_DOUBLE, &lhs); 5005 status = napi_strict_equals(env, lhs, rhs, &result); 5006 ASSERT_EQ(status, napi_invalid_arg); 5007} 5008 5009HWTEST_F(NapiBasicTest, NapiStrictEqualsTest003, testing::ext::TestSize.Level1) 5010{ 5011 napi_env env = reinterpret_cast<napi_env>(engine_); 5012 napi_value lhs; 5013 napi_value rhs; 5014 bool *result = nullptr; 5015 napi_status status = napi_create_double(env, TEST_DOUBLE, &lhs); 5016 status = napi_create_double(env, TEST_DOUBLE, &rhs); 5017 status = napi_strict_equals(env, lhs, rhs, result); 5018 ASSERT_EQ(status, napi_invalid_arg); 5019} 5020 5021HWTEST_F(NapiBasicTest, NapiStrictEqualsTest004, testing::ext::TestSize.Level1) 5022{ 5023 napi_env env = reinterpret_cast<napi_env>(engine_); 5024 napi_value lhs; 5025 napi_value rhs; 5026 bool result; 5027 napi_status status = napi_create_double(env, NAN, &lhs); 5028 status = napi_create_double(env, NAN, &rhs); 5029 status = napi_strict_equals(env, lhs, rhs, &result); 5030 ASSERT_EQ(status, false); 5031} 5032 5033HWTEST_F(NapiBasicTest, NapiGetPropertyNamesTest001, testing::ext::TestSize.Level1) 5034{ 5035 napi_env env = reinterpret_cast<napi_env>(engine_); 5036 napi_value value = nullptr; 5037 napi_value result; 5038 napi_status status = napi_get_property_names(env, value, &result); 5039 ASSERT_EQ(status, napi_invalid_arg); 5040} 5041 5042HWTEST_F(NapiBasicTest, NapiGetPropertyNamesTest002, testing::ext::TestSize.Level1) 5043{ 5044 napi_env env = reinterpret_cast<napi_env>(engine_); 5045 napi_value value; 5046 napi_value *result = nullptr; 5047 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 5048 status = napi_get_property_names(env, value, result); 5049 ASSERT_EQ(status, napi_invalid_arg); 5050} 5051 5052HWTEST_F(NapiBasicTest, NapiGetPropertyNamesTest003, testing::ext::TestSize.Level1) 5053{ 5054 napi_env env = reinterpret_cast<napi_env>(engine_); 5055 napi_value value; 5056 napi_value result; 5057 napi_status status = napi_create_double(env, TEST_DOUBLE, &value); 5058 status = napi_get_property_names(env, value, &result); 5059 ASSERT_EQ(status, napi_object_expected); 5060} 5061 5062HWTEST_F(NapiBasicTest, NapiSetPropertyTest001, testing::ext::TestSize.Level1) 5063{ 5064 napi_env env = reinterpret_cast<napi_env>(engine_); 5065 napi_value obj = nullptr; 5066 napi_value key; 5067 napi_value value; 5068 5069 napi_create_int32(env, INT_ONE, &key); 5070 napi_create_int32(env, INT_TWO, &value); 5071 napi_status status = napi_set_property(env, obj, key, value); 5072 ASSERT_EQ(status, napi_invalid_arg); 5073} 5074 5075HWTEST_F(NapiBasicTest, NapiSetPropertyTest002, testing::ext::TestSize.Level1) 5076{ 5077 napi_env env = reinterpret_cast<napi_env>(engine_); 5078 napi_value obj; 5079 napi_value key = nullptr; 5080 napi_value value; 5081 5082 napi_create_object(env, &obj); 5083 napi_create_int32(env, INT_TWO, &value); 5084 napi_status status = napi_set_property(env, obj, key, value); 5085 ASSERT_EQ(status, napi_invalid_arg); 5086} 5087 5088HWTEST_F(NapiBasicTest, NapiSetPropertyTest003, testing::ext::TestSize.Level1) 5089{ 5090 napi_env env = reinterpret_cast<napi_env>(engine_); 5091 napi_value obj; 5092 napi_value key; 5093 napi_value value = nullptr; 5094 5095 napi_create_object(env, &obj); 5096 napi_create_int32(env, INT_ONE, &key); 5097 napi_status status = napi_set_property(env, obj, key, value); 5098 ASSERT_EQ(status, napi_invalid_arg); 5099} 5100 5101HWTEST_F(NapiBasicTest, NapiSetPropertyTest004, testing::ext::TestSize.Level1) 5102{ 5103 napi_env env = reinterpret_cast<napi_env>(engine_); 5104 napi_value obj; 5105 napi_value key; 5106 napi_value value; 5107 5108 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5109 napi_create_int32(env, INT_ONE, &key); 5110 napi_create_int32(env, INT_TWO, &value); 5111 status = napi_set_property(env, obj, key, value); 5112 ASSERT_EQ(status, napi_object_expected); 5113} 5114 5115HWTEST_F(NapiBasicTest, NapiGetPropertyTest001, testing::ext::TestSize.Level1) 5116{ 5117 napi_env env = reinterpret_cast<napi_env>(engine_); 5118 napi_value obj = nullptr; 5119 napi_value key; 5120 napi_value result; 5121 5122 napi_create_int32(env, INT_ONE, &key); 5123 napi_status status = napi_get_property(env, obj, key, &result); 5124 ASSERT_EQ(status, napi_invalid_arg); 5125} 5126 5127HWTEST_F(NapiBasicTest, NapiGetPropertyTest002, testing::ext::TestSize.Level1) 5128{ 5129 napi_env env = reinterpret_cast<napi_env>(engine_); 5130 napi_value obj; 5131 napi_value key = nullptr; 5132 napi_value result; 5133 5134 napi_create_object(env, &obj); 5135 napi_status status = napi_get_property(env, obj, key, &result); 5136 ASSERT_EQ(status, napi_invalid_arg); 5137} 5138 5139HWTEST_F(NapiBasicTest, NapiGetPropertyTest003, testing::ext::TestSize.Level1) 5140{ 5141 napi_env env = reinterpret_cast<napi_env>(engine_); 5142 napi_value obj; 5143 napi_value key; 5144 napi_value *result = nullptr; 5145 5146 napi_create_object(env, &obj); 5147 napi_create_int32(env, INT_ONE, &key); 5148 napi_status status = napi_get_property(env, obj, key, result); 5149 ASSERT_EQ(status, napi_invalid_arg); 5150} 5151 5152HWTEST_F(NapiBasicTest, NapiGetPropertyTest004, testing::ext::TestSize.Level1) 5153{ 5154 napi_env env = reinterpret_cast<napi_env>(engine_); 5155 napi_value obj; 5156 napi_value key; 5157 napi_value result; 5158 5159 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5160 napi_create_int32(env, INT_ONE, &key); 5161 status = napi_get_property(env, obj, key, &result); 5162 ASSERT_EQ(status, napi_object_expected); 5163} 5164 5165HWTEST_F(NapiBasicTest, NapiHasPropertyTest001, testing::ext::TestSize.Level1) 5166{ 5167 napi_env env = reinterpret_cast<napi_env>(engine_); 5168 napi_value obj = nullptr; 5169 napi_value key; 5170 bool result; 5171 5172 napi_create_int32(env, INT_ONE, &key); 5173 napi_status status = napi_has_property(env, obj, key, &result); 5174 ASSERT_EQ(status, napi_invalid_arg); 5175} 5176 5177HWTEST_F(NapiBasicTest, NapiHasPropertyTest002, testing::ext::TestSize.Level1) 5178{ 5179 napi_env env = reinterpret_cast<napi_env>(engine_); 5180 napi_value obj; 5181 napi_value key = nullptr; 5182 bool result; 5183 5184 napi_create_object(env, &obj); 5185 napi_status status = napi_has_property(env, obj, key, &result); 5186 ASSERT_EQ(status, napi_invalid_arg); 5187} 5188 5189HWTEST_F(NapiBasicTest, NapiHasPropertyTest003, testing::ext::TestSize.Level1) 5190{ 5191 napi_env env = reinterpret_cast<napi_env>(engine_); 5192 napi_value obj; 5193 napi_value key; 5194 bool *result = nullptr; 5195 5196 napi_create_object(env, &obj); 5197 napi_create_int32(env, INT_ONE, &key); 5198 napi_status status = napi_has_property(env, obj, key, result); 5199 ASSERT_EQ(status, napi_invalid_arg); 5200} 5201 5202HWTEST_F(NapiBasicTest, NapiHasPropertyTest004, testing::ext::TestSize.Level1) 5203{ 5204 napi_env env = reinterpret_cast<napi_env>(engine_); 5205 napi_value obj; 5206 napi_value key; 5207 bool result; 5208 5209 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5210 napi_create_int32(env, INT_ONE, &key); 5211 status = napi_has_property(env, obj, key, &result); 5212 ASSERT_EQ(status, napi_object_expected); 5213} 5214 5215HWTEST_F(NapiBasicTest, NapiDeletePropertyTest001, testing::ext::TestSize.Level1) 5216{ 5217 napi_env env = reinterpret_cast<napi_env>(engine_); 5218 napi_value obj = nullptr; 5219 napi_value key; 5220 bool result; 5221 5222 napi_create_int32(env, INT_ONE, &key); 5223 napi_status status = napi_delete_property(env, obj, key, &result); 5224 ASSERT_EQ(status, napi_invalid_arg); 5225} 5226 5227HWTEST_F(NapiBasicTest, NapiDeletePropertyTest002, testing::ext::TestSize.Level1) 5228{ 5229 napi_env env = reinterpret_cast<napi_env>(engine_); 5230 napi_value obj; 5231 napi_value key = nullptr; 5232 bool result; 5233 5234 napi_create_object(env, &obj); 5235 napi_status status = napi_delete_property(env, obj, key, &result); 5236 ASSERT_EQ(status, napi_invalid_arg); 5237} 5238 5239HWTEST_F(NapiBasicTest, NapiDeletePropertyTest004, testing::ext::TestSize.Level1) 5240{ 5241 napi_env env = reinterpret_cast<napi_env>(engine_); 5242 napi_value obj; 5243 napi_value key; 5244 bool result; 5245 5246 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5247 napi_create_int32(env, INT_ONE, &key); 5248 status = napi_delete_property(env, obj, key, &result); 5249 ASSERT_EQ(status, napi_object_expected); 5250} 5251 5252HWTEST_F(NapiBasicTest, NapiHasOwnPropertyTest001, testing::ext::TestSize.Level1) 5253{ 5254 napi_env env = reinterpret_cast<napi_env>(engine_); 5255 napi_value obj = nullptr; 5256 napi_value key; 5257 bool result; 5258 5259 napi_create_int32(env, INT_ONE, &key); 5260 napi_status status = napi_has_own_property(env, obj, key, &result); 5261 ASSERT_EQ(status, napi_invalid_arg); 5262} 5263 5264HWTEST_F(NapiBasicTest, NapiHasOwnPropertyTest002, testing::ext::TestSize.Level1) 5265{ 5266 napi_env env = reinterpret_cast<napi_env>(engine_); 5267 napi_value obj; 5268 napi_value key = nullptr; 5269 bool result; 5270 5271 napi_create_object(env, &obj); 5272 napi_status status = napi_has_own_property(env, obj, key, &result); 5273 ASSERT_EQ(status, napi_invalid_arg); 5274} 5275 5276HWTEST_F(NapiBasicTest, NapiHasOwnPropertyTest003, testing::ext::TestSize.Level1) 5277{ 5278 napi_env env = reinterpret_cast<napi_env>(engine_); 5279 napi_value obj; 5280 napi_value key; 5281 bool *result = nullptr; 5282 5283 napi_create_object(env, &obj); 5284 napi_create_int32(env, INT_ONE, &key); 5285 napi_status status = napi_has_own_property(env, obj, key, result); 5286 ASSERT_EQ(status, napi_invalid_arg); 5287} 5288 5289HWTEST_F(NapiBasicTest, NapiHasOwnPropertyTest004, testing::ext::TestSize.Level1) 5290{ 5291 napi_env env = reinterpret_cast<napi_env>(engine_); 5292 napi_value obj; 5293 napi_value key; 5294 bool result; 5295 5296 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5297 napi_create_int32(env, INT_ONE, &key); 5298 status = napi_has_own_property(env, obj, key, &result); 5299 ASSERT_EQ(status, napi_object_expected); 5300} 5301 5302HWTEST_F(NapiBasicTest, NapiSetNamedPropertyTest001, testing::ext::TestSize.Level1) 5303{ 5304 napi_env env = reinterpret_cast<napi_env>(engine_); 5305 napi_value obj = nullptr; 5306 napi_value value; 5307 5308 napi_create_int32(env, INT_TWO, &value); 5309 napi_status status = napi_set_named_property(env, obj, TEST_STRING, value); 5310 ASSERT_EQ(status, napi_invalid_arg); 5311} 5312 5313HWTEST_F(NapiBasicTest, NapiSetNamedPropertyTest002, testing::ext::TestSize.Level1) 5314{ 5315 napi_env env = reinterpret_cast<napi_env>(engine_); 5316 napi_value obj; 5317 char* utf8name = nullptr; 5318 napi_value value; 5319 5320 napi_create_object(env, &obj); 5321 napi_create_int32(env, INT_TWO, &value); 5322 napi_status status = napi_set_named_property(env, obj, utf8name, value); 5323 ASSERT_EQ(status, napi_invalid_arg); 5324} 5325 5326HWTEST_F(NapiBasicTest, NapiSetNamedPropertyTest003, testing::ext::TestSize.Level1) 5327{ 5328 napi_env env = reinterpret_cast<napi_env>(engine_); 5329 napi_value obj; 5330 napi_value value = nullptr; 5331 5332 napi_create_object(env, &obj); 5333 napi_status status = napi_set_named_property(env, obj, TEST_STRING, value); 5334 ASSERT_EQ(status, napi_invalid_arg); 5335} 5336 5337HWTEST_F(NapiBasicTest, NapiSetNamedPropertyTest004, testing::ext::TestSize.Level1) 5338{ 5339 napi_env env = reinterpret_cast<napi_env>(engine_); 5340 napi_value obj; 5341 napi_value value; 5342 5343 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5344 napi_create_int32(env, INT_TWO, &value); 5345 status = napi_set_named_property(env, obj, TEST_STRING, value); 5346 ASSERT_EQ(status, napi_object_expected); 5347} 5348 5349HWTEST_F(NapiBasicTest, NapiGetNamedPropertyTest001, testing::ext::TestSize.Level1) 5350{ 5351 napi_env env = reinterpret_cast<napi_env>(engine_); 5352 napi_value obj = nullptr; 5353 napi_value value; 5354 5355 napi_status status = napi_get_named_property(env, obj, TEST_STRING, &value); 5356 ASSERT_EQ(status, napi_invalid_arg); 5357} 5358 5359HWTEST_F(NapiBasicTest, NapiGetNamedPropertyTest002, testing::ext::TestSize.Level1) 5360{ 5361 napi_env env = reinterpret_cast<napi_env>(engine_); 5362 napi_value obj; 5363 char* utf8name = nullptr; 5364 napi_value value; 5365 5366 napi_create_object(env, &obj); 5367 napi_status status = napi_get_named_property(env, obj, utf8name, &value); 5368 ASSERT_EQ(status, napi_invalid_arg); 5369} 5370 5371HWTEST_F(NapiBasicTest, NapiGetNamedPropertyTest003, testing::ext::TestSize.Level1) 5372{ 5373 napi_env env = reinterpret_cast<napi_env>(engine_); 5374 napi_value obj; 5375 napi_value *value = nullptr; 5376 5377 napi_create_object(env, &obj); 5378 napi_status status = napi_get_named_property(env, obj, TEST_STRING, value); 5379 ASSERT_EQ(status, napi_invalid_arg); 5380} 5381 5382HWTEST_F(NapiBasicTest, NapiGetNamedPropertyTest004, testing::ext::TestSize.Level1) 5383{ 5384 napi_env env = reinterpret_cast<napi_env>(engine_); 5385 napi_value obj; 5386 napi_value value; 5387 5388 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5389 status = napi_get_named_property(env, obj, TEST_STRING, &value); 5390 ASSERT_EQ(status, napi_object_expected); 5391} 5392 5393HWTEST_F(NapiBasicTest, NapiHasNamedPropertyTest001, testing::ext::TestSize.Level1) 5394{ 5395 napi_env env = reinterpret_cast<napi_env>(engine_); 5396 napi_value obj = nullptr; 5397 bool result; 5398 5399 napi_status status = napi_has_named_property(env, obj, TEST_STRING, &result); 5400 ASSERT_EQ(status, napi_invalid_arg); 5401} 5402 5403HWTEST_F(NapiBasicTest, NapiHasNamedPropertyTest002, testing::ext::TestSize.Level1) 5404{ 5405 napi_env env = reinterpret_cast<napi_env>(engine_); 5406 napi_value obj; 5407 char* utf8name = nullptr; 5408 bool result; 5409 5410 napi_create_object(env, &obj); 5411 napi_status status = napi_has_named_property(env, obj, utf8name, &result); 5412 ASSERT_EQ(status, napi_invalid_arg); 5413} 5414 5415HWTEST_F(NapiBasicTest, NapiHasNamedPropertyTest003, testing::ext::TestSize.Level1) 5416{ 5417 napi_env env = reinterpret_cast<napi_env>(engine_); 5418 napi_value obj; 5419 bool *result = nullptr; 5420 5421 napi_create_object(env, &obj); 5422 napi_status status = napi_has_named_property(env, obj, TEST_STRING, result); 5423 ASSERT_EQ(status, napi_invalid_arg); 5424} 5425 5426HWTEST_F(NapiBasicTest, NapiHasNamedPropertyTest004, testing::ext::TestSize.Level1) 5427{ 5428 napi_env env = reinterpret_cast<napi_env>(engine_); 5429 napi_value obj; 5430 bool result; 5431 5432 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5433 status = napi_has_named_property(env, obj, TEST_STRING, &result); 5434 ASSERT_EQ(status, napi_object_expected); 5435} 5436 5437HWTEST_F(NapiBasicTest, NapiSetElementTest001, testing::ext::TestSize.Level1) 5438{ 5439 napi_env env = reinterpret_cast<napi_env>(engine_); 5440 napi_value obj = nullptr; 5441 uint32_t index = 1; 5442 napi_value value; 5443 5444 napi_create_int32(env, INT_TWO, &value); 5445 napi_status status = napi_set_element(env, obj, index, value); 5446 ASSERT_EQ(status, napi_invalid_arg); 5447} 5448 5449HWTEST_F(NapiBasicTest, NapiSetElementTest002, testing::ext::TestSize.Level1) 5450{ 5451 napi_env env = reinterpret_cast<napi_env>(engine_); 5452 napi_value obj; 5453 uint32_t index = 1; 5454 napi_value value = nullptr; 5455 5456 napi_create_object(env, &obj); 5457 napi_status status = napi_set_element(env, obj, index, value); 5458 ASSERT_EQ(status, napi_invalid_arg); 5459} 5460 5461HWTEST_F(NapiBasicTest, NapiSetElementTest003, testing::ext::TestSize.Level1) 5462{ 5463 napi_env env = reinterpret_cast<napi_env>(engine_); 5464 napi_value obj; 5465 uint32_t index = 1; 5466 napi_value value; 5467 5468 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5469 napi_create_int32(env, INT_TWO, &value); 5470 status = napi_set_element(env, obj, index, value); 5471 ASSERT_EQ(status, napi_object_expected); 5472} 5473 5474HWTEST_F(NapiBasicTest, NapiGetElementTest001, testing::ext::TestSize.Level1) 5475{ 5476 napi_env env = reinterpret_cast<napi_env>(engine_); 5477 napi_value obj = nullptr; 5478 uint32_t index = 1; 5479 napi_value value; 5480 5481 napi_status status = napi_get_element(env, obj, index, &value); 5482 ASSERT_EQ(status, napi_invalid_arg); 5483} 5484 5485HWTEST_F(NapiBasicTest, NapiGetElementTest002, testing::ext::TestSize.Level1) 5486{ 5487 napi_env env = reinterpret_cast<napi_env>(engine_); 5488 napi_value obj; 5489 uint32_t index = 1; 5490 napi_value *value = nullptr; 5491 5492 napi_create_object(env, &obj); 5493 napi_status status = napi_get_element(env, obj, index, value); 5494 ASSERT_EQ(status, napi_invalid_arg); 5495} 5496 5497HWTEST_F(NapiBasicTest, NapiGetElementTest003, testing::ext::TestSize.Level1) 5498{ 5499 napi_env env = reinterpret_cast<napi_env>(engine_); 5500 napi_value obj; 5501 uint32_t index = 1; 5502 napi_value value; 5503 5504 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5505 status = napi_get_element(env, obj, index, &value); 5506 ASSERT_EQ(status, napi_object_expected); 5507} 5508 5509HWTEST_F(NapiBasicTest, NapiHasElementTest001, testing::ext::TestSize.Level1) 5510{ 5511 napi_env env = reinterpret_cast<napi_env>(engine_); 5512 napi_value obj = nullptr; 5513 uint32_t index = 1; 5514 bool result; 5515 5516 napi_status status = napi_has_element(env, obj, index, &result); 5517 ASSERT_EQ(status, napi_invalid_arg); 5518} 5519 5520HWTEST_F(NapiBasicTest, NapiHasElementTest002, testing::ext::TestSize.Level1) 5521{ 5522 napi_env env = reinterpret_cast<napi_env>(engine_); 5523 napi_value obj; 5524 uint32_t index = 1; 5525 bool *result = nullptr; 5526 5527 napi_create_object(env, &obj); 5528 napi_status status = napi_has_element(env, obj, index, result); 5529 ASSERT_EQ(status, napi_invalid_arg); 5530} 5531 5532HWTEST_F(NapiBasicTest, NapiHasElementTest003, testing::ext::TestSize.Level1) 5533{ 5534 napi_env env = reinterpret_cast<napi_env>(engine_); 5535 napi_value obj; 5536 uint32_t index = 1; 5537 bool result; 5538 5539 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5540 status = napi_has_element(env, obj, index, &result); 5541 ASSERT_EQ(status, napi_object_expected); 5542} 5543 5544HWTEST_F(NapiBasicTest, NapiDeleteElementTest001, testing::ext::TestSize.Level1) 5545{ 5546 napi_env env = reinterpret_cast<napi_env>(engine_); 5547 napi_value obj = nullptr; 5548 uint32_t index = 1; 5549 bool result; 5550 5551 napi_status status = napi_delete_element(env, obj, index, &result); 5552 ASSERT_EQ(status, napi_invalid_arg); 5553} 5554 5555HWTEST_F(NapiBasicTest, NapiDeleteElementTest002, testing::ext::TestSize.Level1) 5556{ 5557 napi_env env = reinterpret_cast<napi_env>(engine_); 5558 napi_value obj; 5559 uint32_t index = 1; 5560 bool result; 5561 5562 napi_status status = napi_create_double(env, TEST_DOUBLE, &obj); 5563 status = napi_delete_element(env, obj, index, &result); 5564 ASSERT_EQ(status, napi_object_expected); 5565} 5566 5567HWTEST_F(NapiBasicTest, NapiDefinePropertiesTest001, testing::ext::TestSize.Level1) 5568{ 5569 napi_env env = reinterpret_cast<napi_env>(engine_); 5570 napi_property_descriptor desc[] = { 5571 {"testMethod", nullptr, [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, 5572 nullptr, nullptr, nullptr, napi_default, nullptr}, 5573 }; 5574 napi_value result = nullptr; 5575 5576 napi_status status = napi_define_properties(env, result, sizeof(desc)/sizeof(desc[0]), desc); 5577 ASSERT_EQ(status, napi_invalid_arg); 5578} 5579 5580HWTEST_F(NapiBasicTest, NapiDefinePropertiesTest002, testing::ext::TestSize.Level1) 5581{ 5582 napi_env env = reinterpret_cast<napi_env>(engine_); 5583 napi_property_descriptor *desc = nullptr; 5584 napi_value result; 5585 napi_create_object(env, &result); 5586 5587 napi_status status = napi_define_properties(env, result, INT_ONE, desc); 5588 ASSERT_EQ(status, napi_invalid_arg); 5589} 5590 5591HWTEST_F(NapiBasicTest, NapiDefinePropertiesTest003, testing::ext::TestSize.Level1) 5592{ 5593 napi_env env = reinterpret_cast<napi_env>(engine_); 5594 napi_property_descriptor desc[] = { 5595 {"testMethod", nullptr, [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, 5596 nullptr, nullptr, nullptr, napi_default, nullptr}, 5597 }; 5598 napi_value result; 5599 napi_create_double(env, TEST_DOUBLE, &result); 5600 5601 napi_status status = napi_define_properties(env, result, INT_ONE, desc); 5602 ASSERT_EQ(status, napi_object_expected); 5603} 5604 5605HWTEST_F(NapiBasicTest, NapiDefinePropertiesTest004, testing::ext::TestSize.Level1) 5606{ 5607 napi_env env = reinterpret_cast<napi_env>(engine_); 5608 napi_property_descriptor desc[] = { 5609 {nullptr, nullptr, [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, 5610 nullptr, nullptr, nullptr, napi_default, nullptr}, 5611 }; 5612 napi_value result; 5613 napi_create_object(env, &result); 5614 5615 napi_status status = napi_define_properties(env, result, INT_ONE, desc); 5616 ASSERT_EQ(status, napi_name_expected); 5617} 5618 5619HWTEST_F(NapiBasicTest, NapiDefinePropertiesTest005, testing::ext::TestSize.Level1) 5620{ 5621 napi_env env = reinterpret_cast<napi_env>(engine_); 5622 napi_value name; 5623 napi_create_object(env, &name); 5624 napi_property_descriptor desc[] = { 5625 {nullptr, name, [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, 5626 nullptr, nullptr, nullptr, napi_default, nullptr}, 5627 }; 5628 napi_value result; 5629 napi_create_object(env, &result); 5630 5631 napi_status status = napi_define_properties(env, result, INT_ONE, desc); 5632 ASSERT_EQ(status, napi_name_expected); 5633} 5634 5635HWTEST_F(NapiBasicTest, NapiTypeTagObjectTest001, testing::ext::TestSize.Level1) 5636{ 5637 napi_env env = reinterpret_cast<napi_env>(engine_); 5638 napi_value obj = nullptr; 5639 napi_type_tag tag; 5640 5641 napi_status status = napi_type_tag_object(env, obj, &tag); 5642 ASSERT_EQ(status, napi_invalid_arg); 5643} 5644 5645HWTEST_F(NapiBasicTest, NapiTypeTagObjectTest002, testing::ext::TestSize.Level1) 5646{ 5647 napi_env env = reinterpret_cast<napi_env>(engine_); 5648 napi_value obj; 5649 napi_type_tag* tag = nullptr; 5650 napi_create_object(env, &obj); 5651 5652 napi_status status = napi_type_tag_object(env, obj, tag); 5653 ASSERT_EQ(status, napi_invalid_arg); 5654} 5655 5656HWTEST_F(NapiBasicTest, NapiTypeTagObjectTest003, testing::ext::TestSize.Level1) 5657{ 5658 napi_env env = reinterpret_cast<napi_env>(engine_); 5659 napi_value obj; 5660 napi_type_tag tag; 5661 napi_create_double(env, TEST_DOUBLE, &obj); 5662 5663 napi_status status = napi_type_tag_object(env, obj, &tag); 5664 ASSERT_EQ(status, napi_object_expected); 5665} 5666 5667HWTEST_F(NapiBasicTest, NapiCheckObjectTypeTagTest001, testing::ext::TestSize.Level1) 5668{ 5669 napi_env env = reinterpret_cast<napi_env>(engine_); 5670 napi_value obj = nullptr; 5671 napi_type_tag tag; 5672 bool result; 5673 5674 napi_status status = napi_check_object_type_tag(env, obj, &tag, &result); 5675 ASSERT_EQ(status, napi_invalid_arg); 5676} 5677 5678HWTEST_F(NapiBasicTest, NapiCheckObjectTypeTagTest002, testing::ext::TestSize.Level1) 5679{ 5680 napi_env env = reinterpret_cast<napi_env>(engine_); 5681 napi_value obj; 5682 napi_type_tag *tag = nullptr; 5683 bool result; 5684 napi_create_object(env, &obj); 5685 5686 napi_status status = napi_check_object_type_tag(env, obj, tag, &result); 5687 ASSERT_EQ(status, napi_invalid_arg); 5688} 5689 5690HWTEST_F(NapiBasicTest, NapiCheckObjectTypeTagTest003, testing::ext::TestSize.Level1) 5691{ 5692 napi_env env = reinterpret_cast<napi_env>(engine_); 5693 napi_value obj; 5694 napi_type_tag tag; 5695 bool *result = nullptr; 5696 napi_create_object(env, &obj); 5697 5698 napi_status status = napi_check_object_type_tag(env, obj, &tag, result); 5699 ASSERT_EQ(status, napi_invalid_arg); 5700} 5701 5702HWTEST_F(NapiBasicTest, NapiCallFunctionTest001, testing::ext::TestSize.Level1) 5703{ 5704 napi_env env = reinterpret_cast<napi_env>(engine_); 5705 napi_value funcValue = nullptr; 5706 napi_value recv = nullptr; 5707 size_t argc = 1; 5708 napi_value args[1] = {nullptr}; 5709 napi_value funcResultValue = nullptr; 5710 5711 napi_status status = napi_call_function(env, recv, funcValue, argc, args, &funcResultValue); 5712 ASSERT_EQ(status, napi_invalid_arg); 5713} 5714 5715HWTEST_F(NapiBasicTest, NapiCallFunctionTest002, testing::ext::TestSize.Level1) 5716{ 5717 napi_env env = reinterpret_cast<napi_env>(engine_); 5718 napi_value funcValue = nullptr; 5719 napi_value recv = nullptr; 5720 size_t argc = 1; 5721 napi_value* args = nullptr; 5722 napi_value funcResultValue = nullptr; 5723 5724 napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, 5725 [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, nullptr, &funcValue); 5726 napi_status status = napi_call_function(env, recv, funcValue, argc, args, &funcResultValue); 5727 ASSERT_EQ(status, napi_invalid_arg); 5728} 5729 5730HWTEST_F(NapiBasicTest, NapiCallFunctionTest003, testing::ext::TestSize.Level1) 5731{ 5732 napi_env env = reinterpret_cast<napi_env>(engine_); 5733 napi_value funcValue = nullptr; 5734 napi_value recv = nullptr; 5735 size_t argc = 1; 5736 napi_value args[1] = {nullptr}; 5737 napi_value funcResultValue = nullptr; 5738 5739 napi_create_object(env, &funcValue); 5740 napi_status status = napi_call_function(env, recv, funcValue, argc, args, &funcResultValue); 5741 ASSERT_EQ(status, napi_function_expected); 5742} 5743 5744HWTEST_F(NapiBasicTest, NapiCallFunctionTest004, testing::ext::TestSize.Level1) 5745{ 5746 napi_env env = reinterpret_cast<napi_env>(engine_); 5747 napi_value funcValue = nullptr; 5748 napi_value recv = nullptr; 5749 size_t argc = 1; 5750 napi_value args[1] = {nullptr}; 5751 napi_value funcResultValue = nullptr; 5752 5753 napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, [](napi_env env, napi_callback_info info) -> napi_value { 5754 napi_throw_error(env, "500", "Common error"); 5755 return nullptr; 5756 }, nullptr, &funcValue); 5757 napi_status status = napi_call_function(env, recv, funcValue, argc, args, &funcResultValue); 5758 ASSERT_EQ(status, napi_pending_exception); 5759} 5760 5761HWTEST_F(NapiBasicTest, NapiCreateFunctionTest001, testing::ext::TestSize.Level1) 5762{ 5763 napi_env env = reinterpret_cast<napi_env>(engine_); 5764 napi_value funcValue = nullptr; 5765 5766 napi_status status = napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, nullptr, nullptr, &funcValue); 5767 ASSERT_EQ(status, napi_invalid_arg); 5768} 5769 5770HWTEST_F(NapiBasicTest, NapiCreateFunctionTest002, testing::ext::TestSize.Level1) 5771{ 5772 napi_env env = reinterpret_cast<napi_env>(engine_); 5773 napi_value *funcValue = nullptr; 5774 5775 napi_status status = napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, 5776 [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, nullptr, funcValue); 5777 ASSERT_EQ(status, napi_invalid_arg); 5778} 5779 5780HWTEST_F(NapiBasicTest, NapiGetCbInfoTest001, testing::ext::TestSize.Level1) 5781{ 5782 napi_env env = reinterpret_cast<napi_env>(engine_); 5783 napi_callback_info info = nullptr; 5784 size_t argc = 0; 5785 napi_value* argv = nullptr; 5786 napi_value thisVar; 5787 void* data = nullptr; 5788 5789 napi_status status = napi_get_cb_info(env, info, &argc, argv, &thisVar, &data); 5790 ASSERT_EQ(status, napi_invalid_arg); 5791} 5792 5793HWTEST_F(NapiBasicTest, NapiGetNewTargetTest001, testing::ext::TestSize.Level1) 5794{ 5795 napi_env env = reinterpret_cast<napi_env>(engine_); 5796 napi_callback_info info = nullptr; 5797 napi_value result; 5798 5799 napi_status status = napi_get_new_target(env, info, &result); 5800 ASSERT_EQ(status, napi_invalid_arg); 5801} 5802 5803HWTEST_F(NapiBasicTest, NapiGetNewTargetTest002, testing::ext::TestSize.Level1) 5804{ 5805 napi_env env = reinterpret_cast<napi_env>(engine_); 5806 napi_callback_info info = napi_callback_info(nullptr);; 5807 napi_value* result = nullptr; 5808 5809 napi_status status = napi_get_new_target(env, info, result); 5810 ASSERT_EQ(status, napi_invalid_arg); 5811} 5812 5813HWTEST_F(NapiBasicTest, NapiNewInstanceTest001, testing::ext::TestSize.Level1) 5814{ 5815 napi_env env = reinterpret_cast<napi_env>(engine_); 5816 napi_value constructor = nullptr; 5817 size_t argc = 0; 5818 napi_value args[1] = {nullptr}; 5819 napi_value result; 5820 5821 napi_status status = napi_new_instance(env, constructor, argc, args, &result); 5822 ASSERT_EQ(status, napi_invalid_arg); 5823} 5824 5825HWTEST_F(NapiBasicTest, NapiNewInstanceTest002, testing::ext::TestSize.Level1) 5826{ 5827 napi_env env = reinterpret_cast<napi_env>(engine_); 5828 napi_value constructor; 5829 size_t argc = 1; 5830 napi_value* args = nullptr; 5831 napi_value result; 5832 5833 napi_create_object(env, &constructor); 5834 napi_status status = napi_new_instance(env, constructor, argc, args, &result); 5835 ASSERT_EQ(status, napi_invalid_arg); 5836} 5837 5838HWTEST_F(NapiBasicTest, NapiNewInstanceTest003, testing::ext::TestSize.Level1) 5839{ 5840 napi_env env = reinterpret_cast<napi_env>(engine_); 5841 napi_value constructor; 5842 size_t argc = 1; 5843 napi_value args[1] = {nullptr}; 5844 napi_value* result = nullptr; 5845 5846 napi_create_object(env, &constructor); 5847 napi_status status = napi_new_instance(env, constructor, argc, args, result); 5848 ASSERT_EQ(status, napi_invalid_arg); 5849} 5850 5851HWTEST_F(NapiBasicTest, NapiNewInstanceTest004, testing::ext::TestSize.Level1) 5852{ 5853 napi_env env = reinterpret_cast<napi_env>(engine_); 5854 napi_value constructor; 5855 size_t argc = 1; 5856 napi_value args[1] = {nullptr}; 5857 napi_value result; 5858 5859 napi_create_object(env, &constructor); 5860 napi_status status = napi_new_instance(env, constructor, argc, args, &result); 5861 ASSERT_EQ(status, napi_function_expected); 5862} 5863 5864HWTEST_F(NapiBasicTest, NapiDefineClassTest001, testing::ext::TestSize.Level1) 5865{ 5866 napi_env env = reinterpret_cast<napi_env>(engine_); 5867 napi_value result; 5868 napi_status status = napi_define_class( 5869 env, nullptr, NAPI_AUTO_LENGTH, 5870 [](napi_env env, napi_callback_info info) -> napi_value { 5871 napi_value thisVar = nullptr; 5872 napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); 5873 5874 return thisVar; 5875 }, 5876 nullptr, 0, nullptr, &result); 5877 ASSERT_EQ(status, napi_invalid_arg); 5878} 5879 5880 5881HWTEST_F(NapiBasicTest, NapiDefineClassTest002, testing::ext::TestSize.Level1) 5882{ 5883 napi_env env = reinterpret_cast<napi_env>(engine_); 5884 napi_value result; 5885 napi_status status = napi_define_class( 5886 env, "TestClass", NAPI_AUTO_LENGTH, 5887 nullptr, nullptr, 0, nullptr, &result); 5888 ASSERT_EQ(status, napi_invalid_arg); 5889} 5890 5891HWTEST_F(NapiBasicTest, NapiDefineClassTest003, testing::ext::TestSize.Level1) 5892{ 5893 napi_env env = reinterpret_cast<napi_env>(engine_); 5894 napi_value* result = nullptr; 5895 napi_status status = napi_define_class( 5896 env, "TestClass", NAPI_AUTO_LENGTH, 5897 [](napi_env env, napi_callback_info info) -> napi_value { 5898 napi_value thisVar = nullptr; 5899 napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); 5900 5901 return thisVar; 5902 }, 5903 nullptr, 0, nullptr, result); 5904 ASSERT_EQ(status, napi_invalid_arg); 5905} 5906 5907HWTEST_F(NapiBasicTest, NapiDefineClassTest004, testing::ext::TestSize.Level1) 5908{ 5909 napi_env env = reinterpret_cast<napi_env>(engine_); 5910 napi_value result; 5911 napi_status status = napi_define_class( 5912 env, "TestClass", NAPI_AUTO_LENGTH, 5913 [](napi_env env, napi_callback_info info) -> napi_value { 5914 napi_value thisVar = nullptr; 5915 napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); 5916 5917 return thisVar; 5918 }, 5919 nullptr, 1, nullptr, &result); 5920 ASSERT_EQ(status, napi_invalid_arg); 5921} 5922 5923HWTEST_F(NapiBasicTest, NapiWrapTest001, testing::ext::TestSize.Level1) 5924{ 5925 napi_env env = reinterpret_cast<napi_env>(engine_); 5926 napi_value obj = nullptr; 5927 napi_ref result; 5928 5929 napi_status status = napi_wrap(env, obj, (void *)TEST_STRING, 5930 [](napi_env, void* data, void* hint) {}, nullptr, &result); 5931 ASSERT_EQ(status, napi_invalid_arg); 5932} 5933 5934HWTEST_F(NapiBasicTest, NapiWrapTest002, testing::ext::TestSize.Level1) 5935{ 5936 napi_env env = reinterpret_cast<napi_env>(engine_); 5937 napi_value obj; 5938 napi_ref result; 5939 5940 napi_create_object(env, &obj); 5941 napi_status status = napi_wrap(env, obj, nullptr, [](napi_env, void* data, void* hint) {}, nullptr, &result); 5942 ASSERT_EQ(status, napi_invalid_arg); 5943} 5944 5945HWTEST_F(NapiBasicTest, NapiWrapTest003, testing::ext::TestSize.Level1) 5946{ 5947 napi_env env = reinterpret_cast<napi_env>(engine_); 5948 napi_value obj; 5949 napi_ref result; 5950 5951 napi_create_object(env, &obj); 5952 napi_status status = napi_wrap(env, obj, (void *)TEST_STRING, nullptr, nullptr, &result); 5953 ASSERT_EQ(status, napi_invalid_arg); 5954} 5955 5956HWTEST_F(NapiBasicTest, NapiWrapTest004, testing::ext::TestSize.Level1) 5957{ 5958 napi_env env = reinterpret_cast<napi_env>(engine_); 5959 napi_value obj; 5960 napi_ref result; 5961 5962 napi_create_double(env, TEST_DOUBLE, &obj); 5963 napi_status status = napi_wrap(env, obj, (void *)TEST_STRING, 5964 [](napi_env, void* data, void* hint) {}, nullptr, &result); 5965 ASSERT_EQ(status, napi_object_expected); 5966} 5967 5968HWTEST_F(NapiBasicTest, NapiUnwrapTest001, testing::ext::TestSize.Level1) 5969{ 5970 napi_env env = reinterpret_cast<napi_env>(engine_); 5971 napi_value obj = nullptr; 5972 char *testStr = nullptr; 5973 5974 napi_status status = napi_unwrap(env, obj, (void **)&testStr); 5975 ASSERT_EQ(status, napi_invalid_arg); 5976} 5977 5978HWTEST_F(NapiBasicTest, NapiUnwrapTest002, testing::ext::TestSize.Level1) 5979{ 5980 napi_env env = reinterpret_cast<napi_env>(engine_); 5981 napi_value obj; 5982 char **testStr = nullptr; 5983 5984 napi_create_object(env, &obj); 5985 napi_status status = napi_unwrap(env, obj, (void **)testStr); 5986 ASSERT_EQ(status, napi_invalid_arg); 5987} 5988 5989HWTEST_F(NapiBasicTest, NapiUnwrapTest003, testing::ext::TestSize.Level1) 5990{ 5991 napi_env env = reinterpret_cast<napi_env>(engine_); 5992 napi_value obj = nullptr; 5993 char *testStr = nullptr; 5994 5995 napi_create_double(env, TEST_DOUBLE, &obj); 5996 napi_status status = napi_unwrap(env, obj, (void **)&testStr); 5997 ASSERT_EQ(status, napi_object_expected); 5998} 5999 6000HWTEST_F(NapiBasicTest, NapiRemoveWrapTest001, testing::ext::TestSize.Level1) 6001{ 6002 napi_env env = reinterpret_cast<napi_env>(engine_); 6003 napi_value obj = nullptr; 6004 char *testStr = nullptr; 6005 6006 napi_status status = napi_remove_wrap(env, obj, (void **)&testStr); 6007 ASSERT_EQ(status, napi_invalid_arg); 6008} 6009 6010HWTEST_F(NapiBasicTest, NapiRemoveWrapTest002, testing::ext::TestSize.Level1) 6011{ 6012 napi_env env = reinterpret_cast<napi_env>(engine_); 6013 napi_value obj; 6014 char **testStr = nullptr; 6015 6016 napi_create_object(env, &obj); 6017 napi_status status = napi_remove_wrap(env, obj, (void **)testStr); 6018 ASSERT_EQ(status, napi_invalid_arg); 6019} 6020 6021HWTEST_F(NapiBasicTest, NapiRemoveWrapTest003, testing::ext::TestSize.Level1) 6022{ 6023 napi_env env = reinterpret_cast<napi_env>(engine_); 6024 napi_value obj = nullptr; 6025 char *testStr = nullptr; 6026 6027 napi_create_double(env, TEST_DOUBLE, &obj); 6028 napi_status status = napi_remove_wrap(env, obj, (void **)&testStr); 6029 ASSERT_EQ(status, napi_object_expected); 6030} 6031 6032HWTEST_F(NapiBasicTest, NapiCreateAsyncWorkTest001, testing::ext::TestSize.Level1) 6033{ 6034 napi_env env = reinterpret_cast<napi_env>(engine_); 6035 napi_async_work work = nullptr; 6036 napi_value resourceName = nullptr; 6037 6038 napi_status status = napi_create_async_work(env, nullptr, resourceName, [](napi_env value, void* data) {}, 6039 [](napi_env env, napi_status status, void* data) {}, nullptr, &work); 6040 ASSERT_EQ(status, napi_invalid_arg); 6041} 6042 6043HWTEST_F(NapiBasicTest, NapiCreateAsyncWorkTest002, testing::ext::TestSize.Level1) 6044{ 6045 napi_env env = reinterpret_cast<napi_env>(engine_); 6046 napi_async_work work = nullptr; 6047 napi_value resourceName = nullptr; 6048 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 6049 napi_status status = napi_create_async_work(env, nullptr, resourceName, nullptr, 6050 [](napi_env env, napi_status status, void* data) {}, nullptr, &work); 6051 ASSERT_EQ(status, napi_invalid_arg); 6052} 6053 6054HWTEST_F(NapiBasicTest, NapiCreateAsyncWorkTest003, testing::ext::TestSize.Level1) 6055{ 6056 napi_env env = reinterpret_cast<napi_env>(engine_); 6057 napi_async_work work = nullptr; 6058 napi_value resourceName = nullptr; 6059 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 6060 napi_status status = napi_create_async_work(env, nullptr, resourceName, [](napi_env value, void* data) {}, 6061 nullptr, nullptr, &work); 6062 ASSERT_EQ(status, napi_invalid_arg); 6063} 6064 6065HWTEST_F(NapiBasicTest, NapiCreateAsyncWorkTest004, testing::ext::TestSize.Level1) 6066{ 6067 napi_env env = reinterpret_cast<napi_env>(engine_); 6068 napi_async_work* work = nullptr; 6069 napi_value resourceName = nullptr; 6070 napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName); 6071 napi_status status = napi_create_async_work(env, nullptr, resourceName, [](napi_env value, void* data) {}, 6072 nullptr, nullptr, work); 6073 ASSERT_EQ(status, napi_invalid_arg); 6074} 6075 6076HWTEST_F(NapiBasicTest, NapiDeleteAsyncWorkTest001, testing::ext::TestSize.Level1) 6077{ 6078 napi_env env = reinterpret_cast<napi_env>(engine_); 6079 napi_async_work work = nullptr; 6080 6081 napi_status status = napi_delete_async_work(env, work); 6082 ASSERT_EQ(status, napi_invalid_arg); 6083} 6084 6085HWTEST_F(NapiBasicTest, NapiQueueAsyncWorkTest001, testing::ext::TestSize.Level1) 6086{ 6087 napi_env env = reinterpret_cast<napi_env>(engine_); 6088 napi_async_work work = nullptr; 6089 6090 napi_status status = napi_queue_async_work(env, work); 6091 ASSERT_EQ(status, napi_invalid_arg); 6092} 6093 6094HWTEST_F(NapiBasicTest, NapiCancelAsyncWorkTest001, testing::ext::TestSize.Level1) 6095{ 6096 napi_env env = reinterpret_cast<napi_env>(engine_); 6097 napi_async_work work = nullptr; 6098 6099 napi_status status = napi_cancel_async_work(env, work); 6100 ASSERT_EQ(status, napi_invalid_arg); 6101} 6102 6103HWTEST_F(NapiBasicTest, NapiAsyncInitTest001, testing::ext::TestSize.Level1) 6104{ 6105 napi_env env = reinterpret_cast<napi_env>(engine_); 6106 napi_value resourceName = nullptr; 6107 napi_async_context context; 6108 6109 napi_status status = napi_async_init(env, nullptr, resourceName, &context); 6110 ASSERT_EQ(status, napi_invalid_arg); 6111} 6112 6113HWTEST_F(NapiBasicTest, NapiAsyncInitTest002, testing::ext::TestSize.Level1) 6114{ 6115 napi_env env = reinterpret_cast<napi_env>(engine_); 6116 napi_value resourceName; 6117 napi_async_context* context = nullptr; 6118 6119 napi_create_string_utf8(env, "test", NAPI_AUTO_LENGTH, &resourceName); 6120 napi_status status = napi_async_init(env, nullptr, resourceName, context); 6121 ASSERT_EQ(status, napi_invalid_arg); 6122} 6123 6124HWTEST_F(NapiBasicTest, NapiMakeCallbackTest001, testing::ext::TestSize.Level1) 6125{ 6126 napi_env env = reinterpret_cast<napi_env>(engine_); 6127 napi_async_context context = nullptr; 6128 napi_value recv = nullptr; 6129 napi_value func; 6130 size_t argc = 1; 6131 napi_value args[1] = {nullptr}; 6132 napi_value result = nullptr; 6133 6134 napi_create_double(env, TEST_DOUBLE, &func); 6135 napi_status status = napi_make_callback(env, context, recv, func, argc, args, &result); 6136 ASSERT_EQ(status, napi_invalid_arg); 6137} 6138 6139HWTEST_F(NapiBasicTest, NapiMakeCallbackTest002, testing::ext::TestSize.Level1) 6140{ 6141 napi_env env = reinterpret_cast<napi_env>(engine_); 6142 napi_async_context context = nullptr; 6143 napi_value recv; 6144 napi_value func = nullptr; 6145 size_t argc = 1; 6146 napi_value args[1] = {nullptr}; 6147 napi_value result = nullptr; 6148 6149 napi_create_double(env, TEST_DOUBLE, &recv); 6150 napi_status status = napi_make_callback(env, context, recv, func, argc, args, &result); 6151 ASSERT_EQ(status, napi_invalid_arg); 6152} 6153 6154HWTEST_F(NapiBasicTest, NapiAsyncDestroyTest001, testing::ext::TestSize.Level1) 6155{ 6156 napi_env env = reinterpret_cast<napi_env>(engine_); 6157 napi_async_context context = nullptr; 6158 6159 napi_status status = napi_async_destroy(env, context); 6160 ASSERT_EQ(status, napi_invalid_arg); 6161} 6162 6163HWTEST_F(NapiBasicTest, NapiOpenCallbackScopeTest001, testing::ext::TestSize.Level1) 6164{ 6165 napi_env env = reinterpret_cast<napi_env>(engine_); 6166 napi_value obj = nullptr; 6167 napi_async_context context = nullptr; 6168 napi_callback_scope* result = nullptr; 6169 6170 napi_status status = napi_open_callback_scope(env, obj, context, result); 6171 ASSERT_EQ(status, napi_invalid_arg); 6172} 6173 6174HWTEST_F(NapiBasicTest, NapiCloseCallbackScopeTest001, testing::ext::TestSize.Level1) 6175{ 6176 napi_env env = reinterpret_cast<napi_env>(engine_); 6177 napi_callback_scope result = nullptr; 6178 6179 napi_status status = napi_close_callback_scope(env, result); 6180 ASSERT_EQ(status, napi_invalid_arg); 6181} 6182 6183HWTEST_F(NapiBasicTest, NapiGetVersionTest001, testing::ext::TestSize.Level1) 6184{ 6185 napi_env env = reinterpret_cast<napi_env>(engine_); 6186 uint32_t* result = nullptr; 6187 6188 napi_status status = napi_get_version(env, result); 6189 ASSERT_EQ(status, napi_invalid_arg); 6190} 6191 6192HWTEST_F(NapiBasicTest, NapiCreatePromiseTest001, testing::ext::TestSize.Level1) 6193{ 6194 napi_env env = reinterpret_cast<napi_env>(engine_); 6195 napi_value* promise = nullptr; 6196 napi_deferred deferred = nullptr; 6197 6198 napi_status status = napi_create_promise(env, &deferred, promise); 6199 ASSERT_EQ(status, napi_invalid_arg); 6200} 6201 6202HWTEST_F(NapiBasicTest, NapiCreatePromiseTest002, testing::ext::TestSize.Level1) 6203{ 6204 napi_env env = reinterpret_cast<napi_env>(engine_); 6205 napi_value promise = nullptr; 6206 napi_deferred* deferred = nullptr; 6207 6208 napi_status status = napi_create_promise(env, deferred, &promise); 6209 ASSERT_EQ(status, napi_invalid_arg); 6210} 6211 6212HWTEST_F(NapiBasicTest, NapiResolveDeferredTest001, testing::ext::TestSize.Level1) 6213{ 6214 napi_env env = reinterpret_cast<napi_env>(engine_); 6215 napi_deferred deferred = nullptr; 6216 6217 napi_value resolution = nullptr; 6218 napi_create_double(env, TEST_DOUBLE, &resolution); 6219 napi_status status = napi_resolve_deferred(env, deferred, resolution); 6220 ASSERT_EQ(status, napi_invalid_arg); 6221} 6222 6223HWTEST_F(NapiBasicTest, NapiResolveDeferredTest002, testing::ext::TestSize.Level1) 6224{ 6225 napi_env env = reinterpret_cast<napi_env>(engine_); 6226 napi_deferred deferred = nullptr; 6227 napi_value promise = nullptr; 6228 napi_create_promise(env, &deferred, &promise); 6229 6230 napi_value resolution = nullptr; 6231 napi_status status = napi_resolve_deferred(env, deferred, resolution); 6232 ASSERT_EQ(status, napi_invalid_arg); 6233} 6234 6235HWTEST_F(NapiBasicTest, NapiRejectDeferredTest001, testing::ext::TestSize.Level1) 6236{ 6237 napi_env env = reinterpret_cast<napi_env>(engine_); 6238 napi_deferred deferred = nullptr; 6239 6240 napi_value resolution = nullptr; 6241 napi_create_double(env, TEST_DOUBLE, &resolution); 6242 napi_status status = napi_reject_deferred(env, deferred, resolution); 6243 ASSERT_EQ(status, napi_invalid_arg); 6244} 6245 6246HWTEST_F(NapiBasicTest, NapiRejectDeferredTest002, testing::ext::TestSize.Level1) 6247{ 6248 napi_env env = reinterpret_cast<napi_env>(engine_); 6249 napi_deferred deferred = nullptr; 6250 napi_value promise = nullptr; 6251 napi_create_promise(env, &deferred, &promise); 6252 6253 napi_value resolution = nullptr; 6254 napi_status status = napi_reject_deferred(env, deferred, resolution); 6255 ASSERT_EQ(status, napi_invalid_arg); 6256} 6257 6258HWTEST_F(NapiBasicTest, NapiIsPromiseTest001, testing::ext::TestSize.Level1) 6259{ 6260 napi_env env = reinterpret_cast<napi_env>(engine_); 6261 napi_value promise = nullptr; 6262 bool result; 6263 6264 napi_status status = napi_is_promise(env, promise, &result); 6265 ASSERT_EQ(status, napi_invalid_arg); 6266} 6267 6268HWTEST_F(NapiBasicTest, NapiIsPromiseTest002, testing::ext::TestSize.Level1) 6269{ 6270 napi_env env = reinterpret_cast<napi_env>(engine_); 6271 napi_deferred deferred = nullptr; 6272 napi_value promise = nullptr; 6273 napi_create_promise(env, &deferred, &promise); 6274 bool* result = nullptr; 6275 6276 napi_status status = napi_is_promise(env, promise, result); 6277 ASSERT_EQ(status, napi_invalid_arg); 6278} 6279 6280HWTEST_F(NapiBasicTest, NapiGetUvEventLoopTest001, testing::ext::TestSize.Level1) 6281{ 6282 napi_env env = reinterpret_cast<napi_env>(engine_); 6283 struct uv_loop_s** loop = nullptr; 6284 6285 napi_status status = napi_get_uv_event_loop(env, loop); 6286 ASSERT_EQ(status, napi_invalid_arg); 6287} 6288 6289HWTEST_F(NapiBasicTest, NapiCreateThreadsafeFunctionTest001, testing::ext::TestSize.Level1) 6290{ 6291 napi_env env = reinterpret_cast<napi_env>(engine_); 6292 napi_value jsCb = 0; 6293 napi_create_object(env, &jsCb); 6294 napi_threadsafe_function tsFunc = nullptr; 6295 napi_value resourceName = nullptr; 6296 int32_t callJsCbDataTestId = 101; 6297 int32_t finalCbDataTestId = 1001; 6298 napi_status status = napi_create_threadsafe_function(env, jsCb, nullptr, resourceName, 6299 0, 1, &callJsCbDataTestId, 6300 nullptr, &finalCbDataTestId, nullptr, &tsFunc); 6301 ASSERT_EQ(status, napi_invalid_arg); 6302} 6303 6304HWTEST_F(NapiBasicTest, NapiCreateThreadsafeFunctionTest002, testing::ext::TestSize.Level1) 6305{ 6306 napi_env env = reinterpret_cast<napi_env>(engine_); 6307 napi_value jsCb = 0; 6308 napi_create_object(env, &jsCb); 6309 napi_threadsafe_function tsFunc = nullptr; 6310 napi_value resourceName = nullptr; 6311 napi_create_string_latin1(env, __func__, NAPI_AUTO_LENGTH, &resourceName); 6312 int32_t callJsCbDataTestId = 101; 6313 int32_t finalCbDataTestId = 1001; 6314 napi_status status = napi_create_threadsafe_function(env, jsCb, nullptr, resourceName, 6315 0, 129, &callJsCbDataTestId, 6316 nullptr, &finalCbDataTestId, nullptr, &tsFunc); 6317 ASSERT_EQ(status, napi_invalid_arg); 6318} 6319 6320HWTEST_F(NapiBasicTest, NapiGetThreadsafeFunctionContextTest001, testing::ext::TestSize.Level1) 6321{ 6322 napi_threadsafe_function tsFunc = nullptr; 6323 void** result = nullptr; 6324 napi_status status = napi_get_threadsafe_function_context(tsFunc, result); 6325 ASSERT_EQ(status, napi_invalid_arg); 6326} 6327 6328HWTEST_F(NapiBasicTest, NapiCallThreadsafeFunctionTest001, testing::ext::TestSize.Level1) 6329{ 6330 napi_threadsafe_function tsFunc = nullptr; 6331 void* result = nullptr; 6332 napi_status status = napi_call_threadsafe_function(tsFunc, result, napi_tsfn_blocking); 6333 ASSERT_EQ(status, napi_invalid_arg); 6334} 6335 6336HWTEST_F(NapiBasicTest, NapiAcquireThreadsafeFunctionTest001, testing::ext::TestSize.Level1) 6337{ 6338 napi_threadsafe_function tsFunc = nullptr; 6339 napi_status status = napi_acquire_threadsafe_function(tsFunc); 6340 ASSERT_EQ(status, napi_invalid_arg); 6341} 6342 6343HWTEST_F(NapiBasicTest, NapiReleaseThreadsafeFunctionTest001, testing::ext::TestSize.Level1) 6344{ 6345 napi_threadsafe_function tsFunc = nullptr; 6346 napi_status status = napi_release_threadsafe_function(tsFunc, napi_tsfn_release); 6347 ASSERT_EQ(status, napi_invalid_arg); 6348} 6349 6350HWTEST_F(NapiBasicTest, NapiRefThreadsafeFunctionTest001, testing::ext::TestSize.Level1) 6351{ 6352 napi_env env = reinterpret_cast<napi_env>(engine_); 6353 napi_threadsafe_function tsFunc = nullptr; 6354 napi_status status = napi_ref_threadsafe_function(env, tsFunc); 6355 ASSERT_EQ(status, napi_invalid_arg); 6356} 6357 6358HWTEST_F(NapiBasicTest, NapiUnrefThreadsafeFunctionTest001, testing::ext::TestSize.Level1) 6359{ 6360 napi_env env = reinterpret_cast<napi_env>(engine_); 6361 napi_threadsafe_function tsFunc = nullptr; 6362 napi_status status = napi_unref_threadsafe_function(env, tsFunc); 6363 ASSERT_EQ(status, napi_invalid_arg); 6364} 6365 6366HWTEST_F(NapiBasicTest, NapiCreateDateTest001, testing::ext::TestSize.Level1) 6367{ 6368 napi_env env = reinterpret_cast<napi_env>(engine_); 6369 napi_value* result = nullptr; 6370 6371 napi_status status = napi_create_date(env, TEST_DOUBLE, result); 6372 ASSERT_EQ(status, napi_invalid_arg); 6373} 6374 6375HWTEST_F(NapiBasicTest, NapiGetDateValueTest001, testing::ext::TestSize.Level1) 6376{ 6377 napi_env env = reinterpret_cast<napi_env>(engine_); 6378 napi_value date = nullptr; 6379 double result; 6380 6381 napi_status status = napi_get_date_value(env, date, &result); 6382 ASSERT_EQ(status, napi_invalid_arg); 6383} 6384 6385HWTEST_F(NapiBasicTest, NapiGetDateValueTest002, testing::ext::TestSize.Level1) 6386{ 6387 napi_env env = reinterpret_cast<napi_env>(engine_); 6388 double time = 202110181203150; 6389 napi_value date; 6390 double* result = nullptr; 6391 6392 napi_status status = napi_create_date(env, time, &date); 6393 status = napi_get_date_value(env, date, result); 6394 ASSERT_EQ(status, napi_invalid_arg); 6395} 6396 6397HWTEST_F(NapiBasicTest, NapiGetDateValueTest003, testing::ext::TestSize.Level1) 6398{ 6399 napi_env env = reinterpret_cast<napi_env>(engine_); 6400 napi_value date; 6401 double result; 6402 6403 napi_status status = napi_create_object(env, &date); 6404 status = napi_get_date_value(env, date, &result); 6405 ASSERT_EQ(status, napi_date_expected); 6406} 6407 6408HWTEST_F(NapiBasicTest, NapiCreateBigintInt64Test001, testing::ext::TestSize.Level1) 6409{ 6410 napi_env env = reinterpret_cast<napi_env>(engine_); 6411 int64_t value = INT_ONE; 6412 napi_value* result = nullptr; 6413 6414 napi_status status = napi_create_bigint_int64(env, value, result); 6415 ASSERT_EQ(status, napi_invalid_arg); 6416} 6417 6418HWTEST_F(NapiBasicTest, NapiCreateBigintUint64Test001, testing::ext::TestSize.Level1) 6419{ 6420 napi_env env = reinterpret_cast<napi_env>(engine_); 6421 int64_t value = INT_ONE; 6422 napi_value* result = nullptr; 6423 6424 napi_status status = napi_create_bigint_uint64(env, value, result); 6425 ASSERT_EQ(status, napi_invalid_arg); 6426} 6427 6428HWTEST_F(NapiBasicTest, NapiCreateBigintWordsTest001, testing::ext::TestSize.Level1) 6429{ 6430 napi_env env = reinterpret_cast<napi_env>(engine_); 6431 int signBit = 0; 6432 size_t wordCount = 4; 6433 uint64_t* words = nullptr; 6434 napi_value result = nullptr; 6435 6436 napi_status status = napi_create_bigint_words(env, signBit, wordCount, words, &result); 6437 ASSERT_EQ(status, napi_invalid_arg); 6438} 6439 6440HWTEST_F(NapiBasicTest, NapiCreateBigintWordsTest002, testing::ext::TestSize.Level1) 6441{ 6442 napi_env env = reinterpret_cast<napi_env>(engine_); 6443 int signBit = 0; 6444 size_t wordCount = 4; 6445 uint64_t words[] = {0ULL, 34ULL, 56ULL, 2ULL}; 6446 napi_value* result = nullptr; 6447 6448 napi_status status = napi_create_bigint_words(env, signBit, wordCount, words, result); 6449 ASSERT_EQ(status, napi_invalid_arg); 6450} 6451 6452HWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test001, testing::ext::TestSize.Level1) 6453{ 6454 napi_env env = reinterpret_cast<napi_env>(engine_); 6455 napi_value value = nullptr; 6456 int64_t result = 0; 6457 bool lossless = false; 6458 6459 napi_status status = napi_get_value_bigint_int64(env, value, &result, &lossless); 6460 ASSERT_EQ(status, napi_invalid_arg); 6461} 6462 6463HWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test002, testing::ext::TestSize.Level1) 6464{ 6465 napi_env env = reinterpret_cast<napi_env>(engine_); 6466 int64_t testValue = INT64_MAX; 6467 napi_value value = nullptr; 6468 napi_create_bigint_int64(env, testValue, &value); 6469 int64_t* result = nullptr; 6470 bool lossless = false; 6471 6472 napi_status status = napi_get_value_bigint_int64(env, value, result, &lossless); 6473 ASSERT_EQ(status, napi_invalid_arg); 6474} 6475 6476HWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test003, testing::ext::TestSize.Level1) 6477{ 6478 napi_env env = reinterpret_cast<napi_env>(engine_); 6479 int64_t testValue = INT64_MAX; 6480 napi_value value = nullptr; 6481 napi_create_bigint_int64(env, testValue, &value); 6482 int64_t result = 0; 6483 bool* lossless = nullptr; 6484 6485 napi_status status = napi_get_value_bigint_int64(env, value, &result, lossless); 6486 ASSERT_EQ(status, napi_invalid_arg); 6487} 6488 6489HWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test004, testing::ext::TestSize.Level1) 6490{ 6491 napi_env env = reinterpret_cast<napi_env>(engine_); 6492 napi_value value = nullptr; 6493 napi_create_object(env, &value); 6494 int64_t result = 0; 6495 bool lossless = false; 6496 6497 napi_status status = napi_get_value_bigint_int64(env, value, &result, &lossless); 6498 ASSERT_EQ(status, napi_bigint_expected); 6499} 6500 6501HWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test005, testing::ext::TestSize.Level1) 6502{ 6503 napi_env env = reinterpret_cast<napi_env>(engine_); 6504 uint64_t testValue = UINT64_MAX; 6505 napi_value value = nullptr; 6506 napi_create_bigint_uint64(env, testValue, &value); 6507 int64_t result = 0; 6508 bool lossless = false; 6509 6510 napi_status status = napi_get_value_bigint_int64(env, value, &result, &lossless); 6511 ASSERT_EQ(status, napi_ok); 6512 ASSERT_EQ(lossless, false); 6513} 6514 6515HWTEST_F(NapiBasicTest, NapiGetValueBigintUint64Test001, testing::ext::TestSize.Level1) 6516{ 6517 napi_env env = reinterpret_cast<napi_env>(engine_); 6518 napi_value value = nullptr; 6519 uint64_t result = 0; 6520 bool lossless = false; 6521 6522 napi_status status = napi_get_value_bigint_uint64(env, value, &result, &lossless); 6523 ASSERT_EQ(status, napi_invalid_arg); 6524} 6525 6526HWTEST_F(NapiBasicTest, NapiGetValueBigintUint64Test002, testing::ext::TestSize.Level1) 6527{ 6528 napi_env env = reinterpret_cast<napi_env>(engine_); 6529 uint64_t testValue = UINT64_MAX; 6530 napi_value value = nullptr; 6531 napi_create_bigint_uint64(env, testValue, &value); 6532 uint64_t* result = nullptr; 6533 bool lossless = false; 6534 6535 napi_status status = napi_get_value_bigint_uint64(env, value, result, &lossless); 6536 ASSERT_EQ(status, napi_invalid_arg); 6537} 6538 6539HWTEST_F(NapiBasicTest, NapiGetValueBigintUint64Test003, testing::ext::TestSize.Level1) 6540{ 6541 napi_env env = reinterpret_cast<napi_env>(engine_); 6542 uint64_t testValue = UINT64_MAX; 6543 napi_value value = nullptr; 6544 napi_create_bigint_uint64(env, testValue, &value); 6545 uint64_t result = 0; 6546 bool* lossless = nullptr; 6547 6548 napi_status status = napi_get_value_bigint_uint64(env, value, &result, lossless); 6549 ASSERT_EQ(status, napi_invalid_arg); 6550} 6551 6552HWTEST_F(NapiBasicTest, NapiGetValueBigintUint64Test004, testing::ext::TestSize.Level1) 6553{ 6554 napi_env env = reinterpret_cast<napi_env>(engine_); 6555 napi_value value = nullptr; 6556 napi_create_object(env, &value); 6557 uint64_t result = 0; 6558 bool lossless = false; 6559 6560 napi_status status = napi_get_value_bigint_uint64(env, value, &result, &lossless); 6561 ASSERT_EQ(status, napi_bigint_expected); 6562} 6563 6564HWTEST_F(NapiBasicTest, NapiGetValueBigintWordsTest001, testing::ext::TestSize.Level1) 6565{ 6566 uint64_t wordsOut[] = {0ULL, 0ULL, 0ULL, 0ULL}; 6567 napi_env env = reinterpret_cast<napi_env>(engine_); 6568 napi_value value = nullptr; 6569 6570 int retSignBit = -1; 6571 size_t retWordCount = 4; 6572 napi_status status = napi_get_value_bigint_words(env, value, &retSignBit, &retWordCount, wordsOut); 6573 ASSERT_EQ(status, napi_invalid_arg); 6574} 6575 6576HWTEST_F(NapiBasicTest, NapiGetValueBigintWordsTest002, testing::ext::TestSize.Level1) 6577{ 6578 int signBit = 0; 6579 size_t wordCount = 4; 6580 uint64_t words[] = {0ULL, 34ULL, 56ULL, 2ULL}; 6581 uint64_t wordsOut[] = {0ULL, 0ULL, 0ULL, 0ULL}; 6582 napi_env env = reinterpret_cast<napi_env>(engine_); 6583 napi_value value = nullptr; 6584 napi_status status = napi_create_bigint_words(env, signBit, wordCount, words, &value); 6585 ASSERT_EQ(status, napi_ok); 6586 6587 int retSignBit = -1; 6588 size_t* retWordCount = nullptr; 6589 status = napi_get_value_bigint_words(env, value, &retSignBit, retWordCount, wordsOut); 6590 ASSERT_EQ(status, napi_invalid_arg); 6591} 6592 6593HWTEST_F(NapiBasicTest, NapiCreateBufferTest001, testing::ext::TestSize.Level1) 6594{ 6595 napi_env env = reinterpret_cast<napi_env>(engine_); 6596 const unsigned int bufferSize = sizeof(TEST_STRING); 6597 char** data = nullptr; 6598 napi_value result; 6599 napi_status status = napi_create_buffer(env, bufferSize, (void**)(data), &result); 6600 ASSERT_EQ(status, napi_invalid_arg); 6601} 6602 6603HWTEST_F(NapiBasicTest, NapiCreateBufferTest002, testing::ext::TestSize.Level1) 6604{ 6605 napi_env env = reinterpret_cast<napi_env>(engine_); 6606 const unsigned int bufferSize = sizeof(TEST_STRING); 6607 char* data; 6608 napi_value* result = nullptr; 6609 napi_status status = napi_create_buffer(env, bufferSize, (void**)(&data), result); 6610 ASSERT_EQ(status, napi_invalid_arg); 6611} 6612 6613HWTEST_F(NapiBasicTest, NapiCreateBufferTest003, testing::ext::TestSize.Level1) 6614{ 6615 napi_env env = reinterpret_cast<napi_env>(engine_); 6616 const unsigned int bufferSize = 0; 6617 char* data; 6618 napi_value result; 6619 napi_status status = napi_create_buffer(env, bufferSize, (void**)(&data), &result); 6620 ASSERT_EQ(status, napi_invalid_arg); 6621} 6622 6623HWTEST_F(NapiBasicTest, NapiCreateBufferTest004, testing::ext::TestSize.Level1) 6624{ 6625 napi_env env = reinterpret_cast<napi_env>(engine_); 6626 const unsigned int bufferSize = MAX_BYTE_LENGTH + 1; 6627 char* data; 6628 napi_value result; 6629 napi_status status = napi_create_buffer(env, bufferSize, (void**)(&data), &result); 6630 ASSERT_EQ(status, napi_invalid_arg); 6631} 6632 6633HWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest001, testing::ext::TestSize.Level1) 6634{ 6635 napi_env env = reinterpret_cast<napi_env>(engine_); 6636 const unsigned int bufferSize = 0; 6637 char* data; 6638 napi_value result; 6639 napi_status status = napi_create_buffer_copy(env, bufferSize, TEST_STRING, (void**)(&data), &result); 6640 ASSERT_EQ(status, napi_invalid_arg); 6641} 6642 6643HWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest002, testing::ext::TestSize.Level1) 6644{ 6645 napi_env env = reinterpret_cast<napi_env>(engine_); 6646 const unsigned int bufferSize = MAX_BYTE_LENGTH + 1; 6647 char* data; 6648 napi_value result; 6649 napi_status status = napi_create_buffer_copy(env, bufferSize, TEST_STRING, (void**)(&data), &result); 6650 ASSERT_EQ(status, napi_invalid_arg); 6651} 6652 6653HWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest003, testing::ext::TestSize.Level1) 6654{ 6655 napi_env env = reinterpret_cast<napi_env>(engine_); 6656 const unsigned int bufferSize = sizeof(TEST_STRING); 6657 char* data; 6658 napi_value result; 6659 napi_status status = napi_create_buffer_copy(env, bufferSize, nullptr, (void**)(&data), &result); 6660 ASSERT_EQ(status, napi_invalid_arg); 6661} 6662 6663HWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest004, testing::ext::TestSize.Level1) 6664{ 6665 napi_env env = reinterpret_cast<napi_env>(engine_); 6666 const unsigned int bufferSize = sizeof(TEST_STRING); 6667 char** data = nullptr; 6668 napi_value result; 6669 napi_status status = napi_create_buffer_copy(env, bufferSize, TEST_STRING, (void**)(data), &result); 6670 ASSERT_EQ(status, napi_invalid_arg); 6671} 6672 6673HWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest005, testing::ext::TestSize.Level1) 6674{ 6675 napi_env env = reinterpret_cast<napi_env>(engine_); 6676 const unsigned int bufferSize = sizeof(TEST_STRING); 6677 char* data; 6678 napi_value* result = nullptr; 6679 napi_status status = napi_create_buffer_copy(env, bufferSize, TEST_STRING, (void**)(&data), result); 6680 ASSERT_EQ(status, napi_invalid_arg); 6681} 6682 6683HWTEST_F(NapiBasicTest, NapiCreateExternalBufferTest001, testing::ext::TestSize.Level1) 6684{ 6685 napi_env env = reinterpret_cast<napi_env>(engine_); 6686 const unsigned int bufferSize = 0; 6687 char* copyPtr = strdup(TEST_STRING); 6688 napi_value result; 6689 napi_status status = napi_create_external_buffer(env, bufferSize, copyPtr, 6690 [](napi_env env, void* data, void* hint) { return; }, 6691 nullptr, &result); 6692 ASSERT_EQ(status, napi_invalid_arg); 6693} 6694 6695HWTEST_F(NapiBasicTest, NapiCreateExternalBufferTest002, testing::ext::TestSize.Level1) 6696{ 6697 napi_env env = reinterpret_cast<napi_env>(engine_); 6698 const unsigned int bufferSize = MAX_BYTE_LENGTH + 1; 6699 char* copyPtr = strdup(TEST_STRING); 6700 napi_value result; 6701 napi_status status = napi_create_external_buffer(env, bufferSize, copyPtr, 6702 [](napi_env env, void* data, void* hint) { return; }, 6703 nullptr, &result); 6704 ASSERT_EQ(status, napi_invalid_arg); 6705} 6706 6707HWTEST_F(NapiBasicTest, NapiCreateExternalBufferTest003, testing::ext::TestSize.Level1) 6708{ 6709 napi_env env = reinterpret_cast<napi_env>(engine_); 6710 const unsigned int bufferSize = sizeof(TEST_STRING); 6711 char* copyPtr = nullptr; 6712 napi_value result; 6713 napi_status status = napi_create_external_buffer(env, bufferSize, copyPtr, 6714 [](napi_env env, void* data, void* hint) { return; }, 6715 nullptr, &result); 6716 ASSERT_EQ(status, napi_invalid_arg); 6717} 6718 6719HWTEST_F(NapiBasicTest, NapiCreateExternalBufferTest004, testing::ext::TestSize.Level1) 6720{ 6721 napi_env env = reinterpret_cast<napi_env>(engine_); 6722 const unsigned int bufferSize = sizeof(TEST_STRING); 6723 char* copyPtr = strdup(TEST_STRING); 6724 napi_value* result = nullptr; 6725 napi_status status = napi_create_external_buffer(env, bufferSize, copyPtr, 6726 [](napi_env env, void* data, void* hint) { return; }, 6727 nullptr, result); 6728 ASSERT_EQ(status, napi_invalid_arg); 6729} 6730 6731HWTEST_F(NapiBasicTest, NapiGetBufferInfoTest001, testing::ext::TestSize.Level1) 6732{ 6733 napi_env env = reinterpret_cast<napi_env>(engine_); 6734 napi_value value = nullptr; 6735 char *data; 6736 size_t length; 6737 6738 napi_status status = napi_get_buffer_info(env, value, (void**)&data, &length); 6739 ASSERT_EQ(status, napi_invalid_arg); 6740} 6741 6742HWTEST_F(NapiBasicTest, NapiGetBufferInfoTest002, testing::ext::TestSize.Level1) 6743{ 6744 napi_env env = reinterpret_cast<napi_env>(engine_); 6745 napi_value value = nullptr; 6746 char *data; 6747 size_t length; 6748 6749 napi_create_double(env, TEST_DOUBLE, &value); 6750 napi_status status = napi_get_buffer_info(env, value, (void**)&data, &length); 6751 ASSERT_EQ(status, napi_arraybuffer_expected); 6752} 6753 6754HWTEST_F(NapiBasicTest, NapiIsBufferTest001, testing::ext::TestSize.Level1) 6755{ 6756 napi_env env = reinterpret_cast<napi_env>(engine_); 6757 napi_value value = nullptr; 6758 bool result; 6759 6760 napi_status status = napi_is_buffer(env, value, &result); 6761 ASSERT_EQ(status, napi_invalid_arg); 6762} 6763 6764HWTEST_F(NapiBasicTest, NapiIsBufferTest002, testing::ext::TestSize.Level1) 6765{ 6766 napi_env env = reinterpret_cast<napi_env>(engine_); 6767 napi_value value; 6768 bool* result = nullptr; 6769 6770 napi_create_object(env, &value); 6771 napi_status status = napi_is_buffer(env, value, result); 6772 ASSERT_EQ(status, napi_invalid_arg); 6773} 6774 6775HWTEST_F(NapiBasicTest, NapiDeserializeTest001, testing::ext::TestSize.Level1) 6776{ 6777 napi_env env = reinterpret_cast<napi_env>(engine_); 6778 void* buffer = nullptr; 6779 napi_value result = nullptr; 6780 6781 napi_status status = napi_deserialize(env, buffer, &result); 6782 ASSERT_EQ(status, napi_invalid_arg); 6783} 6784 6785HWTEST_F(NapiBasicTest, NapiDeserializeTest002, testing::ext::TestSize.Level1) 6786{ 6787 napi_env env = reinterpret_cast<napi_env>(engine_); 6788 int buffer = 0; 6789 napi_value* result = nullptr; 6790 6791 napi_status status = napi_deserialize(env, (void*)&buffer, result); 6792 ASSERT_EQ(status, napi_invalid_arg); 6793} 6794 6795HWTEST_F(NapiBasicTest, NapiDeleteSerializationDataTest001, testing::ext::TestSize.Level1) 6796{ 6797 napi_env env = reinterpret_cast<napi_env>(engine_); 6798 void* buffer = nullptr; 6799 6800 napi_status status = napi_delete_serialization_data(env, buffer); 6801 ASSERT_EQ(status, napi_invalid_arg); 6802} 6803 6804HWTEST_F(NapiBasicTest, NapiCallThreadsafeFunctionWithPriorityTest001, testing::ext::TestSize.Level1) 6805{ 6806 napi_threadsafe_function func = nullptr; 6807 6808 napi_status status = napi_call_threadsafe_function_with_priority(func, nullptr, napi_priority_idle, true); 6809 ASSERT_EQ(status, napi_invalid_arg); 6810} 6811 6812HWTEST_F(NapiBasicTest, NapiIsSendableTest001, testing::ext::TestSize.Level1) 6813{ 6814 napi_env env = reinterpret_cast<napi_env>(engine_); 6815 napi_value value = nullptr; 6816 bool result; 6817 6818 napi_status status = napi_is_sendable(env, value, &result); 6819 ASSERT_EQ(status, napi_invalid_arg); 6820} 6821 6822HWTEST_F(NapiBasicTest, NapiIsSendableTest002, testing::ext::TestSize.Level1) 6823{ 6824 napi_env env = reinterpret_cast<napi_env>(engine_); 6825 napi_value value; 6826 bool* result = nullptr; 6827 6828 napi_create_object(env, &value); 6829 napi_status status = napi_is_sendable(env, value, result); 6830 ASSERT_EQ(status, napi_invalid_arg); 6831} 6832 6833HWTEST_F(NapiBasicTest, NapiDefineSendableClassTest001, testing::ext::TestSize.Level1) 6834{ 6835 napi_env env = reinterpret_cast<napi_env>(engine_); 6836 napi_value testClass = nullptr; 6837 napi_status status = napi_define_sendable_class( 6838 env, nullptr, NAPI_AUTO_LENGTH, 6839 [](napi_env env, napi_callback_info info) -> napi_value { 6840 napi_value thisVar = nullptr; 6841 napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); 6842 6843 return thisVar; 6844 }, 6845 nullptr, 0, nullptr, nullptr, &testClass); 6846 ASSERT_EQ(status, napi_invalid_arg); 6847} 6848 6849HWTEST_F(NapiBasicTest, NapiDefineSendableClassTest002, testing::ext::TestSize.Level1) 6850{ 6851 napi_env env = reinterpret_cast<napi_env>(engine_); 6852 napi_value testClass = nullptr; 6853 napi_status status = napi_define_sendable_class( 6854 env, "TestClass", NAPI_AUTO_LENGTH, 6855 nullptr, nullptr, 0, nullptr, nullptr, &testClass); 6856 ASSERT_EQ(status, napi_invalid_arg); 6857} 6858 6859HWTEST_F(NapiBasicTest, NapiDefineSendableClassTest003, testing::ext::TestSize.Level1) 6860{ 6861 napi_env env = reinterpret_cast<napi_env>(engine_); 6862 napi_value testClass = nullptr; 6863 napi_status status = napi_define_sendable_class( 6864 env, "TestClass", NAPI_AUTO_LENGTH, 6865 [](napi_env env, napi_callback_info info) -> napi_value { 6866 napi_value thisVar = nullptr; 6867 napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); 6868 6869 return thisVar; 6870 }, 6871 nullptr, 1, nullptr, nullptr, &testClass); 6872 ASSERT_EQ(status, napi_invalid_arg); 6873} 6874 6875HWTEST_F(NapiBasicTest, NapiDefineSendableClassTest004, testing::ext::TestSize.Level1) 6876{ 6877 napi_env env = reinterpret_cast<napi_env>(engine_); 6878 napi_value* testClass = nullptr; 6879 napi_status status = napi_define_sendable_class( 6880 env, "TestClass", NAPI_AUTO_LENGTH, 6881 [](napi_env env, napi_callback_info info) -> napi_value { 6882 napi_value thisVar = nullptr; 6883 napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); 6884 6885 return thisVar; 6886 }, 6887 nullptr, 0, nullptr, nullptr, testClass); 6888 ASSERT_EQ(status, napi_invalid_arg); 6889} 6890 6891HWTEST_F(NapiBasicTest, NapiCreateSendableObjectWithPropertiesTest001, testing::ext::TestSize.Level1) 6892{ 6893 napi_env env = reinterpret_cast<napi_env>(engine_); 6894 napi_value val_true; 6895 napi_get_boolean(env, true, &val_true); 6896 napi_property_descriptor desc[] = { 6897 DECLARE_NAPI_DEFAULT_PROPERTY("x", val_true), 6898 }; 6899 napi_value* result = nullptr; 6900 6901 napi_status status = napi_create_sendable_object_with_properties(env, 1, desc, result); 6902 ASSERT_EQ(status, napi_invalid_arg); 6903} 6904 6905HWTEST_F(NapiBasicTest, NapiCreateSendableArrayTest001, testing::ext::TestSize.Level1) 6906{ 6907 napi_env env = reinterpret_cast<napi_env>(engine_); 6908 napi_value* result = nullptr; 6909 6910 napi_status status = napi_create_sendable_array(env, result); 6911 ASSERT_EQ(status, napi_invalid_arg); 6912} 6913 6914HWTEST_F(NapiBasicTest, NapiCreateSendableArrayWithLengthTest001, testing::ext::TestSize.Level1) 6915{ 6916 napi_env env = reinterpret_cast<napi_env>(engine_); 6917 size_t length = INT_ONE; 6918 napi_value* result = nullptr; 6919 6920 napi_status status = napi_create_sendable_array_with_length(env, length, result); 6921 ASSERT_EQ(status, napi_invalid_arg); 6922} 6923 6924HWTEST_F(NapiBasicTest, NapiCreateSendableArraybufferTest001, testing::ext::TestSize.Level1) 6925{ 6926 napi_env env = reinterpret_cast<napi_env>(engine_); 6927 size_t length = INT_ONE; 6928 void** data = nullptr; 6929 napi_value result; 6930 6931 napi_status status = napi_create_sendable_arraybuffer(env, length, data, &result); 6932 ASSERT_EQ(status, napi_invalid_arg); 6933} 6934 6935HWTEST_F(NapiBasicTest, NapiCreateSendableArraybufferTest002, testing::ext::TestSize.Level1) 6936{ 6937 napi_env env = reinterpret_cast<napi_env>(engine_); 6938 size_t length = INT_ONE; 6939 void* data; 6940 napi_value* result = nullptr; 6941 6942 napi_status status = napi_create_sendable_arraybuffer(env, length, &data, result); 6943 ASSERT_EQ(status, napi_invalid_arg); 6944} 6945 6946HWTEST_F(NapiBasicTest, NapiCreateSendableTypedarrayTest001, testing::ext::TestSize.Level1) 6947{ 6948 napi_env env = reinterpret_cast<napi_env>(engine_); 6949 napi_value arraybuffer = nullptr; 6950 void* arrayBufferPtr = nullptr; 6951 size_t arrayBufferSize = 16; 6952 size_t typedArrayLength = 4; 6953 napi_status status = napi_create_sendable_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arraybuffer); 6954 ASSERT_EQ(status, napi_ok); 6955 6956 napi_value* result = nullptr; 6957 status = napi_create_sendable_typedarray(env, napi_int32_array, typedArrayLength, arraybuffer, 0, result); 6958 ASSERT_EQ(status, napi_invalid_arg); 6959} 6960 6961HWTEST_F(NapiBasicTest, NapiCreateSendableTypedarrayTest002, testing::ext::TestSize.Level1) 6962{ 6963 napi_env env = reinterpret_cast<napi_env>(engine_); 6964 napi_value arraybuffer = nullptr; 6965 size_t typedArrayLength = 4; 6966 6967 napi_value result; 6968 napi_status status = napi_create_sendable_typedarray(env, napi_int32_array, typedArrayLength, 6969 arraybuffer, 0, &result); 6970 ASSERT_EQ(status, napi_invalid_arg); 6971} 6972 6973HWTEST_F(NapiBasicTest, NapiWrapSendableTest001, testing::ext::TestSize.Level1) 6974{ 6975 napi_env env = reinterpret_cast<napi_env>(engine_); 6976 napi_value js_obj = nullptr; 6977 6978 napi_status status = napi_wrap_sendable( 6979 env, js_obj, (void*)TEST_STRING, [](napi_env env, void* data, void* hint) {}, nullptr); 6980 ASSERT_EQ(status, napi_invalid_arg); 6981} 6982 6983HWTEST_F(NapiBasicTest, NapiWrapSendableTest002, testing::ext::TestSize.Level1) 6984{ 6985 napi_env env = reinterpret_cast<napi_env>(engine_); 6986 napi_value js_obj = nullptr; 6987 6988 napi_status status = napi_create_object(env, &js_obj); 6989 status = napi_wrap_sendable( 6990 env, js_obj, nullptr, [](napi_env env, void* data, void* hint) {}, nullptr); 6991 ASSERT_EQ(status, napi_invalid_arg); 6992} 6993 6994HWTEST_F(NapiBasicTest, NapiWrapSendableWithSizeTest001, testing::ext::TestSize.Level1) 6995{ 6996 napi_env env = reinterpret_cast<napi_env>(engine_); 6997 napi_value js_obj = nullptr; 6998 6999 napi_status status = napi_wrap_sendable_with_size( 7000 env, js_obj, (void*)TEST_STRING, [](napi_env env, void* data, void* hint) {}, nullptr, INT_ONE); 7001 ASSERT_EQ(status, napi_invalid_arg); 7002} 7003 7004HWTEST_F(NapiBasicTest, NapiWrapSendableWithSizeTest002, testing::ext::TestSize.Level1) 7005{ 7006 napi_env env = reinterpret_cast<napi_env>(engine_); 7007 napi_value js_obj = nullptr; 7008 7009 napi_status status = napi_create_object(env, &js_obj); 7010 status = napi_wrap_sendable_with_size( 7011 env, js_obj, nullptr, [](napi_env env, void* data, void* hint) {}, nullptr, INT_ONE); 7012 ASSERT_EQ(status, napi_invalid_arg); 7013} 7014 7015HWTEST_F(NapiBasicTest, NapiUnwrapSendableTest001, testing::ext::TestSize.Level1) 7016{ 7017 napi_env env = reinterpret_cast<napi_env>(engine_); 7018 napi_value js_obj = nullptr; 7019 void* result; 7020 7021 napi_status status = napi_unwrap_sendable(env, js_obj, &result); 7022 ASSERT_EQ(status, napi_invalid_arg); 7023} 7024 7025HWTEST_F(NapiBasicTest, NapiUnwrapSendableTest002, testing::ext::TestSize.Level1) 7026{ 7027 napi_env env = reinterpret_cast<napi_env>(engine_); 7028 napi_value js_obj; 7029 void** result = nullptr; 7030 7031 napi_status status = napi_create_object(env, &js_obj); 7032 status = napi_unwrap_sendable(env, js_obj, result); 7033 ASSERT_EQ(status, napi_invalid_arg); 7034} 7035 7036HWTEST_F(NapiBasicTest, NapiRemoveWrapSendableTest001, testing::ext::TestSize.Level1) 7037{ 7038 napi_env env = reinterpret_cast<napi_env>(engine_); 7039 napi_value js_obj = nullptr; 7040 void* result; 7041 7042 napi_status status = napi_remove_wrap_sendable(env, js_obj, &result); 7043 ASSERT_EQ(status, napi_invalid_arg); 7044} 7045 7046HWTEST_F(NapiBasicTest, NapiRemoveWrapSendableTest002, testing::ext::TestSize.Level1) 7047{ 7048 napi_env env = reinterpret_cast<napi_env>(engine_); 7049 napi_value js_obj; 7050 void** result = nullptr; 7051 7052 napi_status status = napi_create_object(env, &js_obj); 7053 status = napi_remove_wrap_sendable(env, js_obj, result); 7054 ASSERT_EQ(status, napi_invalid_arg); 7055} 7056 7057/** 7058 * @tc.name: NapiModuleRegisterTest 7059 * @tc.desc: Test interface of napi_module_register 7060 * @tc.type: FUNC 7061 */ 7062HWTEST_F(NapiBasicTest, NapiModuleRegisterTest001, testing::ext::TestSize.Level1) 7063{ 7064 // call napi_module_register interface with nullptr error 7065 napi_module_register(nullptr); 7066} 7067 7068/** 7069 * @tc.name: NapiGetLastErrorInfoTest 7070 * @tc.desc: Test interface of napi_get_last_error_info 7071 * @tc.type: FUNC 7072 */ 7073HWTEST_F(NapiBasicTest, NapiGetLastErrorInfoTest001, testing::ext::TestSize.Level1) 7074{ 7075 ASSERT_NE(engine_, nullptr); 7076 napi_env env = reinterpret_cast<napi_env>(engine_); 7077 7078 // call napi_get_last_error_info interface with nullptr error 7079 auto res = napi_get_last_error_info(env, nullptr); 7080 ASSERT_EQ(res, napi_invalid_arg); 7081} 7082 7083/** 7084 * @tc.name: NapiThrowTest 7085 * @tc.desc: Test interface of napi_throw 7086 * @tc.type: FUNC 7087 */ 7088HWTEST_F(NapiBasicTest, NapiThrowTest001, testing::ext::TestSize.Level1) 7089{ 7090 ASSERT_NE(engine_, nullptr); 7091 napi_env env = reinterpret_cast<napi_env>(engine_); 7092 7093 // call napi_throw interface with nullptr error 7094 auto res = napi_throw(env, nullptr); 7095 ASSERT_EQ(res, napi_invalid_arg); 7096} 7097 7098/** 7099 * @tc.name: NapiThrowErrorTest 7100 * @tc.desc: Test interface of napi_throw_error 7101 * @tc.type: FUNC 7102 */ 7103HWTEST_F(NapiBasicTest, NapiThrowErrorTest001, testing::ext::TestSize.Level1) 7104{ 7105 ASSERT_NE(engine_, nullptr); 7106 napi_env env = reinterpret_cast<napi_env>(engine_); 7107 7108 // call napi_throw_error interface with nullptr msg 7109 auto res = napi_throw_error(env, nullptr, nullptr); 7110 ASSERT_EQ(res, napi_invalid_arg); 7111} 7112 7113/** 7114 * @tc.name: NapiThrowTypeErrorTest 7115 * @tc.desc: Test interface of napi_throw_type_error 7116 * @tc.type: FUNC 7117 */ 7118HWTEST_F(NapiBasicTest, NapiThrowTypeErrorTest001, testing::ext::TestSize.Level1) 7119{ 7120 ASSERT_NE(engine_, nullptr); 7121 napi_env env = reinterpret_cast<napi_env>(engine_); 7122 7123 // call napi_throw_type_error interface with nullptr msg 7124 auto res = napi_throw_type_error(env, nullptr, nullptr); 7125 ASSERT_EQ(res, napi_invalid_arg); 7126} 7127 7128/** 7129 * @tc.name: NapiThrowRangeErrorTest 7130 * @tc.desc: Test interface of napi_throw_range_error 7131 * @tc.type: FUNC 7132 */ 7133HWTEST_F(NapiBasicTest, NapiThrowRangeErrorTest001, testing::ext::TestSize.Level1) 7134{ 7135 ASSERT_NE(engine_, nullptr); 7136 napi_env env = reinterpret_cast<napi_env>(engine_); 7137 7138 // call napi_throw_range_error interface with nullptr msg 7139 auto res = napi_throw_range_error(env, nullptr, nullptr); 7140 ASSERT_EQ(res, napi_invalid_arg); 7141} 7142 7143/** 7144 * @tc.name: NapiIsErrorTest 7145 * @tc.desc: Test interface of napi_is_error 7146 * @tc.type: FUNC 7147 */ 7148HWTEST_F(NapiBasicTest, NapiIsErrorTest001, testing::ext::TestSize.Level1) 7149{ 7150 ASSERT_NE(engine_, nullptr); 7151 napi_env env = reinterpret_cast<napi_env>(engine_); 7152 7153 napi_value code = nullptr; 7154 napi_value message = nullptr; 7155 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code)); 7156 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message)); 7157 7158 napi_value error = nullptr; 7159 ASSERT_CHECK_CALL(napi_create_error(env, code, message, &error)); 7160 ASSERT_TRUE(error != nullptr); 7161 7162 bool isError = false; 7163 // call napi_is_error interface with correct input 7164 auto res = napi_is_error(env, error, &isError); 7165 ASSERT_EQ(res, napi_ok); 7166} 7167 7168/** 7169 * @tc.name: NapiIsErrorTest 7170 * @tc.desc: Test interface of napi_is_error 7171 * @tc.type: FUNC 7172 */ 7173HWTEST_F(NapiBasicTest, NapiIsErrorTest002, testing::ext::TestSize.Level1) 7174{ 7175 ASSERT_NE(engine_, nullptr); 7176 napi_env env = reinterpret_cast<napi_env>(engine_); 7177 7178 // call napi_is_error interface with nullptr value and nullptr result 7179 auto res = napi_is_error(env, nullptr, nullptr); 7180 ASSERT_EQ(res, napi_invalid_arg); 7181} 7182 7183/** 7184 * @tc.name: NapiIsErrorTest 7185 * @tc.desc: Test interface of napi_is_error 7186 * @tc.type: FUNC 7187 */ 7188HWTEST_F(NapiBasicTest, NapiIsErrorTest003, testing::ext::TestSize.Level1) 7189{ 7190 ASSERT_NE(engine_, nullptr); 7191 napi_env env = reinterpret_cast<napi_env>(engine_); 7192 7193 bool isError = false; 7194 // call napi_is_error interface with nullptr value 7195 auto res = napi_is_error(env, nullptr, &isError); 7196 ASSERT_EQ(res, napi_invalid_arg); 7197} 7198 7199/** 7200 * @tc.name: NapiIsErrorTest 7201 * @tc.desc: Test interface of napi_is_error 7202 * @tc.type: FUNC 7203 */ 7204HWTEST_F(NapiBasicTest, NapiIsErrorTest004, testing::ext::TestSize.Level1) 7205{ 7206 ASSERT_NE(engine_, nullptr); 7207 napi_env env = reinterpret_cast<napi_env>(engine_); 7208 7209 napi_value code = nullptr; 7210 napi_value message = nullptr; 7211 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code)); 7212 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message)); 7213 7214 napi_value error = nullptr; 7215 ASSERT_CHECK_CALL(napi_create_error(env, code, message, &error)); 7216 ASSERT_TRUE(error != nullptr); 7217 7218 // call napi_is_error interface with nullptr result 7219 auto res = napi_is_error(env, error, nullptr); 7220 ASSERT_EQ(res, napi_invalid_arg); 7221} 7222 7223/** 7224 * @tc.name: NapiCreateErrorTest 7225 * @tc.desc: Test interface of napi_create_error 7226 * @tc.type: FUNC 7227 */ 7228HWTEST_F(NapiBasicTest, NapiCreateErrorTest001, testing::ext::TestSize.Level1) 7229{ 7230 ASSERT_NE(engine_, nullptr); 7231 napi_env env = reinterpret_cast<napi_env>(engine_); 7232 7233 napi_value code = nullptr; 7234 napi_value message = nullptr; 7235 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code)); 7236 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message)); 7237 7238 napi_value error = nullptr; 7239 auto res = napi_create_error(env, code, message, &error); 7240 ASSERT_EQ(res, napi_ok); 7241} 7242 7243/** 7244 * @tc.name: NapiCreateErrorTest 7245 * @tc.desc: Test interface of napi_create_error 7246 * @tc.type: FUNC 7247 */ 7248HWTEST_F(NapiBasicTest, NapiCreateErrorTest002, testing::ext::TestSize.Level1) 7249{ 7250 ASSERT_NE(engine_, nullptr); 7251 napi_env env = reinterpret_cast<napi_env>(engine_); 7252 7253 napi_value message = nullptr; 7254 ASSERT_CHECK_CALL(napi_create_int32(env, TEST_INT32_500, &message)); 7255 7256 napi_value error = nullptr; 7257 auto res = napi_create_error(env, nullptr, message, &error); 7258 ASSERT_EQ(res, napi_invalid_arg); 7259} 7260 7261/** 7262 * @tc.name: NapiCreateErrorTest 7263 * @tc.desc: Test interface of napi_create_error 7264 * @tc.type: FUNC 7265 */ 7266HWTEST_F(NapiBasicTest, NapiCreateErrorTest003, testing::ext::TestSize.Level1) 7267{ 7268 ASSERT_NE(engine_, nullptr); 7269 napi_env env = reinterpret_cast<napi_env>(engine_); 7270 7271 napi_value code = nullptr; 7272 napi_value message = nullptr; 7273 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &code)); 7274 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message)); 7275 7276 napi_value error = nullptr; 7277 auto res = napi_create_error(env, code, message, &error); 7278 ASSERT_EQ(res, napi_invalid_arg); 7279} 7280 7281/** 7282 * @tc.name: NapiCreateErrorTest 7283 * @tc.desc: Test interface of napi_create_error 7284 * @tc.type: FUNC 7285 */ 7286HWTEST_F(NapiBasicTest, NapiCreateErrorTest004, testing::ext::TestSize.Level1) 7287{ 7288 ASSERT_NE(engine_, nullptr); 7289 napi_env env = reinterpret_cast<napi_env>(engine_); 7290 7291 auto res = napi_create_error(env, nullptr, nullptr, nullptr); 7292 ASSERT_EQ(res, napi_invalid_arg); 7293} 7294 7295/** 7296 * @tc.name: NapiCreateTypeErrorTest 7297 * @tc.desc: Test interface of napi_create_type_error 7298 * @tc.type: FUNC 7299 */ 7300HWTEST_F(NapiBasicTest, NapiCreateTypeErrorTest001, testing::ext::TestSize.Level1) 7301{ 7302 ASSERT_NE(engine_, nullptr); 7303 napi_env env = reinterpret_cast<napi_env>(engine_); 7304 7305 napi_value code = nullptr; 7306 napi_value message = nullptr; 7307 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code)); 7308 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message)); 7309 7310 napi_value error = nullptr; 7311 auto res = napi_create_type_error(env, code, message, &error); 7312 ASSERT_EQ(res, napi_ok); 7313} 7314 7315/** 7316 * @tc.name: NapiCreateTypeErrorTest 7317 * @tc.desc: Test interface of napi_create_type_error 7318 * @tc.type: FUNC 7319 */ 7320HWTEST_F(NapiBasicTest, NapiCreateTypeErrorTest002, testing::ext::TestSize.Level1) 7321{ 7322 ASSERT_NE(engine_, nullptr); 7323 napi_env env = reinterpret_cast<napi_env>(engine_); 7324 7325 napi_value message = nullptr; 7326 ASSERT_CHECK_CALL(napi_create_int32(env, TEST_INT32_500, &message)); 7327 7328 napi_value error = nullptr; 7329 auto res = napi_create_type_error(env, nullptr, message, &error); 7330 ASSERT_EQ(res, napi_invalid_arg); 7331} 7332 7333/** 7334 * @tc.name: NapiCreateTypeErrorTest 7335 * @tc.desc: Test interface of napi_create_type_error 7336 * @tc.type: FUNC 7337 */ 7338HWTEST_F(NapiBasicTest, NapiCreateTypeErrorTest003, testing::ext::TestSize.Level1) 7339{ 7340 ASSERT_NE(engine_, nullptr); 7341 napi_env env = reinterpret_cast<napi_env>(engine_); 7342 7343 napi_value code = nullptr; 7344 napi_value message = nullptr; 7345 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &code)); 7346 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message)); 7347 7348 napi_value error = nullptr; 7349 auto res = napi_create_type_error(env, code, message, &error); 7350 ASSERT_EQ(res, napi_invalid_arg); 7351} 7352 7353/** 7354 * @tc.name: NapiCreateTypeErrorTest 7355 * @tc.desc: Test interface of napi_create_type_error 7356 * @tc.type: FUNC 7357 */ 7358HWTEST_F(NapiBasicTest, NapiCreateTypeErrorTest004, testing::ext::TestSize.Level1) 7359{ 7360 ASSERT_NE(engine_, nullptr); 7361 napi_env env = reinterpret_cast<napi_env>(engine_); 7362 7363 auto res = napi_create_type_error(env, nullptr, nullptr, nullptr); 7364 ASSERT_EQ(res, napi_invalid_arg); 7365} 7366 7367/** 7368 * @tc.name: NapiCreateRangeErrorTest 7369 * @tc.desc: Test interface of napi_create_range_error 7370 * @tc.type: FUNC 7371 */ 7372HWTEST_F(NapiBasicTest, NapiCreateRangeErrorTest001, testing::ext::TestSize.Level1) 7373{ 7374 ASSERT_NE(engine_, nullptr); 7375 napi_env env = reinterpret_cast<napi_env>(engine_); 7376 7377 napi_value code = nullptr; 7378 napi_value message = nullptr; 7379 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code)); 7380 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message)); 7381 7382 napi_value error = nullptr; 7383 auto res = napi_create_range_error(env, code, message, &error); 7384 ASSERT_EQ(res, napi_ok); 7385} 7386 7387/** 7388 * @tc.name: NapiCreateRangeErrorTest 7389 * @tc.desc: Test interface of napi_create_range_error 7390 * @tc.type: FUNC 7391 */ 7392HWTEST_F(NapiBasicTest, NapiCreateRangeErrorTest002, testing::ext::TestSize.Level1) 7393{ 7394 ASSERT_NE(engine_, nullptr); 7395 napi_env env = reinterpret_cast<napi_env>(engine_); 7396 7397 napi_value message = nullptr; 7398 ASSERT_CHECK_CALL(napi_create_int32(env, TEST_INT32_500, &message)); 7399 7400 napi_value error = nullptr; 7401 auto res = napi_create_range_error(env, nullptr, message, &error); 7402 ASSERT_EQ(res, napi_invalid_arg); 7403} 7404 7405/** 7406 * @tc.name: NapiCreateRangeErrorTest 7407 * @tc.desc: Test interface of napi_create_range_error 7408 * @tc.type: FUNC 7409 */ 7410HWTEST_F(NapiBasicTest, NapiCreateRangeErrorTest003, testing::ext::TestSize.Level1) 7411{ 7412 ASSERT_NE(engine_, nullptr); 7413 napi_env env = reinterpret_cast<napi_env>(engine_); 7414 7415 napi_value code = nullptr; 7416 napi_value message = nullptr; 7417 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &code)); 7418 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message)); 7419 7420 napi_value error = nullptr; 7421 auto res = napi_create_range_error(env, code, message, &error); 7422 ASSERT_EQ(res, napi_invalid_arg); 7423} 7424 7425/** 7426 * @tc.name: NapiCreateRangeErrorTest 7427 * @tc.desc: Test interface of napi_create_range_error 7428 * @tc.type: FUNC 7429 */ 7430HWTEST_F(NapiBasicTest, NapiCreateRangeErrorTest004, testing::ext::TestSize.Level1) 7431{ 7432 ASSERT_NE(engine_, nullptr); 7433 napi_env env = reinterpret_cast<napi_env>(engine_); 7434 7435 auto res = napi_create_range_error(env, nullptr, nullptr, nullptr); 7436 ASSERT_EQ(res, napi_invalid_arg); 7437} 7438 7439/** 7440 * @tc.name: NapiGetAndClearLastExceptionTest 7441 * @tc.desc: Test interface of napi_get_and_clear_last_exception 7442 * @tc.type: FUNC 7443 */ 7444HWTEST_F(NapiBasicTest, NapiGetAndClearLastExceptionTest001, testing::ext::TestSize.Level1) 7445{ 7446 ASSERT_NE(engine_, nullptr); 7447 napi_env env = reinterpret_cast<napi_env>(engine_); 7448 auto res = napi_get_and_clear_last_exception(env, nullptr); 7449 ASSERT_EQ(res, napi_invalid_arg); 7450} 7451 7452/** 7453 * @tc.name: NapiIsExceptionPendingTest 7454 * @tc.desc: Test interface of napi_is_exception_pending 7455 * @tc.type: FUNC 7456 */ 7457HWTEST_F(NapiBasicTest, NapiIsExceptionPendingTest001, testing::ext::TestSize.Level1) 7458{ 7459 ASSERT_NE(engine_, nullptr); 7460 napi_env env = reinterpret_cast<napi_env>(engine_); 7461 7462 auto res = napi_is_exception_pending(env, nullptr); 7463 ASSERT_EQ(res, napi_invalid_arg); 7464} 7465 7466/** 7467 * @tc.name: NapiOpenHandleScopeTest 7468 * @tc.desc: Test interface of napi_open_handle_scope 7469 * @tc.type: FUNC 7470 */ 7471HWTEST_F(NapiBasicTest, NapiOpenHandleScopeTest001, testing::ext::TestSize.Level1) 7472{ 7473 ASSERT_NE(engine_, nullptr); 7474 napi_env env = reinterpret_cast<napi_env>(engine_); 7475 7476 auto res = napi_open_handle_scope(env, nullptr); 7477 ASSERT_EQ(res, napi_invalid_arg); 7478} 7479 7480/** 7481 * @tc.name: NapiCloseHandleScopeTest 7482 * @tc.desc: Test interface of napi_close_handle_scope 7483 * @tc.type: FUNC 7484 */ 7485HWTEST_F(NapiBasicTest, NapiCloseHandleScopeTest001, testing::ext::TestSize.Level1) 7486{ 7487 ASSERT_NE(engine_, nullptr); 7488 napi_env env = reinterpret_cast<napi_env>(engine_); 7489 7490 auto res = napi_close_handle_scope(env, nullptr); 7491 ASSERT_EQ(res, napi_invalid_arg); 7492} 7493 7494/** 7495 * @tc.name: NapiCloseHandleScopeTest 7496 * @tc.desc: Test interface of napi_close_handle_scope 7497 * @tc.type: FUNC 7498 */ 7499HWTEST_F(NapiBasicTest, NapiCloseHandleScopeTest002, testing::ext::TestSize.Level1) 7500{ 7501 ASSERT_NE(engine_, nullptr); 7502 napi_env env = reinterpret_cast<napi_env>(engine_); 7503 7504 napi_handle_scope scope = nullptr; 7505 ASSERT_CHECK_CALL(napi_open_handle_scope(env, &scope)); 7506 auto res = napi_close_handle_scope(env, scope); 7507 ASSERT_EQ(res, napi_ok); 7508} 7509 7510/** 7511 * @tc.name: NapiCloseHandleScopeTest 7512 * @tc.desc: Test interface of napi_close_handle_scope 7513 * @tc.type: FUNC 7514 */ 7515HWTEST_F(NapiBasicTest, NapiCloseHandleScopeTest003, testing::ext::TestSize.Level1) 7516{ 7517 ASSERT_NE(engine_, nullptr); 7518 napi_env env = reinterpret_cast<napi_env>(engine_); 7519 napi_handle_scope scope = reinterpret_cast<napi_handle_scope>(scope_); 7520 7521 auto tempScope = engine_->openHandleScopes_; 7522 engine_->openHandleScopes_ = 0; 7523 auto res = napi_close_handle_scope(env, scope); 7524 engine_->openHandleScopes_ = tempScope; 7525 ASSERT_EQ(res, napi_handle_scope_mismatch); 7526} 7527 7528/** 7529 * @tc.name: NapiOpenEscapableHandleScopeTest 7530 * @tc.desc: Test interface of napi_open_escapable_handle_scope 7531 * @tc.type: FUNC 7532 */ 7533HWTEST_F(NapiBasicTest, NapiOpenEscapableHandleScopeTest001, testing::ext::TestSize.Level1) 7534{ 7535 ASSERT_NE(engine_, nullptr); 7536 napi_env env = reinterpret_cast<napi_env>(engine_); 7537 7538 auto res = napi_open_escapable_handle_scope(env, nullptr); 7539 ASSERT_EQ(res, napi_invalid_arg); 7540} 7541 7542/** 7543 * @tc.name: NapiCloseEscapableHandleScopeTest 7544 * @tc.desc: Test interface of napi_close_escapable_handle_scope 7545 * @tc.type: FUNC 7546 */ 7547HWTEST_F(NapiBasicTest, NapiCloseEscapableHandleScopeTest001, testing::ext::TestSize.Level1) 7548{ 7549 ASSERT_NE(engine_, nullptr); 7550 napi_env env = reinterpret_cast<napi_env>(engine_); 7551 7552 auto res = napi_close_escapable_handle_scope(env, nullptr); 7553 ASSERT_EQ(res, napi_invalid_arg); 7554} 7555 7556/** 7557 * @tc.name: NapiCloseEscapableHandleScopeTest 7558 * @tc.desc: Test interface of napi_close_escapable_handle_scope 7559 * @tc.type: FUNC 7560 */ 7561HWTEST_F(NapiBasicTest, NapiCloseEscapableHandleScopeTest002, testing::ext::TestSize.Level1) 7562{ 7563 ASSERT_NE(engine_, nullptr); 7564 napi_env env = reinterpret_cast<napi_env>(engine_); 7565 7566 napi_escapable_handle_scope scope = nullptr; 7567 ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &scope)); 7568 7569 auto res = napi_close_escapable_handle_scope(env, scope); 7570 ASSERT_EQ(res, napi_ok); 7571} 7572 7573/** 7574 * @tc.name: NapiCloseEscapableHandleScopeTest 7575 * @tc.desc: Test interface of napi_close_escapable_handle_scope 7576 * @tc.type: FUNC 7577 */ 7578HWTEST_F(NapiBasicTest, NapiCloseEscapableHandleScopeTest003, testing::ext::TestSize.Level1) 7579{ 7580 ASSERT_NE(engine_, nullptr); 7581 napi_env env = reinterpret_cast<napi_env>(engine_); 7582 napi_handle_scope scope = reinterpret_cast<napi_handle_scope>(scope_); 7583 7584 auto tempScope = engine_->openHandleScopes_; 7585 engine_->openHandleScopes_ = 0; 7586 auto res = napi_close_escapable_handle_scope(env, (napi_escapable_handle_scope)scope); 7587 engine_->openHandleScopes_ = tempScope; 7588 ASSERT_EQ(res, napi_handle_scope_mismatch); 7589} 7590 7591/** 7592 * @tc.name: NapiEscapeHandleTest 7593 * @tc.desc: Test interface of napi_escape_handle 7594 * @tc.type: FUNC 7595 */ 7596HWTEST_F(NapiBasicTest, NapiEscapeHandleTest001, testing::ext::TestSize.Level1) 7597{ 7598 ASSERT_NE(engine_, nullptr); 7599 napi_env env = reinterpret_cast<napi_env>(engine_); 7600 7601 napi_escapable_handle_scope escapableScope = nullptr; 7602 ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &escapableScope)); 7603 napi_value boolean, booleanNew = nullptr; 7604 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 7605 7606 auto res = napi_escape_handle(env, escapableScope, boolean, &booleanNew); 7607 ASSERT_EQ(res, napi_ok); 7608 7609 ASSERT_CHECK_CALL(napi_close_escapable_handle_scope(env, escapableScope)); 7610} 7611 7612/** 7613 * @tc.name: NapiEscapeHandleTest 7614 * @tc.desc: Test interface of napi_escape_handle 7615 * @tc.type: FUNC 7616 */ 7617HWTEST_F(NapiBasicTest, NapiEscapeHandleTest002, testing::ext::TestSize.Level1) 7618{ 7619 ASSERT_NE(engine_, nullptr); 7620 napi_env env = reinterpret_cast<napi_env>(engine_); 7621 7622 napi_escapable_handle_scope escapableScope = nullptr; 7623 ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &escapableScope)); 7624 napi_value boolean, booleanNew = nullptr; 7625 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 7626 ASSERT_CHECK_CALL(napi_escape_handle(env, escapableScope, boolean, &booleanNew)); 7627 7628 auto res = napi_escape_handle(env, escapableScope, boolean, &booleanNew); 7629 ASSERT_EQ(res, napi_escape_called_twice); 7630 7631 ASSERT_CHECK_CALL(napi_close_escapable_handle_scope(env, escapableScope)); 7632} 7633 7634/** 7635 * @tc.name: NapiEscapeHandleTest 7636 * @tc.desc: Test interface of napi_escape_handle 7637 * @tc.type: FUNC 7638 */ 7639HWTEST_F(NapiBasicTest, NapiEscapeHandleTest003, testing::ext::TestSize.Level1) 7640{ 7641 ASSERT_NE(engine_, nullptr); 7642 napi_env env = reinterpret_cast<napi_env>(engine_); 7643 7644 napi_escapable_handle_scope escapableScope = nullptr; 7645 ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &escapableScope)); 7646 napi_value boolean = nullptr; 7647 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 7648 7649 auto res = napi_escape_handle(env, escapableScope, boolean, nullptr); 7650 ASSERT_EQ(res, napi_invalid_arg); 7651 7652 ASSERT_CHECK_CALL(napi_close_escapable_handle_scope(env, escapableScope)); 7653} 7654 7655/** 7656 * @tc.name: NapiEscapeHandleTest 7657 * @tc.desc: Test interface of napi_escape_handle 7658 * @tc.type: FUNC 7659 */ 7660HWTEST_F(NapiBasicTest, NapiEscapeHandleTest004, testing::ext::TestSize.Level1) 7661{ 7662 ASSERT_NE(engine_, nullptr); 7663 napi_env env = reinterpret_cast<napi_env>(engine_); 7664 7665 napi_escapable_handle_scope escapableScope = nullptr; 7666 ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &escapableScope)); 7667 7668 auto res = napi_escape_handle(env, escapableScope, nullptr, nullptr); 7669 ASSERT_EQ(res, napi_invalid_arg); 7670 7671 ASSERT_CHECK_CALL(napi_close_escapable_handle_scope(env, escapableScope)); 7672} 7673 7674/** 7675 * @tc.name: NapiEscapeHandleTest 7676 * @tc.desc: Test interface of napi_escape_handle 7677 * @tc.type: FUNC 7678 */ 7679HWTEST_F(NapiBasicTest, NapiEscapeHandleTest005, testing::ext::TestSize.Level1) 7680{ 7681 ASSERT_NE(engine_, nullptr); 7682 napi_env env = reinterpret_cast<napi_env>(engine_); 7683 7684 auto res = napi_escape_handle(env, nullptr, nullptr, nullptr); 7685 ASSERT_EQ(res, napi_invalid_arg); 7686} 7687 7688/** 7689 * @tc.name: NapiCreateReferenceTest 7690 * @tc.desc: Test interface of napi_create_reference 7691 * @tc.type: FUNC 7692 */ 7693HWTEST_F(NapiBasicTest, NapiCreateReferenceTest001, testing::ext::TestSize.Level1) 7694{ 7695 ASSERT_NE(engine_, nullptr); 7696 napi_env env = reinterpret_cast<napi_env>(engine_); 7697 7698 napi_value boolean = nullptr; 7699 napi_ref booleanRef = nullptr; 7700 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 7701 7702 auto res = napi_create_reference(env, boolean, 1, &booleanRef); 7703 ASSERT_EQ(res, napi_ok); 7704 ASSERT_CHECK_CALL(napi_delete_reference(env, booleanRef)); 7705} 7706 7707/** 7708 * @tc.name: NapiCreateReferenceTest 7709 * @tc.desc: Test interface of napi_create_reference 7710 * @tc.type: FUNC 7711 */ 7712HWTEST_F(NapiBasicTest, NapiCreateReferenceTest002, testing::ext::TestSize.Level1) 7713{ 7714 ASSERT_NE(engine_, nullptr); 7715 napi_env env = reinterpret_cast<napi_env>(engine_); 7716 7717 napi_value boolean = nullptr; 7718 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 7719 7720 auto res = napi_create_reference(env, boolean, 1, nullptr); 7721 ASSERT_EQ(res, napi_invalid_arg); 7722} 7723 7724/** 7725 * @tc.name: NapiCreateReferenceTest 7726 * @tc.desc: Test interface of napi_create_reference 7727 * @tc.type: FUNC 7728 */ 7729HWTEST_F(NapiBasicTest, NapiCreateReferenceTest003, testing::ext::TestSize.Level1) 7730{ 7731 ASSERT_NE(engine_, nullptr); 7732 napi_env env = reinterpret_cast<napi_env>(engine_); 7733 7734 auto res = napi_create_reference(env, nullptr, 1, nullptr); 7735 ASSERT_EQ(res, napi_invalid_arg); 7736} 7737 7738/** 7739 * @tc.name: NapiDeleteReferenceTest 7740 * @tc.desc: Test interface of napi_delete_reference 7741 * @tc.type: FUNC 7742 */ 7743HWTEST_F(NapiBasicTest, NapiDeleteReferenceTest001, testing::ext::TestSize.Level1) 7744{ 7745 ASSERT_NE(engine_, nullptr); 7746 napi_env env = reinterpret_cast<napi_env>(engine_); 7747 7748 auto res = napi_delete_reference(env, nullptr); 7749 ASSERT_EQ(res, napi_invalid_arg); 7750} 7751 7752/** 7753 * @tc.name: NapiDeleteReferenceTest 7754 * @tc.desc: Test interface of napi_delete_reference 7755 * @tc.type: FUNC 7756 */ 7757HWTEST_F(NapiBasicTest, NapiDeleteReferenceTest002, testing::ext::TestSize.Level1) 7758{ 7759 ASSERT_NE(engine_, nullptr); 7760 napi_env env = reinterpret_cast<napi_env>(engine_); 7761 7762 napi_value boolean = nullptr; 7763 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 7764 7765 napi_ref booleanRef = nullptr; 7766 ASSERT_CHECK_CALL(napi_create_reference(env, boolean, 1, &booleanRef)); 7767 auto res = napi_delete_reference(env, booleanRef); 7768 ASSERT_EQ(res, napi_ok); 7769} 7770 7771/** 7772 * @tc.name: NapiReferenceRefTest 7773 * @tc.desc: Test interface of napi_reference_ref 7774 * @tc.type: FUNC 7775 */ 7776HWTEST_F(NapiBasicTest, NapiReferenceRefTest001, testing::ext::TestSize.Level1) 7777{ 7778 ASSERT_NE(engine_, nullptr); 7779 napi_env env = reinterpret_cast<napi_env>(engine_); 7780 7781 auto res = napi_reference_ref(env, nullptr, nullptr); 7782 ASSERT_EQ(res, napi_invalid_arg); 7783} 7784 7785/** 7786 * @tc.name: NapiReferenceUnrefTest 7787 * @tc.desc: Test interface of napi_reference_unref 7788 * @tc.type: FUNC 7789 */ 7790HWTEST_F(NapiBasicTest, NapiReferenceUnrefTest001, testing::ext::TestSize.Level1) 7791{ 7792 ASSERT_NE(engine_, nullptr); 7793 napi_env env = reinterpret_cast<napi_env>(engine_); 7794 7795 auto res = napi_reference_unref(env, nullptr, nullptr); 7796 ASSERT_EQ(res, napi_invalid_arg); 7797} 7798 7799/** 7800 * @tc.name: NapiGetReferenceValueTest 7801 * @tc.desc: Test interface of napi_get_reference_value 7802 * @tc.type: FUNC 7803 */ 7804HWTEST_F(NapiBasicTest, NapiGetReferenceValueTest001, testing::ext::TestSize.Level1) 7805{ 7806 ASSERT_NE(engine_, nullptr); 7807 napi_env env = reinterpret_cast<napi_env>(engine_); 7808 7809 auto res = napi_get_reference_value(env, nullptr, nullptr); 7810 ASSERT_EQ(res, napi_invalid_arg); 7811} 7812 7813/** 7814 * @tc.name: NapiGetReferenceValueTest 7815 * @tc.desc: Test interface of napi_get_reference_value 7816 * @tc.type: FUNC 7817 */ 7818HWTEST_F(NapiBasicTest, NapiGetReferenceValueTest002, testing::ext::TestSize.Level1) 7819{ 7820 ASSERT_NE(engine_, nullptr); 7821 napi_env env = reinterpret_cast<napi_env>(engine_); 7822 7823 napi_value boolean = nullptr; 7824 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 7825 7826 napi_ref booleanRef = nullptr; 7827 ASSERT_CHECK_CALL(napi_create_reference(env, boolean, 1, &booleanRef)); 7828 7829 auto res = napi_get_reference_value(env, booleanRef, nullptr); 7830 ASSERT_EQ(res, napi_invalid_arg); 7831} 7832 7833/** 7834 * @tc.name: NapiGetReferenceValueTest 7835 * @tc.desc: Test interface of napi_get_reference_value 7836 * @tc.type: FUNC 7837 */ 7838HWTEST_F(NapiBasicTest, NapiGetReferenceValueTest003, testing::ext::TestSize.Level1) 7839{ 7840 ASSERT_NE(engine_, nullptr); 7841 napi_env env = reinterpret_cast<napi_env>(engine_); 7842 7843 napi_value boolean = nullptr; 7844 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 7845 7846 napi_ref booleanRef = nullptr; 7847 ASSERT_CHECK_CALL(napi_create_reference(env, boolean, 1, &booleanRef)); 7848 7849 napi_value refValue = nullptr; 7850 auto res = napi_get_reference_value(env, booleanRef, &refValue); 7851 ASSERT_EQ(res, napi_ok); 7852 ASSERT_NE(refValue, nullptr); 7853} 7854 7855/** 7856 * @tc.name: NapiCreateArrayTest 7857 * @tc.desc: Test interface of napi_create_array 7858 * @tc.type: FUNC 7859 */ 7860HWTEST_F(NapiBasicTest, NapiCreateArrayTest001, testing::ext::TestSize.Level1) 7861{ 7862 ASSERT_NE(engine_, nullptr); 7863 napi_env env = reinterpret_cast<napi_env>(engine_); 7864 napi_value array = nullptr; 7865 auto res = napi_create_array(env, &array); 7866 ASSERT_EQ(res, napi_ok); 7867} 7868 7869/** 7870 * @tc.name: NapiCreateArrayTest 7871 * @tc.desc: Test interface of napi_create_array 7872 * @tc.type: FUNC 7873 */ 7874HWTEST_F(NapiBasicTest, NapiCreateArrayTest002, testing::ext::TestSize.Level1) 7875{ 7876 ASSERT_NE(engine_, nullptr); 7877 napi_env env = reinterpret_cast<napi_env>(engine_); 7878 7879 auto res = napi_create_array(env, nullptr); 7880 ASSERT_EQ(res, napi_invalid_arg); 7881} 7882 7883/** 7884 * @tc.name: NapiCreateArrayWithLengthTest 7885 * @tc.desc: Test interface of napi_create_array_with_length 7886 * @tc.type: FUNC 7887 */ 7888HWTEST_F(NapiBasicTest, NapiCreateArrayWithLengthTest001, testing::ext::TestSize.Level1) 7889{ 7890 ASSERT_NE(engine_, nullptr); 7891 napi_env env = reinterpret_cast<napi_env>(engine_); 7892 7893 napi_value array = nullptr; 7894 auto res = napi_create_array_with_length(env, 0, &array); 7895 ASSERT_EQ(res, napi_ok); 7896} 7897 7898/** 7899 * @tc.name: NapiCreateArrayWithLengthTest 7900 * @tc.desc: Test interface of napi_create_array_with_length 7901 * @tc.type: FUNC 7902 */ 7903HWTEST_F(NapiBasicTest, NapiCreateArrayWithLengthTest002, testing::ext::TestSize.Level1) 7904{ 7905 ASSERT_NE(engine_, nullptr); 7906 napi_env env = reinterpret_cast<napi_env>(engine_); 7907 7908 auto res = napi_create_array_with_length(env, 0, nullptr); 7909 ASSERT_EQ(res, napi_invalid_arg); 7910} 7911 7912/** 7913 * @tc.name: NapiCreateArraybufferTest 7914 * @tc.desc: Test interface of napi_create_arraybuffer 7915 * @tc.type: FUNC 7916 */ 7917HWTEST_F(NapiBasicTest, NapiCreateArraybufferTest001, testing::ext::TestSize.Level1) 7918{ 7919 ASSERT_NE(engine_, nullptr); 7920 napi_env env = reinterpret_cast<napi_env>(engine_); 7921 7922 napi_value arrayBuffer = nullptr; 7923 void* arrayBufferPtr = nullptr; 7924 size_t arrayBufferSize = 0; 7925 auto res = napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer); 7926 ASSERT_EQ(res, napi_ok); 7927} 7928 7929/** 7930 * @tc.name: NapiCreateArraybufferTest 7931 * @tc.desc: Test interface of napi_create_arraybuffer 7932 * @tc.type: FUNC 7933 */ 7934HWTEST_F(NapiBasicTest, NapiCreateArraybufferTest002, testing::ext::TestSize.Level1) 7935{ 7936 ASSERT_NE(engine_, nullptr); 7937 napi_env env = reinterpret_cast<napi_env>(engine_); 7938 7939 size_t arrayBufferSize = 0; 7940 auto res = napi_create_arraybuffer(env, arrayBufferSize, nullptr, nullptr); 7941 ASSERT_EQ(res, napi_invalid_arg); 7942} 7943 7944/** 7945 * @tc.name: NapiCreateArraybufferTest 7946 * @tc.desc: Test interface of napi_create_arraybuffer 7947 * @tc.type: FUNC 7948 */ 7949HWTEST_F(NapiBasicTest, NapiCreateArraybufferTest003, testing::ext::TestSize.Level1) 7950{ 7951 ASSERT_NE(engine_, nullptr); 7952 napi_env env = reinterpret_cast<napi_env>(engine_); 7953 7954 void* arrayBufferPtr = nullptr; 7955 size_t arrayBufferSize = 0; 7956 auto res = napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, nullptr); 7957 ASSERT_EQ(res, napi_invalid_arg); 7958} 7959 7960/** 7961 * @tc.name: NapiCreateExternalTest 7962 * @tc.desc: Test interface of napi_create_external 7963 * @tc.type: FUNC 7964 */ 7965HWTEST_F(NapiBasicTest, NapiCreateExternalTest001, testing::ext::TestSize.Level1) 7966{ 7967 ASSERT_NE(engine_, nullptr); 7968 napi_env env = reinterpret_cast<napi_env>(engine_); 7969 7970 auto res = napi_create_external( 7971 env, (void*)TEST_CHAR_STRING, 7972 [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); }, 7973 (void*)TEST_CHAR_STRING, nullptr); 7974 ASSERT_EQ(res, napi_invalid_arg); 7975} 7976 7977/** 7978 * @tc.name: NapiCreateExternalTest 7979 * @tc.desc: Test interface of napi_create_external 7980 * @tc.type: FUNC 7981 */ 7982HWTEST_F(NapiBasicTest, NapiCreateExternalTest002, testing::ext::TestSize.Level1) 7983{ 7984 ASSERT_NE(engine_, nullptr); 7985 napi_env env = reinterpret_cast<napi_env>(engine_); 7986 7987 napi_value external = nullptr; 7988 auto res = napi_create_external( 7989 env, (void*)TEST_CHAR_STRING, 7990 [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); }, 7991 (void*)TEST_CHAR_STRING, &external); 7992 ASSERT_EQ(res, napi_ok); 7993} 7994 7995/** 7996 * @tc.name: NapiCreateExternalArraybufferTest 7997 * @tc.desc: Test interface of napi_create_external_arraybuffer 7998 * @tc.type: FUNC 7999 */ 8000HWTEST_F(NapiBasicTest, NapiCreateExternalArraybufferTest001, testing::ext::TestSize.Level1) 8001{ 8002 ASSERT_NE(engine_, nullptr); 8003 napi_env env = reinterpret_cast<napi_env>(engine_); 8004 8005 auto res = napi_create_external_arraybuffer( 8006 env, nullptr, strlen(TEST_CHAR_STRING), 8007 nullptr, 8008 (void*)TEST_CHAR_STRING, nullptr); 8009 ASSERT_EQ(res, napi_invalid_arg); 8010} 8011 8012/** 8013 * @tc.name: NapiCreateExternalArraybufferTest 8014 * @tc.desc: Test interface of napi_create_external_arraybuffer 8015 * @tc.type: FUNC 8016 */ 8017HWTEST_F(NapiBasicTest, NapiCreateExternalArraybufferTest002, testing::ext::TestSize.Level1) 8018{ 8019 ASSERT_NE(engine_, nullptr); 8020 napi_env env = reinterpret_cast<napi_env>(engine_); 8021 8022 auto res = napi_create_external_arraybuffer( 8023 env, (void*)TEST_CHAR_STRING, strlen(TEST_CHAR_STRING), 8024 nullptr, 8025 (void*)TEST_CHAR_STRING, nullptr); 8026 ASSERT_EQ(res, napi_invalid_arg); 8027} 8028 8029/** 8030 * @tc.name: NapiCreateExternalArraybufferTest 8031 * @tc.desc: Test interface of napi_create_external_arraybuffer 8032 * @tc.type: FUNC 8033 */ 8034HWTEST_F(NapiBasicTest, NapiCreateExternalArraybufferTest003, testing::ext::TestSize.Level1) 8035{ 8036 ASSERT_NE(engine_, nullptr); 8037 napi_env env = reinterpret_cast<napi_env>(engine_); 8038 8039 auto res = napi_create_external_arraybuffer( 8040 env, (void*)TEST_CHAR_STRING, strlen(TEST_CHAR_STRING), 8041 [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); }, 8042 (void*)TEST_CHAR_STRING, nullptr); 8043 ASSERT_EQ(res, napi_invalid_arg); 8044} 8045 8046/** 8047 * @tc.name: NapiCreateExternalArraybufferTest 8048 * @tc.desc: Test interface of napi_create_external_arraybuffer 8049 * @tc.type: FUNC 8050 */ 8051HWTEST_F(NapiBasicTest, NapiCreateExternalArraybufferTest004, testing::ext::TestSize.Level1) 8052{ 8053 ASSERT_NE(engine_, nullptr); 8054 napi_env env = reinterpret_cast<napi_env>(engine_); 8055 8056 napi_value external = nullptr; 8057 auto res = napi_create_external_arraybuffer( 8058 env, (void*)TEST_CHAR_STRING, strlen(TEST_CHAR_STRING), 8059 [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); }, 8060 (void*)TEST_CHAR_STRING, &external); 8061 ASSERT_EQ(res, napi_ok); 8062} 8063 8064/** 8065 * @tc.name: NapiCreateObjectTest 8066 * @tc.desc: Test interface of napi_create_object 8067 * @tc.type: FUNC 8068 */ 8069HWTEST_F(NapiBasicTest, NapiCreateObjectTest001, testing::ext::TestSize.Level1) 8070{ 8071 ASSERT_NE(engine_, nullptr); 8072 napi_env env = reinterpret_cast<napi_env>(engine_); 8073 8074 auto res = napi_create_object(env, nullptr); 8075 ASSERT_EQ(res, napi_invalid_arg); 8076 8077 napi_value result = nullptr; 8078 ASSERT_CHECK_CALL(napi_create_object(env, &result)); 8079} 8080 8081/** 8082 * @tc.name: NapiCreateSymbolTest 8083 * @tc.desc: Test interface of napi_create_symbol 8084 * @tc.type: FUNC 8085 */ 8086HWTEST_F(NapiBasicTest, NapiCreateSymbolTest001, testing::ext::TestSize.Level1) 8087{ 8088 ASSERT_NE(engine_, nullptr); 8089 napi_env env = reinterpret_cast<napi_env>(engine_); 8090 8091 auto res = napi_create_symbol(env, nullptr, nullptr); 8092 ASSERT_EQ(res, napi_invalid_arg); 8093} 8094 8095/** 8096 * @tc.name: NapiCreateSymbolTest 8097 * @tc.desc: Test interface of napi_create_symbol 8098 * @tc.type: FUNC 8099 */ 8100HWTEST_F(NapiBasicTest, NapiCreateSymbolTest002, testing::ext::TestSize.Level1) 8101{ 8102 ASSERT_NE(engine_, nullptr); 8103 napi_env env = reinterpret_cast<napi_env>(engine_); 8104 8105 napi_value boolean = nullptr; 8106 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8107 8108 napi_value result = nullptr; 8109 auto res = napi_create_symbol(env, boolean, &result); 8110 ASSERT_EQ(res, napi_invalid_arg); 8111} 8112 8113/** 8114 * @tc.name: NapiCreateTypedarrayTest 8115 * @tc.desc: Test interface of napi_create_typedarray 8116 * @tc.type: FUNC 8117 */ 8118HWTEST_F(NapiBasicTest, NapiCreateTypedarrayTest001, testing::ext::TestSize.Level1) 8119{ 8120 ASSERT_NE(engine_, nullptr); 8121 napi_env env = reinterpret_cast<napi_env>(engine_); 8122 8123 auto res = napi_create_typedarray(env, napi_int8_array, 0, nullptr, 0, nullptr); 8124 ASSERT_EQ(res, napi_invalid_arg); 8125 8126 napi_value arraybuffer = nullptr; 8127 res = napi_create_typedarray(env, napi_int8_array, 0, arraybuffer, 0, nullptr); 8128 ASSERT_EQ(res, napi_invalid_arg); 8129} 8130 8131/** 8132 * @tc.name: NapiCreateTypedarrayTest 8133 * @tc.desc: Test interface of napi_create_typedarray 8134 * @tc.type: FUNC 8135 */ 8136HWTEST_F(NapiBasicTest, NapiCreateTypedarrayTest002, testing::ext::TestSize.Level1) 8137{ 8138 ASSERT_NE(engine_, nullptr); 8139 napi_env env = reinterpret_cast<napi_env>(engine_); 8140 8141 napi_value boolean = nullptr; 8142 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8143 napi_value typedarray = nullptr; 8144 auto res = napi_create_typedarray(env, napi_int8_array, 0, boolean, 0, &typedarray); 8145 ASSERT_EQ(res, napi_arraybuffer_expected); 8146} 8147 8148/** 8149 * @tc.name: NapiCreateTypedarrayTest 8150 * @tc.desc: Test interface of napi_create_typedarray 8151 * @tc.type: FUNC 8152 */ 8153HWTEST_F(NapiBasicTest, NapiCreateTypedarrayTest003, testing::ext::TestSize.Level1) 8154{ 8155 ASSERT_NE(engine_, nullptr); 8156 napi_env env = reinterpret_cast<napi_env>(engine_); 8157 8158 napi_value arrayBuffer = nullptr; 8159 void* arrayBufferPtr = nullptr; 8160 size_t arrayBufferSize = 1024; 8161 ASSERT_CHECK_CALL(napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer)); 8162 8163 napi_value typedarray = nullptr; 8164 auto res = napi_create_typedarray(env, (napi_typedarray_type)(napi_int8_array - 1), arrayBufferSize, 8165 arrayBuffer, 0, &typedarray); 8166 ASSERT_EQ(res, napi_invalid_arg); 8167} 8168 8169/** 8170 * @tc.name: NapiCreateDataviewTest 8171 * @tc.desc: Test interface of napi_create_dataview 8172 * @tc.type: FUNC 8173 */ 8174HWTEST_F(NapiBasicTest, NapiCreateDataviewTest001, testing::ext::TestSize.Level1) 8175{ 8176 ASSERT_NE(engine_, nullptr); 8177 napi_env env = reinterpret_cast<napi_env>(engine_); 8178 8179 auto res = napi_create_dataview(env, 0, nullptr, 0, nullptr); 8180 ASSERT_EQ(res, napi_invalid_arg); 8181 8182 napi_value arraybuffer = nullptr; 8183 res = napi_create_dataview(env, 0, arraybuffer, 0, nullptr); 8184 ASSERT_EQ(res, napi_invalid_arg); 8185} 8186 8187/** 8188 * @tc.name: NapiCreateDataviewTest 8189 * @tc.desc: Test interface of napi_create_dataview 8190 * @tc.type: FUNC 8191 */ 8192HWTEST_F(NapiBasicTest, NapiCreateDataviewTest002, testing::ext::TestSize.Level1) 8193{ 8194 ASSERT_NE(engine_, nullptr); 8195 napi_env env = reinterpret_cast<napi_env>(engine_); 8196 8197 napi_value boolean = nullptr; 8198 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8199 napi_value result = nullptr; 8200 auto res = napi_create_dataview(env, 0, boolean, 0, &result); 8201 ASSERT_EQ(res, napi_arraybuffer_expected); 8202} 8203 8204/** 8205 * @tc.name: NapiCreateDataviewTest 8206 * @tc.desc: Test interface of napi_create_dataview 8207 * @tc.type: FUNC 8208 */ 8209HWTEST_F(NapiBasicTest, NapiCreateDataviewTest003, testing::ext::TestSize.Level1) 8210{ 8211 ASSERT_NE(engine_, nullptr); 8212 napi_env env = reinterpret_cast<napi_env>(engine_); 8213 8214 napi_value arrayBuffer = nullptr; 8215 void* arrayBufferPtr = nullptr; 8216 size_t arrayBufferSize = 1024; 8217 napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer); 8218 ASSERT_NE(arrayBuffer, nullptr); 8219 ASSERT_NE(arrayBufferPtr, nullptr); 8220 bool isArrayBuffer = false; 8221 napi_is_arraybuffer(env, arrayBuffer, &isArrayBuffer); 8222 ASSERT_TRUE(isArrayBuffer); 8223 8224 napi_value result = nullptr; 8225 auto res = napi_create_dataview(env, arrayBufferSize, arrayBuffer, arrayBufferSize + 1, &result); 8226 ASSERT_EQ(res, napi_pending_exception); 8227} 8228 8229/** 8230 * @tc.name: NapiCreateInt32Test 8231 * @tc.desc: Test interface of napi_create_int32 8232 * @tc.type: FUNC 8233 */ 8234HWTEST_F(NapiBasicTest, NapiCreateInt32Test001, testing::ext::TestSize.Level1) 8235{ 8236 ASSERT_NE(engine_, nullptr); 8237 napi_env env = reinterpret_cast<napi_env>(engine_); 8238 8239 auto res = napi_create_int32(env, TEST_INT32_MINUS_1, nullptr); 8240 ASSERT_EQ(res, napi_invalid_arg); 8241} 8242 8243/** 8244 * @tc.name: NapiCreateInt32Test 8245 * @tc.desc: Test interface of napi_create_int32 8246 * @tc.type: FUNC 8247 */ 8248HWTEST_F(NapiBasicTest, NapiCreateInt32Test002, testing::ext::TestSize.Level1) 8249{ 8250 ASSERT_NE(engine_, nullptr); 8251 napi_env env = reinterpret_cast<napi_env>(engine_); 8252 8253 napi_value numberValue = nullptr; 8254 auto res = napi_create_int32(env, TEST_INT32_MINUS_1, &numberValue); 8255 ASSERT_EQ(res, napi_ok); 8256} 8257 8258/** 8259 * @tc.name: NapiCreateUint32Test 8260 * @tc.desc: Test interface of napi_create_uint32 8261 * @tc.type: FUNC 8262 */ 8263HWTEST_F(NapiBasicTest, NapiCreateUint32Test001, testing::ext::TestSize.Level1) 8264{ 8265 ASSERT_NE(engine_, nullptr); 8266 napi_env env = reinterpret_cast<napi_env>(engine_); 8267 8268 auto res = napi_create_uint32(env, TEST_UINT32_1000, nullptr); 8269 ASSERT_EQ(res, napi_invalid_arg); 8270} 8271 8272/** 8273 * @tc.name: NapiCreateUint32Test 8274 * @tc.desc: Test interface of napi_create_uint32 8275 * @tc.type: FUNC 8276 */ 8277HWTEST_F(NapiBasicTest, NapiCreateUint32Test002, testing::ext::TestSize.Level1) 8278{ 8279 ASSERT_NE(engine_, nullptr); 8280 napi_env env = reinterpret_cast<napi_env>(engine_); 8281 8282 napi_value numberValue = nullptr; 8283 auto res = napi_create_uint32(env, TEST_UINT32_1000, &numberValue); 8284 ASSERT_EQ(res, napi_ok); 8285} 8286 8287/** 8288 * @tc.name: NapiCreateInt64Test 8289 * @tc.desc: Test interface of napi_create_int64 8290 * @tc.type: FUNC 8291 */ 8292HWTEST_F(NapiBasicTest, NapiCreateInt64Test001, testing::ext::TestSize.Level1) 8293{ 8294 ASSERT_NE(engine_, nullptr); 8295 napi_env env = reinterpret_cast<napi_env>(engine_); 8296 8297 auto res = napi_create_int64(env, TEST_INT64, nullptr); 8298 ASSERT_EQ(res, napi_invalid_arg); 8299} 8300 8301/** 8302 * @tc.name: NapiCreateInt64Test 8303 * @tc.desc: Test interface of napi_create_int64 8304 * @tc.type: FUNC 8305 */ 8306HWTEST_F(NapiBasicTest, NapiCreateInt64Test002, testing::ext::TestSize.Level1) 8307{ 8308 ASSERT_NE(engine_, nullptr); 8309 napi_env env = reinterpret_cast<napi_env>(engine_); 8310 8311 napi_value numberValue = nullptr; 8312 auto res = napi_create_int64(env, TEST_INT64, &numberValue); 8313 ASSERT_EQ(res, napi_ok); 8314} 8315 8316/** 8317 * @tc.name: NapiCreateDoubleTest 8318 * @tc.desc: Test interface of napi_create_double 8319 * @tc.type: FUNC 8320 */ 8321HWTEST_F(NapiBasicTest, NapiCreateDoubleTest001, testing::ext::TestSize.Level1) 8322{ 8323 ASSERT_NE(engine_, nullptr); 8324 napi_env env = reinterpret_cast<napi_env>(engine_); 8325 8326 auto res = napi_create_double(env, TEST_DOUBLE, nullptr); 8327 ASSERT_EQ(res, napi_invalid_arg); 8328} 8329 8330/** 8331 * @tc.name: NapiCreateDoubleTest 8332 * @tc.desc: Test interface of napi_create_double 8333 * @tc.type: FUNC 8334 */ 8335HWTEST_F(NapiBasicTest, NapiCreateDoubleTest002, testing::ext::TestSize.Level1) 8336{ 8337 ASSERT_NE(engine_, nullptr); 8338 napi_env env = reinterpret_cast<napi_env>(engine_); 8339 8340 napi_value numberValue = nullptr; 8341 auto res = napi_create_double(env, TEST_DOUBLE, &numberValue); 8342 ASSERT_EQ(res, napi_ok); 8343} 8344 8345/** 8346 * @tc.name: NapiCreateStringLatin1Test 8347 * @tc.desc: Test interface of napi_create_string_latin1 8348 * @tc.type: FUNC 8349 */ 8350HWTEST_F(NapiBasicTest, NapiCreateStringLatin1Test001, testing::ext::TestSize.Level1) 8351{ 8352 ASSERT_NE(engine_, nullptr); 8353 napi_env env = reinterpret_cast<napi_env>(engine_); 8354 8355 auto res = napi_create_string_latin1(env, nullptr, NAPI_AUTO_LENGTH, nullptr); 8356 ASSERT_EQ(res, napi_invalid_arg); 8357} 8358 8359/** 8360 * @tc.name: NapiCreateStringLatin1Test 8361 * @tc.desc: Test interface of napi_create_string_latin1 8362 * @tc.type: FUNC 8363 */ 8364HWTEST_F(NapiBasicTest, NapiCreateStringLatin1Test002, testing::ext::TestSize.Level1) 8365{ 8366 ASSERT_NE(engine_, nullptr); 8367 napi_env env = reinterpret_cast<napi_env>(engine_); 8368 8369 auto res = napi_create_string_latin1(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, nullptr); 8370 ASSERT_EQ(res, napi_invalid_arg); 8371} 8372 8373/** 8374 * @tc.name: NapiCreateStringUtf8Test 8375 * @tc.desc: Test interface of napi_create_string_utf8 8376 * @tc.type: FUNC 8377 */ 8378HWTEST_F(NapiBasicTest, NapiCreateStringUtf8Test001, testing::ext::TestSize.Level1) 8379{ 8380 ASSERT_NE(engine_, nullptr); 8381 napi_env env = reinterpret_cast<napi_env>(engine_); 8382 8383 auto res = napi_create_string_utf8(env, nullptr, NAPI_AUTO_LENGTH, nullptr); 8384 ASSERT_EQ(res, napi_invalid_arg); 8385} 8386 8387/** 8388 * @tc.name: NapiCreateStringUtf8Test 8389 * @tc.desc: Test interface of napi_create_string_utf8 8390 * @tc.type: FUNC 8391 */ 8392HWTEST_F(NapiBasicTest, NapiCreateStringUtf8Test002, testing::ext::TestSize.Level1) 8393{ 8394 ASSERT_NE(engine_, nullptr); 8395 napi_env env = reinterpret_cast<napi_env>(engine_); 8396 8397 auto res = napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, nullptr); 8398 ASSERT_EQ(res, napi_invalid_arg); 8399} 8400 8401/** 8402 * @tc.name: NapiCreateStringUtf16Test 8403 * @tc.desc: Test interface of napi_create_string_utf16 8404 * @tc.type: FUNC 8405 */ 8406HWTEST_F(NapiBasicTest, NapiCreateStringUtf16Test001, testing::ext::TestSize.Level1) 8407{ 8408 ASSERT_NE(engine_, nullptr); 8409 napi_env env = reinterpret_cast<napi_env>(engine_); 8410 8411 auto res = napi_create_string_utf16(env, nullptr, NAPI_AUTO_LENGTH, nullptr); 8412 ASSERT_EQ(res, napi_invalid_arg); 8413} 8414 8415/** 8416 * @tc.name: NapiCreateStringUtf16Test 8417 * @tc.desc: Test interface of napi_create_string_utf16 8418 * @tc.type: FUNC 8419 */ 8420HWTEST_F(NapiBasicTest, NapiCreateStringUtf16Test002, testing::ext::TestSize.Level1) 8421{ 8422 ASSERT_NE(engine_, nullptr); 8423 napi_env env = reinterpret_cast<napi_env>(engine_); 8424 8425 auto res = napi_create_string_utf16(env, TEST_CHAR16_STRING, NAPI_AUTO_LENGTH, nullptr); 8426 ASSERT_EQ(res, napi_invalid_arg); 8427} 8428 8429/** 8430 * @tc.name: NapiCreateStringUtf16Test 8431 * @tc.desc: Test interface of napi_create_string_utf16 8432 * @tc.type: FUNC 8433 */ 8434HWTEST_F(NapiBasicTest, NapiCreateStringUtf16Test003, testing::ext::TestSize.Level1) 8435{ 8436 ASSERT_NE(engine_, nullptr); 8437 napi_env env = reinterpret_cast<napi_env>(engine_); 8438 8439 napi_value stringValue = nullptr; 8440 auto res = napi_create_string_utf16(env, TEST_CHAR16_STRING, (NAPI_AUTO_LENGTH - 1), &stringValue); 8441 ASSERT_EQ(res, napi_invalid_arg); 8442} 8443 8444/** 8445 * @tc.name: NapiGetArrayLengthTest 8446 * @tc.desc: Test interface of napi_get_array_length 8447 * @tc.type: FUNC 8448 */ 8449HWTEST_F(NapiBasicTest, NapiGetArrayLengthTest001, testing::ext::TestSize.Level1) 8450{ 8451 ASSERT_NE(engine_, nullptr); 8452 napi_env env = reinterpret_cast<napi_env>(engine_); 8453 8454 auto res = napi_get_array_length(env, nullptr, nullptr); 8455 ASSERT_EQ(res, napi_invalid_arg); 8456} 8457 8458/** 8459 * @tc.name: NapiGetArrayLengthTest 8460 * @tc.desc: Test interface of napi_get_array_length 8461 * @tc.type: FUNC 8462 */ 8463HWTEST_F(NapiBasicTest, NapiGetArrayLengthTest002, testing::ext::TestSize.Level1) 8464{ 8465 ASSERT_NE(engine_, nullptr); 8466 napi_env env = reinterpret_cast<napi_env>(engine_); 8467 8468 napi_value boolean = nullptr; 8469 uint32_t arrayLength = 0; 8470 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8471 auto res = napi_get_array_length(env, boolean, &arrayLength); 8472 ASSERT_EQ(res, napi_array_expected); 8473} 8474 8475/** 8476 * @tc.name: NapiGetArraybufferInfoTest 8477 * @tc.desc: Test interface of napi_get_arraybuffer_info 8478 * @tc.type: FUNC 8479 */ 8480HWTEST_F(NapiBasicTest, NapiGetArraybufferInfoTest001, testing::ext::TestSize.Level1) 8481{ 8482 ASSERT_NE(engine_, nullptr); 8483 napi_env env = reinterpret_cast<napi_env>(engine_); 8484 8485 auto res = napi_get_arraybuffer_info(env, nullptr, nullptr, nullptr); 8486 ASSERT_EQ(res, napi_invalid_arg); 8487} 8488 8489/** 8490 * @tc.name: NapiGetArraybufferInfoTest 8491 * @tc.desc: Test interface of napi_get_arraybuffer_info 8492 * @tc.type: FUNC 8493 */ 8494HWTEST_F(NapiBasicTest, NapiGetArraybufferInfoTest002, testing::ext::TestSize.Level1) 8495{ 8496 ASSERT_NE(engine_, nullptr); 8497 napi_env env = reinterpret_cast<napi_env>(engine_); 8498 8499 napi_value boolean = nullptr; 8500 size_t arrayBufferLength = 0; 8501 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8502 auto res = napi_get_arraybuffer_info(env, boolean, nullptr, &arrayBufferLength); 8503 ASSERT_EQ(res, napi_arraybuffer_expected); 8504} 8505 8506/** 8507 * @tc.name: NapiGetPrototypeTest 8508 * @tc.desc: Test interface of napi_get_prototype 8509 * @tc.type: FUNC 8510 */ 8511HWTEST_F(NapiBasicTest, NapiGetPrototypeTest001, testing::ext::TestSize.Level1) 8512{ 8513 ASSERT_NE(engine_, nullptr); 8514 napi_env env = reinterpret_cast<napi_env>(engine_); 8515 8516 auto res = napi_get_prototype(env, nullptr, nullptr); 8517 ASSERT_EQ(res, napi_invalid_arg); 8518} 8519 8520/** 8521 * @tc.name: NapiGetPrototypeTest 8522 * @tc.desc: Test interface of napi_get_prototype 8523 * @tc.type: FUNC 8524 */ 8525HWTEST_F(NapiBasicTest, NapiGetPrototypeTest002, testing::ext::TestSize.Level1) 8526{ 8527 ASSERT_NE(engine_, nullptr); 8528 napi_env env = reinterpret_cast<napi_env>(engine_); 8529 8530 napi_value result = nullptr; 8531 napi_value boolean = nullptr; 8532 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8533 auto res = napi_get_prototype(env, boolean, &result); 8534 ASSERT_EQ(res, napi_object_expected); 8535} 8536 8537/** 8538 * @tc.name: NapiGetTypedarrayInfoTest 8539 * @tc.desc: Test interface of napi_get_typedarray_info 8540 * @tc.type: FUNC 8541 */ 8542HWTEST_F(NapiBasicTest, NapiGetTypedarrayInfoTest001, testing::ext::TestSize.Level1) 8543{ 8544 ASSERT_NE(engine_, nullptr); 8545 napi_env env = reinterpret_cast<napi_env>(engine_); 8546 8547 auto res = napi_get_typedarray_info(env, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr); 8548 ASSERT_EQ(res, napi_invalid_arg); 8549} 8550 8551/** 8552 * @tc.name: NapiGetTypedarrayInfoTest 8553 * @tc.desc: Test interface of napi_get_typedarray_info 8554 * @tc.type: FUNC 8555 */ 8556HWTEST_F(NapiBasicTest, NapiGetTypedarrayInfoTest002, testing::ext::TestSize.Level1) 8557{ 8558 ASSERT_NE(engine_, nullptr); 8559 napi_env env = reinterpret_cast<napi_env>(engine_); 8560 8561 napi_value boolean = nullptr; 8562 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8563 auto res = napi_get_typedarray_info(env, boolean, nullptr, nullptr, nullptr, nullptr, nullptr); 8564 ASSERT_EQ(res, napi_invalid_arg); 8565} 8566 8567/** 8568 * @tc.name: NapiGetDataviewInfoTest 8569 * @tc.desc: Test interface of napi_get_dataview_info 8570 * @tc.type: FUNC 8571 */ 8572HWTEST_F(NapiBasicTest, NapiGetDataviewInfoTest001, testing::ext::TestSize.Level1) 8573{ 8574 ASSERT_NE(engine_, nullptr); 8575 napi_env env = reinterpret_cast<napi_env>(engine_); 8576 8577 auto res = napi_get_dataview_info(env, nullptr, nullptr, nullptr, nullptr, nullptr); 8578 ASSERT_EQ(res, napi_invalid_arg); 8579} 8580 8581/** 8582 * @tc.name: NapiGetDataviewInfoTest 8583 * @tc.desc: Test interface of napi_get_dataview_info 8584 * @tc.type: FUNC 8585 */ 8586HWTEST_F(NapiBasicTest, NapiGetDataviewInfoTest002, testing::ext::TestSize.Level1) 8587{ 8588 ASSERT_NE(engine_, nullptr); 8589 napi_env env = reinterpret_cast<napi_env>(engine_); 8590 8591 napi_value boolean = nullptr; 8592 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8593 auto res = napi_get_dataview_info(env, boolean, nullptr, nullptr, nullptr, nullptr); 8594 ASSERT_EQ(res, napi_invalid_arg); 8595} 8596 8597/** 8598 * @tc.name: NapiGetValueBoolTest 8599 * @tc.desc: Test interface of napi_get_value_bool 8600 * @tc.type: FUNC 8601 */ 8602HWTEST_F(NapiBasicTest, NapiGetValueBoolTest001, testing::ext::TestSize.Level1) 8603{ 8604 ASSERT_NE(engine_, nullptr); 8605 napi_env env = reinterpret_cast<napi_env>(engine_); 8606 8607 auto res = napi_get_value_bool(env, nullptr, nullptr); 8608 ASSERT_EQ(res, napi_invalid_arg); 8609} 8610 8611/** 8612 * @tc.name: NapiGetValueBoolTest 8613 * @tc.desc: Test interface of napi_get_value_bool 8614 * @tc.type: FUNC 8615 */ 8616HWTEST_F(NapiBasicTest, NapiGetValueBoolTest002, testing::ext::TestSize.Level1) 8617{ 8618 ASSERT_NE(engine_, nullptr); 8619 napi_env env = reinterpret_cast<napi_env>(engine_); 8620 8621 napi_value stringUtf8 = nullptr; 8622 const char testStr[] = "errorType"; 8623 ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, NAPI_AUTO_LENGTH, &stringUtf8)); 8624 bool boolean; 8625 auto res = napi_get_value_bool(env, stringUtf8, &boolean); 8626 ASSERT_EQ(res, napi_boolean_expected); 8627} 8628 8629/** 8630 * @tc.name: NapiGetValueDoubleTest 8631 * @tc.desc: Test interface of napi_get_value_double 8632 * @tc.type: FUNC 8633 */ 8634HWTEST_F(NapiBasicTest, NapiGetValueDoubleTest001, testing::ext::TestSize.Level1) 8635{ 8636 ASSERT_NE(engine_, nullptr); 8637 napi_env env = reinterpret_cast<napi_env>(engine_); 8638 8639 auto res = napi_get_value_double(env, nullptr, nullptr); 8640 ASSERT_EQ(res, napi_invalid_arg); 8641} 8642 8643/** 8644 * @tc.name: NapiGetValueDoubleTest 8645 * @tc.desc: Test interface of napi_get_value_double 8646 * @tc.type: FUNC 8647 */ 8648HWTEST_F(NapiBasicTest, NapiGetValueDoubleTest002, testing::ext::TestSize.Level1) 8649{ 8650 ASSERT_NE(engine_, nullptr); 8651 napi_env env = reinterpret_cast<napi_env>(engine_); 8652 8653 napi_value boolean = nullptr; 8654 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8655 double number; 8656 auto res = napi_get_value_double(env, boolean, &number); 8657 ASSERT_EQ(res, napi_number_expected); 8658} 8659 8660/** 8661 * @tc.name: NapiGetValueExternalTest 8662 * @tc.desc: Test interface of napi_get_value_external 8663 * @tc.type: FUNC 8664 */ 8665HWTEST_F(NapiBasicTest, NapiGetValueExternalTest001, testing::ext::TestSize.Level1) 8666{ 8667 ASSERT_NE(engine_, nullptr); 8668 napi_env env = reinterpret_cast<napi_env>(engine_); 8669 8670 auto res = napi_get_value_external(env, nullptr, nullptr); 8671 ASSERT_EQ(res, napi_invalid_arg); 8672} 8673 8674/** 8675 * @tc.name: NapiGetValueExternalTest 8676 * @tc.desc: Test interface of napi_get_value_external 8677 * @tc.type: FUNC 8678 */ 8679HWTEST_F(NapiBasicTest, NapiGetValueExternalTest002, testing::ext::TestSize.Level1) 8680{ 8681 ASSERT_NE(engine_, nullptr); 8682 napi_env env = reinterpret_cast<napi_env>(engine_); 8683 8684 napi_value boolean = nullptr; 8685 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8686 void* external; 8687 auto res = napi_get_value_external(env, boolean, &external); 8688 ASSERT_EQ(res, napi_object_expected); 8689} 8690 8691/** 8692 * @tc.name: NapiGetValueInt32Test 8693 * @tc.desc: Test interface of napi_get_value_int32 8694 * @tc.type: FUNC 8695 */ 8696HWTEST_F(NapiBasicTest, NapiGetValueInt32Test001, testing::ext::TestSize.Level1) 8697{ 8698 ASSERT_NE(engine_, nullptr); 8699 napi_env env = reinterpret_cast<napi_env>(engine_); 8700 8701 auto res = napi_get_value_int32(env, nullptr, nullptr); 8702 ASSERT_EQ(res, napi_invalid_arg); 8703} 8704 8705/** 8706 * @tc.name: NapiGetValueInt32Test 8707 * @tc.desc: Test interface of napi_get_value_int32 8708 * @tc.type: FUNC 8709 */ 8710HWTEST_F(NapiBasicTest, NapiGetValueInt32Test002, testing::ext::TestSize.Level1) 8711{ 8712 ASSERT_NE(engine_, nullptr); 8713 napi_env env = reinterpret_cast<napi_env>(engine_); 8714 8715 napi_value boolean = nullptr; 8716 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8717 int32_t number; 8718 auto res = napi_get_value_int32(env, boolean, &number); 8719 ASSERT_EQ(res, napi_number_expected); 8720} 8721 8722/** 8723 * @tc.name: NapiGetValueInt64Test 8724 * @tc.desc: Test interface of napi_get_value_int64 8725 * @tc.type: FUNC 8726 */ 8727HWTEST_F(NapiBasicTest, NapiGetValueInt64Test001, testing::ext::TestSize.Level1) 8728{ 8729 ASSERT_NE(engine_, nullptr); 8730 napi_env env = reinterpret_cast<napi_env>(engine_); 8731 8732 auto res = napi_get_value_int64(env, nullptr, nullptr); 8733 ASSERT_EQ(res, napi_invalid_arg); 8734} 8735 8736/** 8737 * @tc.name: NapiGetValueInt64Test 8738 * @tc.desc: Test interface of napi_get_value_int64 8739 * @tc.type: FUNC 8740 */ 8741HWTEST_F(NapiBasicTest, NapiGetValueInt64Test002, testing::ext::TestSize.Level1) 8742{ 8743 ASSERT_NE(engine_, nullptr); 8744 napi_env env = reinterpret_cast<napi_env>(engine_); 8745 8746 napi_value boolean = nullptr; 8747 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8748 int64_t number; 8749 auto res = napi_get_value_int64(env, boolean, &number); 8750 ASSERT_EQ(res, napi_number_expected); 8751} 8752 8753/** 8754 * @tc.name: NapiGetValueStringLatin1Test 8755 * @tc.desc: Test interface of napi_get_value_string_latin1 8756 * @tc.type: FUNC 8757 */ 8758HWTEST_F(NapiBasicTest, NapiGetValueStringLatin1Test001, testing::ext::TestSize.Level1) 8759{ 8760 ASSERT_NE(engine_, nullptr); 8761 napi_env env = reinterpret_cast<napi_env>(engine_); 8762 8763 auto res = napi_get_value_string_latin1(env, nullptr, nullptr, 0, nullptr); 8764 ASSERT_EQ(res, napi_invalid_arg); 8765} 8766 8767/** 8768 * @tc.name: NapiGetValueStringLatin1Test 8769 * @tc.desc: Test interface of napi_get_value_string_latin1 8770 * @tc.type: FUNC 8771 */ 8772HWTEST_F(NapiBasicTest, NapiGetValueStringLatin1Test002, testing::ext::TestSize.Level1) 8773{ 8774 ASSERT_NE(engine_, nullptr); 8775 napi_env env = reinterpret_cast<napi_env>(engine_); 8776 8777 napi_value boolean = nullptr; 8778 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8779 auto res = napi_get_value_string_latin1(env, boolean, nullptr, 0, nullptr); 8780 ASSERT_EQ(res, napi_string_expected); 8781} 8782 8783/** 8784 * @tc.name: NapiGetValueStringLatin1Test 8785 * @tc.desc: Test interface of napi_get_value_string_latin1 8786 * @tc.type: FUNC 8787 */ 8788HWTEST_F(NapiBasicTest, NapiGetValueStringLatin1Test003, testing::ext::TestSize.Level1) 8789{ 8790 ASSERT_NE(engine_, nullptr); 8791 napi_env env = reinterpret_cast<napi_env>(engine_); 8792 8793 napi_value stringValue = nullptr; 8794 ASSERT_CHECK_CALL(napi_create_string_latin1(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &stringValue)); 8795 auto res = napi_get_value_string_latin1(env, stringValue, nullptr, 0, nullptr); 8796 ASSERT_EQ(res, napi_invalid_arg); 8797 8798 size_t strSize = 0; 8799 res = napi_get_value_string_latin1(env, stringValue, nullptr, 0, &strSize); 8800 ASSERT_EQ(res, napi_ok); 8801} 8802 8803/** 8804 * @tc.name: NapiGetValueStringUtf8Test 8805 * @tc.desc: Test interface of napi_get_value_string_utf8 8806 * @tc.type: FUNC 8807 */ 8808HWTEST_F(NapiBasicTest, NapiGetValueStringUtf8Test001, testing::ext::TestSize.Level1) 8809{ 8810 ASSERT_NE(engine_, nullptr); 8811 napi_env env = reinterpret_cast<napi_env>(engine_); 8812 8813 auto res = napi_get_value_string_utf8(env, nullptr, nullptr, 0, nullptr); 8814 ASSERT_EQ(res, napi_invalid_arg); 8815} 8816 8817/** 8818 * @tc.name: NapiGetValueStringUtf8Test 8819 * @tc.desc: Test interface of napi_get_value_string_utf8 8820 * @tc.type: FUNC 8821 */ 8822HWTEST_F(NapiBasicTest, NapiGetValueStringUtf8Test002, testing::ext::TestSize.Level1) 8823{ 8824 ASSERT_NE(engine_, nullptr); 8825 napi_env env = reinterpret_cast<napi_env>(engine_); 8826 8827 napi_value boolean = nullptr; 8828 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8829 auto res = napi_get_value_string_utf8(env, boolean, nullptr, 0, nullptr); 8830 ASSERT_EQ(res, napi_string_expected); 8831} 8832 8833/** 8834 * @tc.name: NapiGetValueStringUtf8Test 8835 * @tc.desc: Test interface of napi_get_value_string_utf8 8836 * @tc.type: FUNC 8837 */ 8838HWTEST_F(NapiBasicTest, NapiGetValueStringUtf8Test003, testing::ext::TestSize.Level1) 8839{ 8840 ASSERT_NE(engine_, nullptr); 8841 napi_env env = reinterpret_cast<napi_env>(engine_); 8842 8843 napi_value stringValue = nullptr; 8844 ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &stringValue)); 8845 auto res = napi_get_value_string_utf8(env, stringValue, nullptr, 0, nullptr); 8846 ASSERT_EQ(res, napi_invalid_arg); 8847 8848 size_t strSize = 0; 8849 res = napi_get_value_string_utf8(env, stringValue, nullptr, 0, &strSize); 8850 ASSERT_EQ(res, napi_ok); 8851} 8852 8853/** 8854 * @tc.name: NapiGetValueStringUtf16Test 8855 * @tc.desc: Test interface of napi_get_value_string_utf16 8856 * @tc.type: FUNC 8857 */ 8858HWTEST_F(NapiBasicTest, NapiGetValueStringUtf16Test001, testing::ext::TestSize.Level1) 8859{ 8860 ASSERT_NE(engine_, nullptr); 8861 napi_env env = reinterpret_cast<napi_env>(engine_); 8862 8863 auto res = napi_get_value_string_utf16(env, nullptr, nullptr, 0, nullptr); 8864 ASSERT_EQ(res, napi_invalid_arg); 8865} 8866 8867/** 8868 * @tc.name: NapiGetValueStringUtf16Test 8869 * @tc.desc: Test interface of napi_get_value_string_utf16 8870 * @tc.type: FUNC 8871 */ 8872HWTEST_F(NapiBasicTest, NapiGetValueStringUtf16Test002, testing::ext::TestSize.Level1) 8873{ 8874 ASSERT_NE(engine_, nullptr); 8875 napi_env env = reinterpret_cast<napi_env>(engine_); 8876 8877 napi_value boolean = nullptr; 8878 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8879 auto res = napi_get_value_string_utf16(env, boolean, nullptr, 0, nullptr); 8880 ASSERT_EQ(res, napi_string_expected); 8881} 8882 8883/** 8884 * @tc.name: NapiGetValueStringUtf16Test 8885 * @tc.desc: Test interface of napi_get_value_string_utf16 8886 * @tc.type: FUNC 8887 */ 8888HWTEST_F(NapiBasicTest, NapiGetValueStringUtf16Test003, testing::ext::TestSize.Level1) 8889{ 8890 ASSERT_NE(engine_, nullptr); 8891 napi_env env = reinterpret_cast<napi_env>(engine_); 8892 8893 napi_value stringValue = nullptr; 8894 ASSERT_CHECK_CALL(napi_create_string_utf16(env, TEST_CHAR16_STRING, NAPI_AUTO_LENGTH, &stringValue)); 8895 auto res = napi_get_value_string_utf16(env, stringValue, nullptr, 0, nullptr); 8896 ASSERT_EQ(res, napi_invalid_arg); 8897 8898 size_t strSize = 0; 8899 res = napi_get_value_string_utf16(env, stringValue, nullptr, 0, &strSize); 8900 ASSERT_EQ(res, napi_ok); 8901} 8902 8903/** 8904 * @tc.name: NapiGetValueUint32Test 8905 * @tc.desc: Test interface of napi_get_value_uint32 8906 * @tc.type: FUNC 8907 */ 8908HWTEST_F(NapiBasicTest, NapiGetValueUint32Test001, testing::ext::TestSize.Level1) 8909{ 8910 ASSERT_NE(engine_, nullptr); 8911 napi_env env = reinterpret_cast<napi_env>(engine_); 8912 8913 auto res = napi_get_value_uint32(env, nullptr, nullptr); 8914 ASSERT_EQ(res, napi_invalid_arg); 8915} 8916 8917/** 8918 * @tc.name: NapiGetValueUint32Test 8919 * @tc.desc: Test interface of napi_get_value_uint32 8920 * @tc.type: FUNC 8921 */ 8922HWTEST_F(NapiBasicTest, NapiGetValueUint32Test002, testing::ext::TestSize.Level1) 8923{ 8924 ASSERT_NE(engine_, nullptr); 8925 napi_env env = reinterpret_cast<napi_env>(engine_); 8926 8927 napi_value boolean = nullptr; 8928 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 8929 uint32_t number; 8930 auto res = napi_get_value_uint32(env, boolean, &number); 8931 ASSERT_EQ(res, napi_number_expected); 8932} 8933 8934/** 8935 * @tc.name: NapiGetBooleanTest 8936 * @tc.desc: Test interface of napi_get_boolean 8937 * @tc.type: FUNC 8938 */ 8939HWTEST_F(NapiBasicTest, NapiGetBooleanTest001, testing::ext::TestSize.Level1) 8940{ 8941 ASSERT_NE(engine_, nullptr); 8942 napi_env env = reinterpret_cast<napi_env>(engine_); 8943 8944 auto res = napi_get_boolean(env, true, nullptr); 8945 ASSERT_EQ(res, napi_invalid_arg); 8946 8947 napi_value result = nullptr; 8948 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &result)); 8949 ASSERT_CHECK_CALL(napi_get_boolean(env, false, &result)); 8950} 8951 8952/** 8953 * @tc.name: NapiGetGlobalTest 8954 * @tc.desc: Test interface of napi_get_global 8955 * @tc.type: FUNC 8956 */ 8957HWTEST_F(NapiBasicTest, NapiGetGlobalTest001, testing::ext::TestSize.Level1) 8958{ 8959 ASSERT_NE(engine_, nullptr); 8960 napi_env env = reinterpret_cast<napi_env>(engine_); 8961 8962 auto res = napi_get_global(env, nullptr); 8963 ASSERT_EQ(res, napi_invalid_arg); 8964} 8965 8966/** 8967 * @tc.name: NapiGetNullTest 8968 * @tc.desc: Test interface of napi_get_null 8969 * @tc.type: FUNC 8970 */ 8971HWTEST_F(NapiBasicTest, NapiGetNullTest001, testing::ext::TestSize.Level1) 8972{ 8973 ASSERT_NE(engine_, nullptr); 8974 napi_env env = reinterpret_cast<napi_env>(engine_); 8975 8976 auto res = napi_get_null(env, nullptr); 8977 ASSERT_EQ(res, napi_invalid_arg); 8978} 8979 8980/** 8981 * @tc.name: NapiGetUndefinedTest 8982 * @tc.desc: Test interface of napi_get_undefined 8983 * @tc.type: FUNC 8984 */ 8985HWTEST_F(NapiBasicTest, NapiGetUndefinedTest001, testing::ext::TestSize.Level1) 8986{ 8987 ASSERT_NE(engine_, nullptr); 8988 napi_env env = reinterpret_cast<napi_env>(engine_); 8989 8990 auto res = napi_get_undefined(env, nullptr); 8991 ASSERT_EQ(res, napi_invalid_arg); 8992} 8993 8994/** 8995 * @tc.name: NapiObjectFreezeTest 8996 * @tc.desc: Test interface of napi_object_freeze 8997 * @tc.type: FUNC 8998 */ 8999HWTEST_F(NapiBasicTest, NapiObjectFreezeTest001, testing::ext::TestSize.Level1) 9000{ 9001 ASSERT_NE(engine_, nullptr); 9002 napi_env env = reinterpret_cast<napi_env>(engine_); 9003 9004 auto res = napi_object_freeze(env, nullptr); 9005 ASSERT_EQ(res, napi_invalid_arg); 9006} 9007 9008/** 9009 * @tc.name: NapiObjectFreezeTest 9010 * @tc.desc: Test interface of napi_object_freeze 9011 * @tc.type: FUNC 9012 */ 9013HWTEST_F(NapiBasicTest, NapiObjectFreezeTest002, testing::ext::TestSize.Level1) 9014{ 9015 ASSERT_NE(engine_, nullptr); 9016 napi_env env = reinterpret_cast<napi_env>(engine_); 9017 9018 napi_value boolean = nullptr; 9019 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 9020 auto res = napi_object_freeze(env, boolean); 9021 ASSERT_EQ(res, napi_object_expected); 9022} 9023 9024/** 9025 * @tc.name: NapiObjectSealTest 9026 * @tc.desc: Test interface of napi_object_seal 9027 * @tc.type: FUNC 9028 */ 9029HWTEST_F(NapiBasicTest, NapiObjectSealTest001, testing::ext::TestSize.Level1) 9030{ 9031 ASSERT_NE(engine_, nullptr); 9032 napi_env env = reinterpret_cast<napi_env>(engine_); 9033 9034 auto res = napi_object_seal(env, nullptr); 9035 ASSERT_EQ(res, napi_invalid_arg); 9036} 9037 9038/** 9039 * @tc.name: NapiObjectSealTest 9040 * @tc.desc: Test interface of napi_object_seal 9041 * @tc.type: FUNC 9042 */ 9043HWTEST_F(NapiBasicTest, NapiObjectSealTest002, testing::ext::TestSize.Level1) 9044{ 9045 ASSERT_NE(engine_, nullptr); 9046 napi_env env = reinterpret_cast<napi_env>(engine_); 9047 9048 napi_value boolean = nullptr; 9049 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 9050 auto res = napi_object_seal(env, boolean); 9051 ASSERT_EQ(res, napi_object_expected); 9052} 9053 9054/** 9055 * @tc.name: NapiGetAllPropertyNamesTest 9056 * @tc.desc: Test interface of napi_get_all_property_names 9057 * @tc.type: FUNC 9058 */ 9059HWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest001, testing::ext::TestSize.Level1) 9060{ 9061 ASSERT_NE(engine_, nullptr); 9062 napi_env env = reinterpret_cast<napi_env>(engine_); 9063 9064 auto res = napi_get_all_property_names(env, nullptr, napi_key_include_prototypes, napi_key_all_properties, 9065 napi_key_keep_numbers, nullptr); 9066 ASSERT_EQ(res, napi_invalid_arg); 9067} 9068 9069/** 9070 * @tc.name: NapiGetAllPropertyNamesTest 9071 * @tc.desc: Test interface of napi_get_all_property_names 9072 * @tc.type: FUNC 9073 */ 9074HWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest002, testing::ext::TestSize.Level1) 9075{ 9076 ASSERT_NE(engine_, nullptr); 9077 napi_env env = reinterpret_cast<napi_env>(engine_); 9078 9079 napi_value object = nullptr; 9080 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 9081 auto res = napi_get_all_property_names(env, object, napi_key_include_prototypes, napi_key_all_properties, 9082 napi_key_keep_numbers, nullptr); 9083 ASSERT_EQ(res, napi_invalid_arg); 9084} 9085 9086/** 9087 * @tc.name: NapiGetAllPropertyNamesTest 9088 * @tc.desc: Test interface of napi_get_all_property_names 9089 * @tc.type: FUNC 9090 */ 9091HWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest003, testing::ext::TestSize.Level1) 9092{ 9093 ASSERT_NE(engine_, nullptr); 9094 napi_env env = reinterpret_cast<napi_env>(engine_); 9095 9096 napi_value result = nullptr; 9097 napi_value boolean = nullptr; 9098 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 9099 auto res = napi_get_all_property_names(env, boolean, napi_key_include_prototypes, napi_key_all_properties, 9100 napi_key_keep_numbers, &result); 9101 ASSERT_EQ(res, napi_object_expected); 9102} 9103 9104/** 9105 * @tc.name: NapiGetAllPropertyNamesTest 9106 * @tc.desc: Test interface of napi_get_all_property_names 9107 * @tc.type: FUNC 9108 */ 9109HWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest004, testing::ext::TestSize.Level1) 9110{ 9111 ASSERT_NE(engine_, nullptr); 9112 napi_env env = reinterpret_cast<napi_env>(engine_); 9113 9114 napi_value result = nullptr; 9115 napi_value object = nullptr; 9116 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 9117 auto res = napi_get_all_property_names(env, object, (napi_key_collection_mode)(napi_key_include_prototypes - 1), 9118 napi_key_all_properties, napi_key_keep_numbers, &result); 9119 ASSERT_EQ(res, napi_invalid_arg); 9120} 9121 9122/** 9123 * @tc.name: NapiGetAllPropertyNamesTest 9124 * @tc.desc: Test interface of napi_get_all_property_names 9125 * @tc.type: FUNC 9126 */ 9127HWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest005, testing::ext::TestSize.Level1) 9128{ 9129 ASSERT_NE(engine_, nullptr); 9130 napi_env env = reinterpret_cast<napi_env>(engine_); 9131 9132 napi_value result = nullptr; 9133 napi_value object = nullptr; 9134 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 9135 auto res = napi_get_all_property_names(env, object, napi_key_include_prototypes, napi_key_all_properties, 9136 (napi_key_conversion)(napi_key_keep_numbers - 1), &result); 9137 ASSERT_EQ(res, napi_invalid_arg); 9138} 9139 9140/** 9141 * @tc.name: NapiDetachArraybufferTest 9142 * @tc.desc: Test interface of napi_detach_arraybuffer 9143 * @tc.type: FUNC 9144 */ 9145HWTEST_F(NapiBasicTest, NapiDetachArraybufferTest001, testing::ext::TestSize.Level1) 9146{ 9147 ASSERT_NE(engine_, nullptr); 9148 napi_env env = reinterpret_cast<napi_env>(engine_); 9149 9150 auto res = napi_detach_arraybuffer(env, nullptr); 9151 ASSERT_EQ(res, napi_invalid_arg); 9152} 9153 9154/** 9155 * @tc.name: NapiDetachArraybufferTest 9156 * @tc.desc: Test interface of napi_detach_arraybuffer 9157 * @tc.type: FUNC 9158 */ 9159HWTEST_F(NapiBasicTest, NapiDetachArraybufferTest002, testing::ext::TestSize.Level1) 9160{ 9161 ASSERT_NE(engine_, nullptr); 9162 napi_env env = reinterpret_cast<napi_env>(engine_); 9163 9164 napi_value boolean = nullptr; 9165 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 9166 auto res = napi_detach_arraybuffer(env, boolean); 9167 ASSERT_EQ(res, napi_object_expected); 9168} 9169 9170/** 9171 * @tc.name: NapiDetachArraybufferTest 9172 * @tc.desc: Test interface of napi_detach_arraybuffer 9173 * @tc.type: FUNC 9174 */ 9175HWTEST_F(NapiBasicTest, NapiDetachArraybufferTest003, testing::ext::TestSize.Level1) 9176{ 9177 ASSERT_NE(engine_, nullptr); 9178 napi_env env = reinterpret_cast<napi_env>(engine_); 9179 9180 napi_value object = nullptr; 9181 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 9182 auto res = napi_detach_arraybuffer(env, object); 9183 ASSERT_EQ(res, napi_invalid_arg); 9184} 9185 9186/** 9187 * @tc.name: NapiIsDetachedArraybufferTest 9188 * @tc.desc: Test interface of napi_is_detached_arraybuffer 9189 * @tc.type: FUNC 9190 */ 9191HWTEST_F(NapiBasicTest, NapiIsDetachedArraybufferTest001, testing::ext::TestSize.Level1) 9192{ 9193 ASSERT_NE(engine_, nullptr); 9194 napi_env env = reinterpret_cast<napi_env>(engine_); 9195 9196 auto res = napi_is_detached_arraybuffer(env, nullptr, nullptr); 9197 ASSERT_EQ(res, napi_invalid_arg); 9198} 9199 9200/** 9201 * @tc.name: NapiIsDetachedArraybufferTest 9202 * @tc.desc: Test interface of napi_is_detached_arraybuffer 9203 * @tc.type: FUNC 9204 */ 9205HWTEST_F(NapiBasicTest, NapiIsDetachedArraybufferTest002, testing::ext::TestSize.Level1) 9206{ 9207 ASSERT_NE(engine_, nullptr); 9208 napi_env env = reinterpret_cast<napi_env>(engine_); 9209 9210 static constexpr size_t arrayBufferSize = 1024; 9211 napi_value arrayBuffer = nullptr; 9212 void* arrayBufferPtr = nullptr; 9213 ASSERT_CHECK_CALL(napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer)); 9214 9215 auto res = napi_is_detached_arraybuffer(env, arrayBuffer, nullptr); 9216 ASSERT_EQ(res, napi_invalid_arg); 9217} 9218 9219/** 9220 * @tc.name: NapiSetInstanceDataTest 9221 * @tc.desc: Test interface of napi_set_instance_data 9222 * @tc.type: FUNC 9223 */ 9224HWTEST_F(NapiBasicTest, NapiSetInstanceDataTest001, testing::ext::TestSize.Level1) 9225{ 9226 auto res = napi_set_instance_data(nullptr, nullptr, nullptr, nullptr); 9227 ASSERT_EQ(res, napi_invalid_arg); 9228} 9229 9230/** 9231 * @tc.name: NapiGetInstanceDataTest 9232 * @tc.desc: Test interface of napi_get_instance_data 9233 * @tc.type: FUNC 9234 */ 9235HWTEST_F(NapiBasicTest, NapiGetInstanceDataTest001, testing::ext::TestSize.Level1) 9236{ 9237 ASSERT_NE(engine_, nullptr); 9238 napi_env env = reinterpret_cast<napi_env>(engine_); 9239 9240 auto res = napi_get_instance_data(env, nullptr); 9241 ASSERT_EQ(res, napi_invalid_arg); 9242} 9243 9244/** 9245 * @tc.name: NapiAddEnvCleanupHookTest 9246 * @tc.desc: Test interface of napi_add_env_cleanup_hook 9247 * @tc.type: FUNC 9248 */ 9249HWTEST_F(NapiBasicTest, NapiAddEnvCleanupHookTest001, testing::ext::TestSize.Level1) 9250{ 9251 auto res = napi_add_env_cleanup_hook(nullptr, nullptr, nullptr); 9252 ASSERT_EQ(res, napi_invalid_arg); 9253} 9254 9255/** 9256 * @tc.name: NapiAddEnvCleanupHookTest 9257 * @tc.desc: Test interface of napi_add_env_cleanup_hook 9258 * @tc.type: FUNC 9259 */ 9260HWTEST_F(NapiBasicTest, NapiAddEnvCleanupHookTest002, testing::ext::TestSize.Level1) 9261{ 9262 ASSERT_NE(engine_, nullptr); 9263 napi_env env = reinterpret_cast<napi_env>(engine_); 9264 9265 auto res = napi_add_env_cleanup_hook(env, nullptr, nullptr); 9266 ASSERT_EQ(res, napi_invalid_arg); 9267} 9268 9269/** 9270 * @tc.name: NapiRemoveEnvCleanupHookTest 9271 * @tc.desc: Test interface of napi_remove_env_cleanup_hook 9272 * @tc.type: FUNC 9273 */ 9274HWTEST_F(NapiBasicTest, NapiRemoveEnvCleanupHookTest001, testing::ext::TestSize.Level1) 9275{ 9276 auto res = napi_remove_env_cleanup_hook(nullptr, nullptr, nullptr); 9277 ASSERT_EQ(res, napi_invalid_arg); 9278} 9279 9280/** 9281 * @tc.name: NapiRemoveEnvCleanupHookTest 9282 * @tc.desc: Test interface of napi_remove_env_cleanup_hook 9283 * @tc.type: FUNC 9284 */ 9285HWTEST_F(NapiBasicTest, NapiRemoveEnvCleanupHookTest002, testing::ext::TestSize.Level1) 9286{ 9287 ASSERT_NE(engine_, nullptr); 9288 napi_env env = reinterpret_cast<napi_env>(engine_); 9289 9290 auto res = napi_remove_env_cleanup_hook(env, nullptr, nullptr); 9291 ASSERT_EQ(res, napi_invalid_arg); 9292} 9293 9294/** 9295 * @tc.name: NapiAddAsyncCleanupHookTest 9296 * @tc.desc: Test interface of napi_add_async_cleanup_hook 9297 * @tc.type: FUNC 9298 */ 9299HWTEST_F(NapiBasicTest, NapiAddAsyncCleanupHookTest001, testing::ext::TestSize.Level1) 9300{ 9301 auto res = napi_add_async_cleanup_hook(nullptr, nullptr, nullptr, nullptr); 9302 ASSERT_EQ(res, napi_invalid_arg); 9303} 9304 9305/** 9306 * @tc.name: NapiAddAsyncCleanupHookTest 9307 * @tc.desc: Test interface of napi_add_async_cleanup_hook 9308 * @tc.type: FUNC 9309 */ 9310HWTEST_F(NapiBasicTest, NapiAddAsyncCleanupHookTest002, testing::ext::TestSize.Level1) 9311{ 9312 ASSERT_NE(engine_, nullptr); 9313 napi_env env = reinterpret_cast<napi_env>(engine_); 9314 9315 auto res = napi_add_async_cleanup_hook(env, nullptr, nullptr, nullptr); 9316 ASSERT_EQ(res, napi_invalid_arg); 9317} 9318 9319/** 9320 * @tc.name: NapiRemoveAsyncCleanupHookTest 9321 * @tc.desc: Test interface of napi_remove_async_cleanup_hook 9322 * @tc.type: FUNC 9323 */ 9324HWTEST_F(NapiBasicTest, NapiRemoveAsyncCleanupHookTest001, testing::ext::TestSize.Level1) 9325{ 9326 auto res = napi_remove_async_cleanup_hook(nullptr); 9327 ASSERT_EQ(res, napi_invalid_arg); 9328} 9329 9330/** 9331 * @tc.name: NodeApiGetModuleFileNameTest 9332 * @tc.desc: Test interface of node_api_get_module_file_name 9333 * @tc.type: FUNC 9334 */ 9335HWTEST_F(NapiBasicTest, NodeApiGetModuleFileNameTest001, testing::ext::TestSize.Level1) 9336{ 9337 auto res = node_api_get_module_file_name(nullptr, nullptr); 9338 ASSERT_EQ(res, napi_invalid_arg); 9339} 9340 9341/** 9342 * @tc.name: NodeApiGetModuleFileNameTest 9343 * @tc.desc: Test interface of node_api_get_module_file_name 9344 * @tc.type: FUNC 9345 */ 9346HWTEST_F(NapiBasicTest, NodeApiGetModuleFileNameTest002, testing::ext::TestSize.Level1) 9347{ 9348 ASSERT_NE(engine_, nullptr); 9349 napi_env env = reinterpret_cast<napi_env>(engine_); 9350 9351 auto res = node_api_get_module_file_name(env, nullptr); 9352 ASSERT_EQ(res, napi_invalid_arg); 9353} 9354 9355/** 9356 * @tc.name: NapiAddFinalizerTest 9357 * @tc.desc: Test interface of napi_add_finalizer 9358 * @tc.type: FUNC 9359 */ 9360HWTEST_F(NapiBasicTest, NapiAddFinalizerTest001, testing::ext::TestSize.Level1) 9361{ 9362 auto res = napi_add_finalizer(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr); 9363 ASSERT_EQ(res, napi_invalid_arg); 9364} 9365 9366/** 9367 * @tc.name: NapiAddFinalizerTest 9368 * @tc.desc: Test interface of napi_add_finalizer 9369 * @tc.type: FUNC 9370 */ 9371HWTEST_F(NapiBasicTest, NapiAddFinalizerTest002, testing::ext::TestSize.Level1) 9372{ 9373 ASSERT_NE(engine_, nullptr); 9374 napi_env env = reinterpret_cast<napi_env>(engine_); 9375 9376 auto res = napi_add_finalizer(env, nullptr, nullptr, nullptr, nullptr, nullptr); 9377 ASSERT_EQ(res, napi_invalid_arg); 9378} 9379 9380/** 9381 * @tc.name: NapiAddFinalizerTest 9382 * @tc.desc: Test interface of napi_add_finalizer 9383 * @tc.type: FUNC 9384 */ 9385HWTEST_F(NapiBasicTest, NapiAddFinalizerTest003, testing::ext::TestSize.Level1) 9386{ 9387 ASSERT_NE(engine_, nullptr); 9388 napi_env env = reinterpret_cast<napi_env>(engine_); 9389 9390 napi_value boolean = nullptr; 9391 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 9392 auto res = napi_add_finalizer(env, boolean, nullptr, nullptr, nullptr, nullptr); 9393 ASSERT_EQ(res, napi_invalid_arg); 9394} 9395 9396/** 9397 * @tc.name: NapiAddFinalizerTest 9398 * @tc.desc: Test interface of napi_add_finalizer 9399 * @tc.type: FUNC 9400 */ 9401HWTEST_F(NapiBasicTest, NapiAddFinalizerTest004, testing::ext::TestSize.Level1) 9402{ 9403 ASSERT_NE(engine_, nullptr); 9404 napi_env env = reinterpret_cast<napi_env>(engine_); 9405 9406 napi_value boolean = nullptr; 9407 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 9408 auto res = napi_add_finalizer(env, boolean, nullptr, TestFinalizer, nullptr, nullptr); 9409 ASSERT_EQ(res, napi_object_expected); 9410} 9411 9412/** 9413 * @tc.name: NapiQueueAsyncWorkWithQosTest 9414 * @tc.desc: Test interface of napi_queue_async_work_with_qos 9415 * @tc.type: FUNC 9416 */ 9417HWTEST_F(NapiBasicTest, NapiQueueAsyncWorkWithQosTest001, testing::ext::TestSize.Level1) 9418{ 9419 auto res = napi_queue_async_work_with_qos(nullptr, nullptr, napi_qos_default); 9420 ASSERT_EQ(res, napi_invalid_arg); 9421} 9422 9423/** 9424 * @tc.name: NapiQueueAsyncWorkWithQosTest 9425 * @tc.desc: Test interface of napi_queue_async_work_with_qos 9426 * @tc.type: FUNC 9427 */ 9428HWTEST_F(NapiBasicTest, NapiQueueAsyncWorkWithQosTest002, testing::ext::TestSize.Level1) 9429{ 9430 ASSERT_NE(engine_, nullptr); 9431 napi_env env = reinterpret_cast<napi_env>(engine_); 9432 9433 auto res = napi_queue_async_work_with_qos(env, nullptr, napi_qos_default); 9434 ASSERT_EQ(res, napi_invalid_arg); 9435} 9436 9437/** 9438 * @tc.name: NapiQueueAsyncWorkWithQosTest 9439 * @tc.desc: Test interface of napi_queue_async_work_with_qos 9440 * @tc.type: FUNC 9441 */ 9442HWTEST_F(NapiBasicTest, NapiQueueAsyncWorkWithQosTest003, testing::ext::TestSize.Level1) 9443{ 9444 ASSERT_NE(engine_, nullptr); 9445 napi_env env = reinterpret_cast<napi_env>(engine_); 9446 9447 struct AsyncWorkContext { 9448 napi_async_work work = nullptr; 9449 }; 9450 auto asyncWorkContext = new AsyncWorkContext(); 9451 napi_value resourceName = nullptr; 9452 napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &resourceName); 9453 ASSERT_CHECK_CALL(napi_create_async_work( 9454 env, nullptr, resourceName, [](napi_env value, void* data) {}, 9455 [](napi_env env, napi_status status, void* data) { 9456 AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data; 9457 ASSERT_CHECK_CALL(napi_delete_async_work(env, asyncWorkContext->work)); 9458 delete asyncWorkContext; 9459 STOP_EVENT_LOOP(env); 9460 }, 9461 asyncWorkContext, &asyncWorkContext->work)); 9462 9463 auto res = napi_queue_async_work_with_qos(env, asyncWorkContext->work, napi_qos_default); 9464 ASSERT_EQ(res, napi_ok); 9465 RUN_EVENT_LOOP(env); 9466} 9467 9468/** 9469 * @tc.name: NapiRunScriptPathTest 9470 * @tc.desc: Test interface of napi_run_script_path 9471 * @tc.type: FUNC 9472 */ 9473HWTEST_F(NapiBasicTest, NapiRunScriptPathTest001, testing::ext::TestSize.Level1) 9474{ 9475 auto res = napi_run_script_path(nullptr, nullptr, nullptr); 9476 ASSERT_EQ(res, napi_invalid_arg); 9477} 9478 9479/** 9480 * @tc.name: NapiRunScriptPathTest 9481 * @tc.desc: Test interface of napi_run_script_path 9482 * @tc.type: FUNC 9483 */ 9484HWTEST_F(NapiBasicTest, NapiRunScriptPathTest002, testing::ext::TestSize.Level1) 9485{ 9486 ASSERT_NE(engine_, nullptr); 9487 napi_env env = reinterpret_cast<napi_env>(engine_); 9488 9489 auto res = napi_run_script_path(env, nullptr, nullptr); 9490 ASSERT_EQ(res, napi_invalid_arg); 9491} 9492 9493/** 9494 * @tc.name: NapiRunScriptPathTest 9495 * @tc.desc: Test interface of napi_run_script_path 9496 * @tc.type: FUNC 9497 */ 9498HWTEST_F(NapiBasicTest, NapiRunScriptPathTest003, testing::ext::TestSize.Level1) 9499{ 9500 ASSERT_NE(engine_, nullptr); 9501 napi_env env = reinterpret_cast<napi_env>(engine_); 9502 9503 napi_value result = nullptr; 9504 auto res = napi_run_script_path(env, TEST_CHAR_STRING, &result); 9505 ASSERT_EQ(res, napi_ok); 9506} 9507 9508/** 9509 * @tc.name: NapiLoadModuleTest 9510 * @tc.desc: Test interface of napi_load_module 9511 * @tc.type: FUNC 9512 */ 9513HWTEST_F(NapiBasicTest, NapiLoadModuleTest001, testing::ext::TestSize.Level1) 9514{ 9515 auto res = napi_load_module(nullptr, nullptr, nullptr); 9516 ASSERT_EQ(res, napi_invalid_arg); 9517} 9518 9519/** 9520 * @tc.name: NapiLoadModuleTest 9521 * @tc.desc: Test interface of napi_load_module 9522 * @tc.type: FUNC 9523 */ 9524HWTEST_F(NapiBasicTest, NapiLoadModuleTest002, testing::ext::TestSize.Level1) 9525{ 9526 ASSERT_NE(engine_, nullptr); 9527 napi_env env = reinterpret_cast<napi_env>(engine_); 9528 9529 auto res = napi_load_module(env, nullptr, nullptr); 9530 ASSERT_EQ(res, napi_invalid_arg); 9531} 9532 9533/** 9534 * @tc.name: NapiLoadModuleTest 9535 * @tc.desc: Test interface of napi_load_module 9536 * @tc.type: FUNC 9537 */ 9538HWTEST_F(NapiBasicTest, NapiLoadModuleTest003, testing::ext::TestSize.Level1) 9539{ 9540 ASSERT_NE(engine_, nullptr); 9541 napi_env env = reinterpret_cast<napi_env>(engine_); 9542 9543 napi_value result = nullptr; 9544 auto res = napi_load_module(env, nullptr, &result); 9545 ASSERT_EQ(res, napi_ok); 9546} 9547 9548/** 9549 * @tc.name: NapiCreateObjectWithPropertiesTest 9550 * @tc.desc: Test interface of napi_create_object_with_properties 9551 * @tc.type: FUNC 9552 */ 9553HWTEST_F(NapiBasicTest, NapiCreateObjectWithPropertiesTest001, testing::ext::TestSize.Level1) 9554{ 9555 auto res = napi_create_object_with_properties(nullptr, nullptr, 0, nullptr); 9556 ASSERT_EQ(res, napi_invalid_arg); 9557} 9558 9559/** 9560 * @tc.name: NapiCreateObjectWithPropertiesTest 9561 * @tc.desc: Test interface of napi_create_object_with_properties 9562 * @tc.type: FUNC 9563 */ 9564HWTEST_F(NapiBasicTest, NapiCreateObjectWithPropertiesTest002, testing::ext::TestSize.Level1) 9565{ 9566 ASSERT_NE(engine_, nullptr); 9567 napi_env env = reinterpret_cast<napi_env>(engine_); 9568 9569 auto res = napi_create_object_with_properties(env, nullptr, 0, nullptr); 9570 ASSERT_EQ(res, napi_invalid_arg); 9571} 9572 9573/** 9574 * @tc.name: NapiCreateObjectWithNamedPropertiesTest 9575 * @tc.desc: Test interface of napi_create_object_with_named_properties 9576 * @tc.type: FUNC 9577 */ 9578HWTEST_F(NapiBasicTest, NapiCreateObjectWithNamedPropertiesTest001, testing::ext::TestSize.Level1) 9579{ 9580 auto res = napi_create_object_with_named_properties(nullptr, nullptr, 0, nullptr, nullptr); 9581 ASSERT_EQ(res, napi_invalid_arg); 9582} 9583 9584/** 9585 * @tc.name: NapiCreateObjectWithNamedPropertiesTest 9586 * @tc.desc: Test interface of napi_create_object_with_named_properties 9587 * @tc.type: FUNC 9588 */ 9589HWTEST_F(NapiBasicTest, NapiCreateObjectWithNamedPropertiesTest002, testing::ext::TestSize.Level1) 9590{ 9591 ASSERT_NE(engine_, nullptr); 9592 napi_env env = reinterpret_cast<napi_env>(engine_); 9593 9594 auto res = napi_create_object_with_named_properties(env, nullptr, 0, nullptr, nullptr); 9595 ASSERT_EQ(res, napi_invalid_arg); 9596} 9597 9598/** 9599 * @tc.name: NapiCoerceToNativeBindingObjectTest 9600 * @tc.desc: Test interface of napi_coerce_to_native_binding_object 9601 * @tc.type: FUNC 9602 */ 9603HWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest001, testing::ext::TestSize.Level1) 9604{ 9605 auto res = napi_coerce_to_native_binding_object(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr); 9606 ASSERT_EQ(res, napi_invalid_arg); 9607} 9608 9609/** 9610 * @tc.name: NapiCoerceToNativeBindingObjectTest 9611 * @tc.desc: Test interface of napi_coerce_to_native_binding_object 9612 * @tc.type: FUNC 9613 */ 9614HWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest002, testing::ext::TestSize.Level1) 9615{ 9616 ASSERT_NE(engine_, nullptr); 9617 napi_env env = reinterpret_cast<napi_env>(engine_); 9618 9619 auto res = napi_coerce_to_native_binding_object(env, nullptr, nullptr, nullptr, nullptr, nullptr); 9620 ASSERT_EQ(res, napi_invalid_arg); 9621} 9622 9623/** 9624 * @tc.name: NapiCoerceToNativeBindingObjectTest 9625 * @tc.desc: Test interface of napi_coerce_to_native_binding_object 9626 * @tc.type: FUNC 9627 */ 9628HWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest003, testing::ext::TestSize.Level1) 9629{ 9630 ASSERT_NE(engine_, nullptr); 9631 napi_env env = reinterpret_cast<napi_env>(engine_); 9632 9633 napi_value object = nullptr; 9634 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 9635 auto res = napi_coerce_to_native_binding_object(env, object, nullptr, nullptr, nullptr, nullptr); 9636 ASSERT_EQ(res, napi_invalid_arg); 9637} 9638 9639/** 9640 * @tc.name: NapiCoerceToNativeBindingObjectTest 9641 * @tc.desc: Test interface of napi_coerce_to_native_binding_object 9642 * @tc.type: FUNC 9643 */ 9644HWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest004, testing::ext::TestSize.Level1) 9645{ 9646 ASSERT_NE(engine_, nullptr); 9647 napi_env env = reinterpret_cast<napi_env>(engine_); 9648 9649 napi_value object = nullptr; 9650 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 9651 auto res = napi_coerce_to_native_binding_object(env, object, TestDetachCallback, nullptr, nullptr, nullptr); 9652 ASSERT_EQ(res, napi_invalid_arg); 9653} 9654 9655/** 9656 * @tc.name: NapiCoerceToNativeBindingObjectTest 9657 * @tc.desc: Test interface of napi_coerce_to_native_binding_object 9658 * @tc.type: FUNC 9659 */ 9660HWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest005, testing::ext::TestSize.Level1) 9661{ 9662 ASSERT_NE(engine_, nullptr); 9663 napi_env env = reinterpret_cast<napi_env>(engine_); 9664 9665 napi_value object = nullptr; 9666 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 9667 auto res = napi_coerce_to_native_binding_object(env, object, TestDetachCallback, TestAttachCallback, 9668 nullptr, nullptr); 9669 ASSERT_EQ(res, napi_invalid_arg); 9670} 9671 9672/** 9673 * @tc.name: NapiCoerceToNativeBindingObjectTest 9674 * @tc.desc: Test interface of napi_coerce_to_native_binding_object 9675 * @tc.type: FUNC 9676 */ 9677HWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest006, testing::ext::TestSize.Level1) 9678{ 9679 ASSERT_NE(engine_, nullptr); 9680 napi_env env = reinterpret_cast<napi_env>(engine_); 9681 9682 napi_value object = nullptr; 9683 ASSERT_CHECK_CALL(napi_create_object(env, &object)); 9684 auto res = napi_coerce_to_native_binding_object(env, object, TestDetachCallback, TestAttachCallback, 9685 reinterpret_cast<void*>(object), nullptr); 9686 ASSERT_EQ(res, napi_ok); 9687} 9688 9689/** 9690 * @tc.name: NapiCreateArkRuntimeTest 9691 * @tc.desc: Test interface of napi_create_ark_runtime 9692 * @tc.type: FUNC 9693 */ 9694HWTEST_F(NapiBasicTest, NapiCreateArkRuntimeTest001, testing::ext::TestSize.Level1) 9695{ 9696 auto res = napi_create_ark_runtime(nullptr); 9697 ASSERT_EQ(res, napi_invalid_arg); 9698} 9699 9700/** 9701 * @tc.name: NapiCreateArkRuntimeTest 9702 * @tc.desc: Test interface of napi_create_ark_runtime 9703 * @tc.type: FUNC 9704 */ 9705HWTEST_F(NapiBasicTest, NapiCreateArkRuntimeTest002, testing::ext::TestSize.Level1) 9706{ 9707 auto temp = NativeCreateEnv::g_createNapiEnvCallback; 9708 NativeCreateEnv::g_createNapiEnvCallback = nullptr; 9709 auto res = napi_create_ark_runtime(nullptr); 9710 NativeCreateEnv::g_createNapiEnvCallback = temp; 9711 ASSERT_EQ(res, napi_invalid_arg); 9712} 9713 9714/** 9715 * @tc.name: NapiDestroyArkRuntimeTest 9716 * @tc.desc: Test interface of napi_destroy_ark_runtime 9717 * @tc.type: FUNC 9718 */ 9719HWTEST_F(NapiBasicTest, NapiDestroyArkRuntimeTest001, testing::ext::TestSize.Level1) 9720{ 9721 auto res = napi_destroy_ark_runtime(nullptr); 9722 ASSERT_EQ(res, napi_invalid_arg); 9723} 9724 9725/** 9726 * @tc.name: NapiDestroyArkRuntimeTest 9727 * @tc.desc: Test interface of napi_destroy_ark_runtime 9728 * @tc.type: FUNC 9729 */ 9730HWTEST_F(NapiBasicTest, NapiDestroyArkRuntimeTest002, testing::ext::TestSize.Level1) 9731{ 9732 auto temp = NativeCreateEnv::g_destroyNapiEnvCallback; 9733 NativeCreateEnv::g_destroyNapiEnvCallback = nullptr; 9734 auto res = napi_destroy_ark_runtime(nullptr); 9735 NativeCreateEnv::g_destroyNapiEnvCallback = temp; 9736 ASSERT_EQ(res, napi_invalid_arg); 9737} 9738 9739/** 9740 * @tc.name: NapiRunEventLoopTest 9741 * @tc.desc: Test interface of napi_run_event_loop 9742 * @tc.type: FUNC 9743 */ 9744HWTEST_F(NapiBasicTest, NapiRunEventLoopTest001, testing::ext::TestSize.Level1) 9745{ 9746 auto res = napi_run_event_loop(nullptr, napi_event_mode_default); 9747 ASSERT_EQ(res, napi_invalid_arg); 9748} 9749 9750/** 9751 * @tc.name: NapiRunEventLoopTest 9752 * @tc.desc: Test interface of napi_run_event_loop 9753 * @tc.type: FUNC 9754 */ 9755HWTEST_F(NapiBasicTest, NapiRunEventLoopTest002, testing::ext::TestSize.Level1) 9756{ 9757 ASSERT_NE(engine_, nullptr); 9758 napi_env env = reinterpret_cast<napi_env>(engine_); 9759 9760 auto res = napi_run_event_loop(env, (napi_event_mode)(napi_event_mode_default - 1)); 9761 ASSERT_EQ(res, napi_invalid_arg); 9762} 9763 9764/** 9765 * @tc.name: NapiStopEventLoopTest 9766 * @tc.desc: Test interface of napi_stop_event_loop 9767 * @tc.type: FUNC 9768 */ 9769HWTEST_F(NapiBasicTest, NapiStopEventLoopTest001, testing::ext::TestSize.Level1) 9770{ 9771 auto res = napi_stop_event_loop(nullptr); 9772 ASSERT_EQ(res, napi_invalid_arg); 9773} 9774 9775/** 9776 * @tc.name: NapiLoadModuleWithInfoTest 9777 * @tc.desc: Test interface of napi_load_module_with_info 9778 * @tc.type: FUNC 9779 */ 9780HWTEST_F(NapiBasicTest, NapiLoadModuleWithInfoTest001, testing::ext::TestSize.Level1) 9781{ 9782 auto res = napi_load_module_with_info(nullptr, nullptr, nullptr, nullptr); 9783 ASSERT_EQ(res, napi_invalid_arg); 9784} 9785 9786/** 9787 * @tc.name: NapiLoadModuleWithInfoTest 9788 * @tc.desc: Test interface of napi_load_module_with_info 9789 * @tc.type: FUNC 9790 */ 9791HWTEST_F(NapiBasicTest, NapiLoadModuleWithInfoTest002, testing::ext::TestSize.Level1) 9792{ 9793 ASSERT_NE(engine_, nullptr); 9794 napi_env env = reinterpret_cast<napi_env>(engine_); 9795 9796 auto res = napi_load_module_with_info(env, nullptr, nullptr, nullptr); 9797 ASSERT_EQ(res, napi_invalid_arg); 9798} 9799 9800/** 9801 * @tc.name: NapiLoadModuleWithInfoTest 9802 * @tc.desc: Test interface of napi_load_module_with_info 9803 * @tc.type: FUNC 9804 */ 9805HWTEST_F(NapiBasicTest, NapiLoadModuleWithInfoTest003, testing::ext::TestSize.Level1) 9806{ 9807 ASSERT_NE(engine_, nullptr); 9808 napi_env env = reinterpret_cast<napi_env>(engine_); 9809 9810 napi_value result = nullptr; 9811 auto res = napi_load_module_with_info(env, nullptr, nullptr, &result); 9812 ASSERT_EQ(res, napi_ok); 9813} 9814 9815/** 9816 * @tc.name: NapiSerializeTest 9817 * @tc.desc: Test interface of napi_serialize 9818 * @tc.type: FUNC 9819 */ 9820HWTEST_F(NapiBasicTest, NapiSerializeTest001, testing::ext::TestSize.Level1) 9821{ 9822 auto res = napi_serialize(nullptr, nullptr, nullptr, nullptr, nullptr); 9823 ASSERT_EQ(res, napi_invalid_arg); 9824} 9825 9826/** 9827 * @tc.name: NapiSerializeTest 9828 * @tc.desc: Test interface of napi_serialize 9829 * @tc.type: FUNC 9830 */ 9831HWTEST_F(NapiBasicTest, NapiSerializeTest002, testing::ext::TestSize.Level1) 9832{ 9833 ASSERT_NE(engine_, nullptr); 9834 napi_env env = reinterpret_cast<napi_env>(engine_); 9835 9836 auto res = napi_serialize(env, nullptr, nullptr, nullptr, nullptr); 9837 ASSERT_EQ(res, napi_invalid_arg); 9838} 9839 9840/** 9841 * @tc.name: NapiSerializeTest 9842 * @tc.desc: Test interface of napi_serialize 9843 * @tc.type: FUNC 9844 */ 9845HWTEST_F(NapiBasicTest, NapiSerializeTest003, testing::ext::TestSize.Level1) 9846{ 9847 ASSERT_NE(engine_, nullptr); 9848 napi_env env = reinterpret_cast<napi_env>(engine_); 9849 9850 napi_value num = nullptr; 9851 ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num)); 9852 auto res = napi_serialize(env, num, nullptr, nullptr, nullptr); 9853 ASSERT_EQ(res, napi_invalid_arg); 9854} 9855 9856/** 9857 * @tc.name: NapiSerializeTest 9858 * @tc.desc: Test interface of napi_serialize 9859 * @tc.type: FUNC 9860 */ 9861HWTEST_F(NapiBasicTest, NapiSerializeTest004, testing::ext::TestSize.Level1) 9862{ 9863 ASSERT_NE(engine_, nullptr); 9864 napi_env env = reinterpret_cast<napi_env>(engine_); 9865 9866 napi_value num = nullptr; 9867 ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num)); 9868 napi_value undefined = nullptr; 9869 ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined)); 9870 auto res = napi_serialize(env, num, undefined, nullptr, nullptr); 9871 ASSERT_EQ(res, napi_invalid_arg); 9872} 9873 9874/** 9875 * @tc.name: NapiSerializeTest 9876 * @tc.desc: Test interface of napi_serialize 9877 * @tc.type: FUNC 9878 */ 9879HWTEST_F(NapiBasicTest, NapiSerializeTest005, testing::ext::TestSize.Level1) 9880{ 9881 ASSERT_NE(engine_, nullptr); 9882 napi_env env = reinterpret_cast<napi_env>(engine_); 9883 9884 napi_value num = nullptr; 9885 ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num)); 9886 napi_value undefined = nullptr; 9887 ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined)); 9888 auto res = napi_serialize(env, num, undefined, undefined, nullptr); 9889 ASSERT_EQ(res, napi_invalid_arg); 9890} 9891 9892/** 9893 * @tc.name: NapiSerializeTest 9894 * @tc.desc: Test interface of napi_serialize 9895 * @tc.type: FUNC 9896 */ 9897HWTEST_F(NapiBasicTest, NapiSerializeTest006, testing::ext::TestSize.Level1) 9898{ 9899 ASSERT_NE(engine_, nullptr); 9900 napi_env env = reinterpret_cast<napi_env>(engine_); 9901 9902 napi_value num = nullptr; 9903 ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num)); 9904 napi_value boolean = nullptr; 9905 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 9906 void* data = nullptr; 9907 auto res = napi_serialize(env, num, boolean, boolean, &data); 9908 ASSERT_EQ(res, napi_invalid_arg); 9909} 9910 9911/** 9912 * @tc.name: NapiSerializeTest 9913 * @tc.desc: Test interface of napi_serialize 9914 * @tc.type: FUNC 9915 */ 9916HWTEST_F(NapiBasicTest, NapiSerializeTest007, testing::ext::TestSize.Level1) 9917{ 9918 ASSERT_NE(engine_, nullptr); 9919 napi_env env = reinterpret_cast<napi_env>(engine_); 9920 9921 napi_value num = nullptr; 9922 ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num)); 9923 napi_value undefined = nullptr; 9924 ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined)); 9925 napi_value boolean = nullptr; 9926 ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean)); 9927 void* data = nullptr; 9928 auto res = napi_serialize(env, num, undefined, boolean, &data); 9929 ASSERT_EQ(res, napi_invalid_arg); 9930} 9931 9932/** 9933 * @tc.name: NapiSerializeTest 9934 * @tc.desc: Test interface of napi_serialize 9935 * @tc.type: FUNC 9936 */ 9937HWTEST_F(NapiBasicTest, NapiSerializeTest008, testing::ext::TestSize.Level1) 9938{ 9939 ASSERT_NE(engine_, nullptr); 9940 napi_env env = reinterpret_cast<napi_env>(engine_); 9941 9942 napi_value num = nullptr; 9943 ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num)); 9944 napi_value undefined = nullptr; 9945 ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined)); 9946 void* data = nullptr; 9947 auto res = napi_serialize(env, num, undefined, undefined, &data); 9948 ASSERT_EQ(res, napi_ok); 9949} 9950 9951/** 9952 * @tc.name: NapiEncodeTest 9953 * @tc.desc: Test interface of napi_encode 9954 * @tc.type: FUNC 9955 */ 9956HWTEST_F(NapiBasicTest, NapiEncodeTest001, testing::ext::TestSize.Level1) 9957{ 9958 ASSERT_NE(engine_, nullptr); 9959 napi_env env = reinterpret_cast<napi_env>(engine_); 9960 const char testStr[] = "中测_Eng_123"; 9961 size_t testStrLength = strlen(testStr); 9962 napi_value src = nullptr; 9963 ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &src)); 9964 9965 napi_value result = nullptr; 9966 ASSERT_CHECK_CALL(napi_encode(env, src, &result)); 9967 char expected[15] = {0xe4, 0xb8, 0xad, 0xe6, 0xb5, 0x8b, 0x5f, 0x45, 0x6e, 0x67, 0x5f, 0x31, 0x32, 0x33, 0}; 9968 9969 napi_typedarray_type type; 9970 size_t srcLength = 0; 9971 void* srcData = nullptr; 9972 napi_value srcBuffer = nullptr; 9973 size_t byteOffset = 0; 9974 9975 napi_get_typedarray_info(env, result, &type, &srcLength, &srcData, &srcBuffer, &byteOffset); 9976 9977 ASSERT_EQ(srcLength, 14); // 14:string length 9978 char* res = reinterpret_cast<char*>(srcData); 9979 9980 res[srcLength] = 0; 9981 ASSERT_STREQ(res, expected); 9982} 9983 9984/** 9985 * @tc.name: NapiEncodeTest 9986 * @tc.desc: Test interface of napi_encode 9987 * @tc.type: FUNC 9988 */ 9989HWTEST_F(NapiBasicTest, NapiEncodeTest002, testing::ext::TestSize.Level1) 9990{ 9991 ASSERT_NE(engine_, nullptr); 9992 napi_env env = reinterpret_cast<napi_env>(engine_); 9993 9994 napi_value undefined = nullptr; 9995 ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined)); 9996 9997 napi_value result = nullptr; 9998 auto ret = napi_encode(env, undefined, &result); 9999 ASSERT_EQ(ret, napi_string_expected); 10000} 10001