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("../../../../device_status.gni")
16
17module_output_path = "${device_status_part_name}/unit_out"
18
19config("module_private_config") {
20  visibility = [ ":*" ]
21
22  include_dirs = [
23    "include",
24    "${device_status_root_path}/libs/interface",
25    "${device_status_root_path}/interfaces/innerkits/interaction/include",
26    "${device_status_service_path}/delegate_task/include",
27    "${device_status_service_path}/communication/service/include",
28    "${device_status_service_path}/interaction/drag/src/include",
29    "${device_status_service_path}/device_manager/include",
30    "${device_status_utils_path}/include",
31    "${device_status_service_path}/communication/base",
32  ]
33}
34
35ohos_unittest("IntentionServiceTest") {
36  sanitize = {
37    integer_overflow = true
38    ubsan = true
39    boundary_sanitize = true
40    cfi = true
41    cfi_cross_dso = true
42    debug = false
43  }
44
45  defines = device_status_default_defines
46
47  module_out_path = module_output_path
48  include_dirs = [ "${device_status_interfaces_path}/innerkits/include" ]
49
50  sources = [ "src/intention_service_test.cpp" ]
51
52  cflags = [ "-Dprivate=public" ]
53
54  configs = [
55    "${device_status_service_path}/interaction/drag:interaction_drag_public_config",
56    ":module_private_config",
57  ]
58
59  deps = [
60    "${device_status_root_path}/intention/data:intention_data",
61    "${device_status_root_path}/intention/drag/data:intention_drag_data",
62    "${device_status_root_path}/intention/drag/server:intention_drag_server",
63    "${device_status_root_path}/intention/prototype:intention_prototype",
64    "${device_status_root_path}/intention/scheduler/timer_manager:intention_timer_manager",
65    "${device_status_root_path}/intention/services/intention_service:intention_service",
66    "${device_status_root_path}/services:devicestatus_static_service",
67    "${device_status_root_path}/utils/common:devicestatus_util",
68    "${device_status_root_path}/utils/ipc:devicestatus_ipc",
69  ]
70
71  if (device_status_intention_framework) {
72    deps += [
73      "${device_status_root_path}/intention/adapters/dsoftbus_adapter:intention_dsoftbus_adapter",
74      "${device_status_root_path}/intention/adapters/input_adapter:intention_input_adapter",
75      "${device_status_root_path}/intention/scheduler/plugin_manager:intention_plugin_manager",
76    ]
77  }
78
79  external_deps = [
80    "ability_runtime:app_manager",
81    "access_token:libaccesstoken_sdk",
82    "cJSON:cjson",
83    "c_utils:utils",
84    "device_manager:devicemanagersdk",
85    "googletest:gtest_main",
86    "graphic_2d:libcomposer",
87    "graphic_2d:librender_service_base",
88    "graphic_2d:librender_service_client",
89    "graphic_2d:window_animation",
90    "hilog:libhilog",
91    "image_framework:image_native",
92    "input:libmmi-client",
93    "window_manager:libdm",
94    "window_manager:libwmutil_base",
95  ]
96}
97
98ohos_unittest("MonitorTest") {
99  module_out_path = module_output_path
100
101  include_dirs = [
102    "${device_status_root_path}/intention/services/device_manager/include",
103    "${device_status_root_path}/libs/interface",
104    "${device_status_service_path}/communication/service/include",
105  ]
106
107  sources = [ "src/monitor_test.cpp" ]
108
109  cflags = [
110    "-Dprivate=public",
111    "-Dprotected=public",
112  ]
113
114  deps = [
115    "${device_status_interfaces_path}/innerkits:devicestatus_client",
116    "${device_status_root_path}/intention/prototype:intention_prototype",
117    "${device_status_root_path}/services:devicestatus_static_service",
118    "${device_status_root_path}/utils/ipc:devicestatus_ipc",
119    "${device_status_utils_path}:devicestatus_util",
120  ]
121
122  external_deps = [
123    "access_token:libaccesstoken_sdk",
124    "c_utils:utils",
125    "graphic_2d:librender_service_client",
126    "hilog:libhilog",
127    "input:libmmi-client",
128    "window_manager:libdm",
129  ]
130}
131
132ohos_unittest("EnumeratorTest") {
133  sanitize = {
134    cfi = true
135    cfi_cross_dso = true
136    debug = false
137    blocklist = "./../../ipc_blocklist.txt"
138  }
139
140  module_out_path = module_output_path
141
142  include_dirs = [
143    "${device_status_root_path}/intention/services/device_manager/include",
144    "${device_status_root_path}/libs/interface",
145    "${device_status_service_path}/communication/service/include",
146  ]
147
148  sources = [ "src/enumerator_test.cpp" ]
149
150  cflags = [
151    "-Dprivate=public",
152    "-Dprotected=public",
153  ]
154
155  deps = [
156    "${device_status_interfaces_path}/innerkits:devicestatus_client",
157    "${device_status_root_path}/intention/prototype:intention_prototype",
158    "${device_status_root_path}/services:devicestatus_static_service",
159    "${device_status_root_path}/utils/ipc:devicestatus_ipc",
160    "${device_status_utils_path}:devicestatus_util",
161  ]
162
163  external_deps = [
164    "access_token:libaccesstoken_sdk",
165    "c_utils:utils",
166    "graphic_2d:librender_service_client",
167    "hilog:libhilog",
168    "input:libmmi-client",
169    "window_manager:libdm",
170  ]
171}
172
173ohos_unittest("DeviceTest") {
174  sanitize = {
175    cfi = true
176    cfi_cross_dso = true
177    debug = false
178    blocklist = "./../../ipc_blocklist.txt"
179  }
180
181  module_out_path = module_output_path
182  include_dirs = [
183    "${device_status_root_path}/intention/services/device_manager/include",
184    "${device_status_root_path}/libs/interface",
185    "${device_status_service_path}/communication/service/include",
186  ]
187  sources = [ "src/device_test.cpp" ]
188
189  cflags = [
190    "-Dprivate=public",
191    "-Dprotected=public",
192  ]
193
194  deps = [
195    "${device_status_interfaces_path}/innerkits:devicestatus_client",
196    "${device_status_root_path}/intention/prototype:intention_prototype",
197    "${device_status_root_path}/services:devicestatus_static_service",
198    "${device_status_root_path}/utils/ipc:devicestatus_ipc",
199    "${device_status_utils_path}:devicestatus_util",
200  ]
201
202  external_deps = [
203    "access_token:libaccesstoken_sdk",
204    "c_utils:utils",
205    "graphic_2d:librender_service_client",
206    "hilog:libhilog",
207    "input:libmmi-client",
208    "window_manager:libdm",
209  ]
210}
211
212ohos_unittest("IntentionDeviceManagerTest") {
213  sanitize = {
214    cfi = true
215    cfi_cross_dso = true
216    debug = false
217    blocklist = "./../../ipc_blocklist.txt"
218  }
219
220  module_out_path = module_output_path
221
222  include_dirs = [
223    "include",
224    "${device_status_interfaces_path}/innerkits/interaction/include",
225    "${intention_root_path}/services/device_manager/include",
226    "${device_status_utils_path}",
227    "${device_status_utils_path}/include",
228    "${device_status_root_path}/services/native/include",
229    "${device_status_root_path}/services/delegate_task/include",
230    "${device_status_interfaces_path}/innerkits/include",
231    "${device_status_root_path}/libs/interface",
232    "${device_status_service_path}/communication/service/include",
233    "${device_status_service_path}/communication/base",
234    "${device_status_service_path}/interaction/drag/include",
235    "${intention_root_path}/scheduler/timer_manager/include",
236  ]
237
238  sources = [ "src/device_manager_test.cpp" ]
239
240  cflags = [
241    "-Dprivate=public",
242    "-Dprotected=public",
243  ]
244
245  deps = [
246    "${device_status_root_path}/intention/cooperate/plugin:intention_cooperate",
247    "${device_status_root_path}/intention/prototype:intention_prototype",
248    "${device_status_root_path}/intention/scheduler/timer_manager:intention_timer_manager",
249    "${device_status_root_path}/intention/services/device_manager:intention_device_manager",
250    "${device_status_root_path}/services:devicestatus_service",
251    "${device_status_root_path}/services:devicestatus_static_service",
252    "${device_status_root_path}/services/interaction/drag:interaction_drag",
253    "${device_status_root_path}/utils/common:devicestatus_util",
254    "${device_status_root_path}/utils/ipc:devicestatus_ipc",
255  ]
256
257  external_deps = [
258    "ability_runtime:app_manager",
259    "access_token:libaccesstoken_sdk",
260    "cJSON:cjson",
261    "c_utils:utils",
262    "googletest:gtest_main",
263    "graphic_2d:librender_service_base",
264    "graphic_2d:librender_service_client",
265    "graphic_2d:window_animation",
266    "hilog:libhilog",
267    "hisysevent:libhisysevent",
268    "input:libmmi-client",
269    "ipc:ipc_single",
270    "window_manager:libdm",
271    "window_manager:libwm",
272  ]
273}
274
275group("unittest") {
276  testonly = true
277  deps = []
278  if (device_status_intention_framework) {
279    deps += [
280      ":DeviceTest",
281      ":EnumeratorTest",
282      ":IntentionDeviceManagerTest",
283      ":IntentionServiceTest",
284      ":MonitorTest",
285    ]
286  }
287}
288