1# Copyright (c) 2022-2024 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/test.gni") 15import("//foundation/communication/netstack/netstack_config.gni") 16 17TLS = "$NETSTACK_NATIVE_ROOT/tls_socket" 18TLS_NAPI = "$NETSTACK_DIR/frameworks/js/napi/tls" 19SOCKET = "$NETSTACK_DIR/frameworks/js/napi/socket" 20TLS_SOCKET_TEST = "$NETSTACK_DIR/test/unittest/tlssocket/client" 21 22tls_sources = [ 23 "$TLS/src/secure_data.cpp", 24 "$TLS/src/socket_error.cpp", 25 "$TLS/src/tls_certificate.cpp", 26 "$TLS/src/tls_configuration.cpp", 27 "$TLS/src/tls_context.cpp", 28 "$TLS/src/tls_context_server.cpp", 29 "$TLS/src/tls_key.cpp", 30 "$TLS/src/tls_utils.cpp", 31 "$TLS_NAPI/src/tls_socket.cpp", 32 "$TLS_NAPI/src/tls_socket_server.cpp", 33] 34 35tls_napi_sources = [ 36 "$TLS_NAPI/src/context/tls_bind_context.cpp", 37 "$TLS_NAPI/src/context/tls_connect_context.cpp", 38 "$TLS_NAPI/src/context/tls_extra_context.cpp", 39 "$TLS_NAPI/src/context/tls_init_context.cpp", 40 "$TLS_NAPI/src/context/tls_napi_context.cpp", 41 "$TLS_NAPI/src/context/tls_send_context.cpp", 42 "$TLS_NAPI/src/context/tls_server_close_context.cpp", 43 "$TLS_NAPI/src/context/tls_server_napi_context.cpp", 44 "$TLS_NAPI/src/context/tls_server_send_context.cpp", 45 "$TLS_NAPI/src/monitor.cpp", 46 "$TLS_NAPI/src/monitor_server.cpp", 47 "$TLS_NAPI/src/tlssocket_async_work.cpp", 48 "$TLS_NAPI/src/tlssocket_exec.cpp", 49 "$TLS_NAPI/src/tlssocket_module.cpp", 50 "$TLS_NAPI/src/tlssocketserver_async_work.cpp", 51 "$TLS_NAPI/src/tlssocketserver_exec.cpp", 52 "$TLS_NAPI/src/tlssocketserver_module.cpp", 53] 54 55socket_sources = [ 56 "$NETSTACK_DIR/frameworks/js/napi/proxy/src/socks5_instance.cpp", 57 "$NETSTACK_DIR/frameworks/js/napi/proxy/src/socks5_none_method.cpp", 58 "$NETSTACK_DIR/frameworks/js/napi/proxy/src/socks5_package.cpp", 59 "$NETSTACK_DIR/frameworks/js/napi/proxy/src/socks5_passwd_method.cpp", 60 "$NETSTACK_DIR/frameworks/js/napi/proxy/src/socks5_utils.cpp", 61 "$SOCKET/async_context/src/bind_context.cpp", 62 "$SOCKET/async_context/src/common_context.cpp", 63 "$SOCKET/async_context/src/connect_context.cpp", 64 "$SOCKET/async_context/src/local_socket_context.cpp", 65 "$SOCKET/async_context/src/local_socket_server_context.cpp", 66 "$SOCKET/async_context/src/multicast_get_loopback_context.cpp", 67 "$SOCKET/async_context/src/multicast_get_ttl_context.cpp", 68 "$SOCKET/async_context/src/multicast_membership_context.cpp", 69 "$SOCKET/async_context/src/multicast_set_loopback_context.cpp", 70 "$SOCKET/async_context/src/multicast_set_ttl_context.cpp", 71 "$SOCKET/async_context/src/tcp_extra_context.cpp", 72 "$SOCKET/async_context/src/tcp_send_context.cpp", 73 "$SOCKET/async_context/src/tcp_server_common_context.cpp", 74 "$SOCKET/async_context/src/tcp_server_extra_context.cpp", 75 "$SOCKET/async_context/src/tcp_server_listen_context.cpp", 76 "$SOCKET/async_context/src/tcp_server_send_context.cpp", 77 "$SOCKET/async_context/src/udp_extra_context.cpp", 78 "$SOCKET/async_context/src/udp_send_context.cpp", 79 "$SOCKET/async_work/src/socket_async_work.cpp", 80 "$SOCKET/options/src/extra_options_base.cpp", 81 "$SOCKET/options/src/local_socket_options.cpp", 82 "$SOCKET/options/src/net_address.cpp", 83 "$SOCKET/options/src/proxy_options.cpp", 84 "$SOCKET/options/src/socket_remote_info.cpp", 85 "$SOCKET/options/src/socket_state_base.cpp", 86 "$SOCKET/options/src/tcp_connect_options.cpp", 87 "$SOCKET/options/src/tcp_extra_options.cpp", 88 "$SOCKET/options/src/tcp_send_options.cpp", 89 "$SOCKET/options/src/udp_extra_options.cpp", 90 "$SOCKET/options/src/udp_send_options.cpp", 91 "$SOCKET/socket_exec/src/local_socket_exec.cpp", 92 "$SOCKET/socket_exec/src/socket_exec.cpp", 93 "$SOCKET/socket_exec/src/socket_extra_exec.cpp", 94 "$SOCKET/socket_module/src/socket_module.cpp", 95] 96 97tls_socket_test_sources = [ "$TLS_SOCKET_TEST/tls_utils_test.cpp" ] 98 99config("tls_test_config") { 100 include_dirs = [ 101 "$TLS/include", 102 "$TLS_NAPI/include", 103 "$TLS_NAPI/include/context", 104 "$NETSTACK_INNERKITS_DIR/tls_socket/include", 105 "$NETSTACK_DIR/frameworks/js/napi/proxy/include", 106 "$NETSTACK_DIR/utils/napi_utils/include", 107 "$SOCKET/async_context/include", 108 "$SOCKET/async_work/include", 109 "$SOCKET/constant/include", 110 "$SOCKET/socket_exec/include", 111 "$SOCKET/socket_module/include", 112 "$SOCKET/options/include", 113 "$SOCKET/task_queue/include", 114 ] 115} 116 117ohos_unittest("two_way_tls_socket_unittest") { 118 sanitize = { 119 cfi = true 120 cfi_cross_dso = true 121 debug = false 122 } 123 124 branch_protector_ret = "pac_ret" 125 126 sources = [ "TlsSocketTest.cpp" ] 127 sources += tls_sources 128 sources += tls_napi_sources 129 sources += socket_sources 130 sources += tls_socket_test_sources 131 132 configs = [ ":tls_test_config" ] 133 134 deps = [ 135 "$NETSTACK_DIR/utils:stack_utils_common", 136 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 137 ] 138 external_deps = [ 139 "c_utils:utils", 140 "hilog:libhilog", 141 "napi:ace_napi", 142 "openssl:libcrypto_shared", 143 "openssl:libssl_shared", 144 ] 145 146 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 147 if (defined(global_parts_info) && 148 defined(global_parts_info.communication_netmanager_base) && 149 global_parts_info.communication_netmanager_base) { 150 external_deps += [ "netmanager_base:net_conn_manager_if" ] 151 defines += [ "HAS_NETMANAGER_BASE=1" ] 152 } else { 153 defines += [ "HAS_NETMANAGER_BASE=0" ] 154 } 155 156 module_out_path = "netstack/tls_socket_unittest" 157 part_name = "netstack" 158 subsystem_name = "communication" 159} 160 161ohos_unittest("one_way_tls_socket_unittest") { 162 sanitize = { 163 cfi = true 164 cfi_cross_dso = true 165 debug = false 166 } 167 168 branch_protector_ret = "pac_ret" 169 170 sources = [ "TlsSocketOneWayTest.cpp" ] 171 sources += tls_sources 172 sources += tls_napi_sources 173 sources += socket_sources 174 sources += tls_socket_test_sources 175 176 configs = [ ":tls_test_config" ] 177 178 deps = [ 179 "$NETSTACK_DIR/utils:stack_utils_common", 180 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 181 ] 182 external_deps = [ 183 "c_utils:utils", 184 "hilog:libhilog", 185 "napi:ace_napi", 186 "openssl:libcrypto_shared", 187 "openssl:libssl_shared", 188 ] 189 190 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 191 if (defined(global_parts_info) && 192 defined(global_parts_info.communication_netmanager_base) && 193 global_parts_info.communication_netmanager_base) { 194 external_deps += [ "netmanager_base:net_conn_manager_if" ] 195 defines += [ "HAS_NETMANAGER_BASE=1" ] 196 } else { 197 defines += [ "HAS_NETMANAGER_BASE=0" ] 198 } 199 200 module_out_path = "netstack/tls_socket_unittest" 201 part_name = "netstack" 202 subsystem_name = "communication" 203} 204 205ohos_unittest("two_way_tls_socket_certchain_unittest") { 206 sanitize = { 207 cfi = true 208 cfi_cross_dso = true 209 debug = false 210 } 211 212 branch_protector_ret = "pac_ret" 213 214 sources = [ "TlsSocketCertChainTest.cpp" ] 215 sources += tls_sources 216 sources += tls_napi_sources 217 sources += socket_sources 218 sources += tls_socket_test_sources 219 220 configs = [ ":tls_test_config" ] 221 222 deps = [ 223 "$NETSTACK_DIR/utils:stack_utils_common", 224 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 225 ] 226 external_deps = [ 227 "c_utils:utils", 228 "hilog:libhilog", 229 "napi:ace_napi", 230 "openssl:libcrypto_shared", 231 "openssl:libssl_shared", 232 ] 233 234 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 235 if (defined(global_parts_info) && 236 defined(global_parts_info.communication_netmanager_base) && 237 global_parts_info.communication_netmanager_base) { 238 external_deps += [ "netmanager_base:net_conn_manager_if" ] 239 defines += [ "HAS_NETMANAGER_BASE=1" ] 240 } else { 241 defines += [ "HAS_NETMANAGER_BASE=0" ] 242 } 243 244 module_out_path = "netstack/tls_socket_unittest" 245 part_name = "netstack" 246 subsystem_name = "communication" 247} 248 249ohos_unittest("one_way_tls_socket_certchain_unittest") { 250 sanitize = { 251 cfi = true 252 cfi_cross_dso = true 253 debug = false 254 } 255 256 branch_protector_ret = "pac_ret" 257 258 sources = [ "TlsSocketCertChainOneWayTest.cpp" ] 259 sources += tls_sources 260 sources += tls_napi_sources 261 sources += socket_sources 262 sources += tls_socket_test_sources 263 264 configs = [ ":tls_test_config" ] 265 266 deps = [ 267 "$NETSTACK_DIR/utils:stack_utils_common", 268 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 269 ] 270 external_deps = [ 271 "c_utils:utils", 272 "hilog:libhilog", 273 "napi:ace_napi", 274 "openssl:libcrypto_shared", 275 "openssl:libssl_shared", 276 ] 277 278 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 279 if (defined(global_parts_info) && 280 defined(global_parts_info.communication_netmanager_base) && 281 global_parts_info.communication_netmanager_base) { 282 external_deps += [ "netmanager_base:net_conn_manager_if" ] 283 defines += [ "HAS_NETMANAGER_BASE=1" ] 284 } else { 285 defines += [ "HAS_NETMANAGER_BASE=0" ] 286 } 287 288 module_out_path = "netstack/tls_socket_unittest" 289 part_name = "netstack" 290 subsystem_name = "communication" 291} 292 293ohos_unittest("tls_socket_unilateral_connection") { 294 sanitize = { 295 cfi = true 296 cfi_cross_dso = true 297 debug = false 298 } 299 300 branch_protector_ret = "pac_ret" 301 302 sources = [ "TlsSocketUnilateralConnection.cpp" ] 303 sources += tls_sources 304 sources += tls_napi_sources 305 sources += socket_sources 306 sources += tls_socket_test_sources 307 308 configs = [ ":tls_test_config" ] 309 310 deps = [ 311 "$NETSTACK_DIR/utils:stack_utils_common", 312 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 313 ] 314 external_deps = [ 315 "access_token:libaccesstoken_sdk", 316 "access_token:libnativetoken", 317 "access_token:libtoken_setproc", 318 "c_utils:utils", 319 "hilog:libhilog", 320 "napi:ace_napi", 321 "openssl:libcrypto_shared", 322 "openssl:libssl_shared", 323 ] 324 325 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 326 if (defined(global_parts_info) && 327 defined(global_parts_info.communication_netmanager_base) && 328 global_parts_info.communication_netmanager_base) { 329 external_deps += [ "netmanager_base:net_conn_manager_if" ] 330 defines += [ "HAS_NETMANAGER_BASE=1" ] 331 } else { 332 defines += [ "HAS_NETMANAGER_BASE=0" ] 333 } 334 335 module_out_path = "netstack/tls_socket_unittest" 336 part_name = "netstack" 337 subsystem_name = "communication" 338} 339 340ohos_unittest("secure_data_unittest") { 341 sanitize = { 342 cfi = true 343 cfi_cross_dso = true 344 debug = false 345 } 346 347 branch_protector_ret = "pac_ret" 348 349 sources = [ 350 "$TLS/src/secure_data.cpp", 351 "SecureDataTest.cpp", 352 ] 353 354 configs = [ ":tls_test_config" ] 355 356 deps = [ "$NETSTACK_DIR/utils:stack_utils_common" ] 357 external_deps = [ 358 "c_utils:utils", 359 "hilog:libhilog", 360 ] 361 362 module_out_path = "netstack/tls_socket_unittest" 363 part_name = "netstack" 364 subsystem_name = "communication" 365} 366 367ohos_unittest("tls_key_test") { 368 sanitize = { 369 cfi = true 370 cfi_cross_dso = true 371 debug = false 372 } 373 374 branch_protector_ret = "pac_ret" 375 376 sources = [ "TlsKeyTest.cpp" ] 377 sources += tls_sources 378 sources += tls_napi_sources 379 sources += socket_sources 380 381 configs = [ ":tls_test_config" ] 382 383 deps = [ 384 "$NETSTACK_DIR/utils:stack_utils_common", 385 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 386 ] 387 external_deps = [ 388 "c_utils:utils", 389 "hilog:libhilog", 390 "napi:ace_napi", 391 "openssl:libcrypto_shared", 392 "openssl:libssl_shared", 393 ] 394 395 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 396 if (defined(global_parts_info) && 397 defined(global_parts_info.communication_netmanager_base) && 398 global_parts_info.communication_netmanager_base) { 399 external_deps += [ "netmanager_base:net_conn_manager_if" ] 400 defines += [ "HAS_NETMANAGER_BASE=1" ] 401 } else { 402 defines += [ "HAS_NETMANAGER_BASE=0" ] 403 } 404 405 module_out_path = "netstack/tls_socket_unittest" 406 part_name = "netstack" 407 subsystem_name = "communication" 408} 409 410ohos_unittest("tls_cert_test") { 411 sanitize = { 412 cfi = true 413 cfi_cross_dso = true 414 debug = false 415 } 416 417 branch_protector_ret = "pac_ret" 418 419 sources = [ "TlsCertificateTest.cpp" ] 420 sources += tls_sources 421 sources += tls_napi_sources 422 sources += socket_sources 423 424 configs = [ ":tls_test_config" ] 425 426 deps = [ 427 "$NETSTACK_DIR/utils:stack_utils_common", 428 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 429 ] 430 external_deps = [ 431 "c_utils:utils", 432 "hilog:libhilog", 433 "napi:ace_napi", 434 "openssl:libcrypto_shared", 435 "openssl:libssl_shared", 436 ] 437 438 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 439 if (defined(global_parts_info) && 440 defined(global_parts_info.communication_netmanager_base) && 441 global_parts_info.communication_netmanager_base) { 442 external_deps += [ "netmanager_base:net_conn_manager_if" ] 443 defines += [ "HAS_NETMANAGER_BASE=1" ] 444 } else { 445 defines += [ "HAS_NETMANAGER_BASE=0" ] 446 } 447 448 module_out_path = "netstack/tls_socket_unittest" 449 part_name = "netstack" 450 subsystem_name = "communication" 451} 452 453ohos_unittest("tls_configuration_test") { 454 sanitize = { 455 cfi = true 456 cfi_cross_dso = true 457 debug = false 458 } 459 460 branch_protector_ret = "pac_ret" 461 462 sources = [ "TlsConfigurationTest.cpp" ] 463 sources += tls_sources 464 sources += tls_napi_sources 465 sources += socket_sources 466 467 configs = [ ":tls_test_config" ] 468 469 deps = [ 470 "$NETSTACK_DIR/utils:stack_utils_common", 471 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 472 ] 473 external_deps = [ 474 "c_utils:utils", 475 "hilog:libhilog", 476 "napi:ace_napi", 477 "openssl:libcrypto_shared", 478 "openssl:libssl_shared", 479 ] 480 481 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 482 if (defined(global_parts_info) && 483 defined(global_parts_info.communication_netmanager_base) && 484 global_parts_info.communication_netmanager_base) { 485 external_deps += [ "netmanager_base:net_conn_manager_if" ] 486 defines += [ "HAS_NETMANAGER_BASE=1" ] 487 } else { 488 defines += [ "HAS_NETMANAGER_BASE=0" ] 489 } 490 491 module_out_path = "netstack/tls_socket_unittest" 492 part_name = "netstack" 493 subsystem_name = "communication" 494} 495 496ohos_unittest("tls_context_test") { 497 sanitize = { 498 cfi = true 499 cfi_cross_dso = true 500 debug = false 501 } 502 503 branch_protector_ret = "pac_ret" 504 505 sources = [ "TlsContextTest.cpp" ] 506 sources += tls_sources 507 sources += tls_napi_sources 508 sources += socket_sources 509 510 configs = [ ":tls_test_config" ] 511 512 deps = [ 513 "$NETSTACK_DIR/utils:stack_utils_common", 514 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 515 ] 516 external_deps = [ 517 "c_utils:utils", 518 "hilog:libhilog", 519 "napi:ace_napi", 520 "openssl:libcrypto_shared", 521 "openssl:libssl_shared", 522 ] 523 524 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 525 if (defined(global_parts_info) && 526 defined(global_parts_info.communication_netmanager_base) && 527 global_parts_info.communication_netmanager_base) { 528 external_deps += [ "netmanager_base:net_conn_manager_if" ] 529 defines += [ "HAS_NETMANAGER_BASE=1" ] 530 } else { 531 defines += [ "HAS_NETMANAGER_BASE=0" ] 532 } 533 534 module_out_path = "netstack/tls_socket_unittest" 535 part_name = "netstack" 536 subsystem_name = "communication" 537} 538 539ohos_unittest("socket_error_unittest") { 540 sanitize = { 541 cfi = true 542 cfi_cross_dso = true 543 debug = false 544 } 545 546 branch_protector_ret = "pac_ret" 547 548 sources = [ "SocketErrorTest.cpp" ] 549 sources += tls_sources 550 sources += tls_napi_sources 551 sources += socket_sources 552 553 configs = [ ":tls_test_config" ] 554 555 deps = [ 556 "$NETSTACK_DIR/utils:stack_utils_common", 557 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 558 ] 559 external_deps = [ 560 "c_utils:utils", 561 "hilog:libhilog", 562 "napi:ace_napi", 563 "openssl:libcrypto_shared", 564 "openssl:libssl_shared", 565 ] 566 567 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 568 if (defined(global_parts_info) && 569 defined(global_parts_info.communication_netmanager_base) && 570 global_parts_info.communication_netmanager_base) { 571 external_deps += [ "netmanager_base:net_conn_manager_if" ] 572 defines += [ "HAS_NETMANAGER_BASE=1" ] 573 } else { 574 defines += [ "HAS_NETMANAGER_BASE=0" ] 575 } 576 577 module_out_path = "netstack/tls_socket_unittest" 578 part_name = "netstack" 579 subsystem_name = "communication" 580} 581 582ohos_unittest("tls_socket_branch_test") { 583 sanitize = { 584 cfi = true 585 cfi_cross_dso = true 586 debug = false 587 } 588 589 branch_protector_ret = "pac_ret" 590 591 sources = [ "TlsSocketBranchTest.cpp" ] 592 sources += tls_sources 593 sources += tls_napi_sources 594 sources += socket_sources 595 596 configs = [ ":tls_test_config" ] 597 598 deps = [ 599 "$NETSTACK_DIR/utils:stack_utils_common", 600 "$NETSTACK_DIR/utils/napi_utils:napi_utils", 601 ] 602 external_deps = [ 603 "access_token:libaccesstoken_sdk", 604 "access_token:libnativetoken", 605 "access_token:libtoken_setproc", 606 "c_utils:utils", 607 "hilog:libhilog", 608 "napi:ace_napi", 609 "openssl:libcrypto_shared", 610 "openssl:libssl_shared", 611 ] 612 613 defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 614 if (defined(global_parts_info) && 615 defined(global_parts_info.communication_netmanager_base) && 616 global_parts_info.communication_netmanager_base) { 617 external_deps += [ "netmanager_base:net_conn_manager_if" ] 618 defines += [ "HAS_NETMANAGER_BASE=1" ] 619 } else { 620 defines += [ "HAS_NETMANAGER_BASE=0" ] 621 } 622 623 module_out_path = "netstack/tls_socket_unittest" 624 part_name = "netstack" 625 subsystem_name = "communication" 626} 627