1# Copyright (C) 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/dhcp/dhcp.gni")
16
17module_output_path = "dhcp/dhcp_util_test"
18
19ohos_unittest("dhcp_util_unittest") {
20  module_out_path = module_output_path
21
22  sources = [
23    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_client_callback_proxy.cpp",
24    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_client_death_recipient.cpp",
25    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_client_service_impl.cpp",
26    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_client_state_machine.cpp",
27    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_client_stub.cpp",
28    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_function.cpp",
29    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_ipv6_client.cpp",
30    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_ipv6_event.cpp",
31    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_options.cpp",
32    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_result.cpp",
33    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_result_store_manager.cpp",
34    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_socket.cpp",
35    "$DHCP_ROOT_DIR/services/dhcp_client/src/dhcp_thread.cpp",
36    "$DHCP_ROOT_DIR/services/utils/src/dhcp_arp_checker.cpp",
37    "$DHCP_ROOT_DIR/services/utils/src/dhcp_common_utils.cpp",
38    "$DHCP_ROOT_DIR/test/unittest/services/dhcp_client/mock_custom_func.cpp",
39    "$DHCP_ROOT_DIR/test/unittest/services/dhcp_client/mock_system_func.cpp",
40    "dhcp_arp_checker_test.cpp",
41    "dhcp_common_utils_test.cpp",
42    "dhcp_permission_utils_test.cpp",
43    "dhcp_system_timer_test.cpp",
44  ]
45
46  include_dirs = [
47    "//third_party/openssl/include",
48    "$DHCP_ROOT_DIR/frameworks/native/include",
49    "$DHCP_ROOT_DIR/frameworks/native/interfaces",
50    "$DHCP_ROOT_DIR/frameworks/native/src",
51    "$DHCP_ROOT_DIR/frameworks/native/c_adapter/inc",
52    "$DHCP_ROOT_DIR/interfaces",
53    "$DHCP_ROOT_DIR/interfaces/inner_api",
54    "$DHCP_ROOT_DIR/interfaces/inner_api/include",
55    "$DHCP_ROOT_DIR/interfaces/kits/c",
56    "$DHCP_ROOT_DIR/services",
57    "$DHCP_ROOT_DIR/services/dhcp_client/include",
58    "$DHCP_ROOT_DIR/services/dhcp_server/include",
59    "$DHCP_ROOT_DIR/services/utils/include",
60    "$DHCP_ROOT_DIR/test/unittest/services/dhcp_client",
61  ]
62
63  deps = [
64    "$DHCP_ROOT_DIR/services/utils:dhcp_utils",
65    "//third_party/googletest:gmock_main",
66    "//third_party/googletest:gtest_main",
67    "//third_party/openssl:libcrypto_shared",
68  ]
69
70  ldflags = [
71    "-fPIC",
72    "-Wl,-E",
73    "--coverage",
74    "-Wl,-rpath=/vendor/lib64/hw",
75    "-Wl,--wrap=open",
76    "-Wl,--wrap=close",
77    "-Wl,--wrap=write",
78    "-Wl,--wrap=read",
79    "-Wl,--wrap=socket",
80    "-Wl,--wrap=setsockopt",
81    "-Wl,--wrap=ioctl",
82    "-Wl,--wrap=bind",
83    "-Wl,--wrap=listen",
84    "-Wl,--wrap=connect",
85    "-Wl,--wrap=select",
86    "-Wl,--wrap=sendto",
87    "-Wl,--wrap=socketpair",
88    "-Wl,--wrap=GetDhcpRawPacket",
89    "-Wl,--wrap=GetDhcpKernelPacket",
90    "-Wl,--wrap=GetSelectRet",
91  ]
92
93  cflags_cc = [ "-Wno-unused-variable" ]
94
95  external_deps = [
96    "ability_runtime:wantagent_innerkits",
97    "access_token:libaccesstoken_sdk",
98    "access_token:libtokenid_sdk",
99    "c_utils:utils",
100    "hilog:libhilog",
101    "ipc:ipc_single",
102    "netmanager_base:net_native_manager_if",
103    "netmanager_base:netsys_controller",
104    "safwk:system_ability_fwk",
105    "samgr:samgr_proxy",
106    "time_service:time_client",
107  ]
108
109  defines = [
110    "private = public",
111    "protected = public",
112    "VENDOR_NAME_PREFIX=\"$VENDOR_NAME\"",
113    "DEFAULT_IPV4_DNS_PRI=\"$IPV4_DNS_PRI\"",
114    "DEFAULT_IPV4_DNS_SEC=\"$IPV4_DNS_SEC\"",
115  ]
116
117  if (defined(global_parts_info) &&
118      defined(global_parts_info.resourceschedule_ffrt)) {
119    external_deps += [ "ffrt:libffrt" ]
120    defines += [ "DHCP_FFRT_ENABLE" ]
121  }
122
123  part_name = "dhcp"
124  subsystem_name = "communication"
125  testonly = true
126}
127