1# Copyright (c) 2021 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.
13import("//build/test.gni")
14import("//foundation/distributeddatamgr/datamgr_service/datamgr_service.gni")
15
16module_output_path = "datamgr_service/distributeddataservice"
17
18###############################################################################
19config("module_private_config") {
20  visibility = [ ":*" ]
21  include_dirs = [
22    "${kv_store_path}/frameworks/innerkitsimpl/distributeddatasvc/include",
23    "${kv_store_path}/frameworks/common",
24    "${kv_store_path}/frameworks/innerkitsimpl/distributeddatafwk/include",
25    "${kv_store_path}/frameworks/innerkitsimpl/distributeddatafwk/src",
26    "${kv_store_path}/frameworks/innerkitsimpl/kvdb/include",
27    "${kv_store_path}/interfaces/innerkits/distributeddata/include",
28    "${data_service_path}/adapter/include/permission",
29    "${data_service_path}/adapter/include/account",
30    "${data_service_path}/adapter/include",
31    "${data_service_path}/adapter/include/dfx",
32    "${data_service_path}/adapter/include/broadcaster",
33    "${data_service_path}/adapter/include/utils",
34    "${data_service_path}/framework/include",
35    "${data_service_path}/service/bootstrap/include",
36    "${data_service_path}/service/common",
37    "${data_service_path}/service/config/include",
38    "${data_service_path}/service/crypto/include",
39    "${data_service_path}/service/directory/include",
40    "${data_service_path}/service/permission/include",
41    "${data_service_path}/service/matrix/include",
42    "${data_service_path}/service/waterversion",
43    "${data_service_path}/app/src/session_manager",
44    "${data_service_path}/service/kvdb",
45    "${device_manager_path}/interfaces/inner_kits/native_cpp/include",
46    "//commonlibrary/c_utils/base/include",
47    "//utils/system/safwk/native/include",
48    "../include",
49    "../src",
50    "../src/security",
51    "unittest",
52    "../src/installer",
53    "../src/flowctrl_manager",
54    "../../service/backup/include",
55    "../../../../interfaces/innerkits/distributeddata",
56    "../../service/dumper/include",
57    "//third_party/json/single_include",
58  ]
59
60  if (datamgr_service_power) {
61    include_dirs +=
62        [ "//base/powermgr/power_manager/interfaces/innerkits/native/include" ]
63  }
64  ldflags = [ "-Wl,--whole-archive" ]
65  defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ]
66}
67
68ohos_unittest("KvStoreDataServiceTest") {
69  module_out_path = module_output_path
70  sources = [
71    "${data_service_path}/service/common/xcollie.cpp",
72    "../src/db_info_handle_impl.cpp",
73    "../src/feature_stub_impl.cpp",
74    "../src/kvstore_account_observer.cpp",
75    "../src/kvstore_data_service.cpp",
76    "../src/kvstore_data_service_stub.cpp",
77    "../src/kvstore_device_listener.cpp",
78    "../src/kvstore_meta_manager.cpp",
79    "../src/security/security.cpp",
80    "../src/security/sensitive.cpp",
81    "../src/session_manager/route_head_handler_impl.cpp",
82    "../src/session_manager/session_manager.cpp",
83    "../src/session_manager/upgrade_manager.cpp",
84    "../src/task_manager.cpp",
85    "unittest/kvstore_data_service_test.cpp",
86  ]
87
88  configs = [ ":module_private_config" ]
89
90  external_deps = [
91    "access_token:libaccesstoken_sdk",
92    "c_utils:utils",
93    "dataclassification:data_transit_mgr",
94    "device_auth:deviceauth_sdk",
95    "file_api:securitylabel",
96    "hicollie:libhicollie",
97    "hilog:libhilog",
98    "hisysevent:libhisysevent",
99    "hitrace:hitrace_meter",
100    "hitrace:libhitracechain",
101    "ipc:ipc_core",
102    "memmgr:memmgrclient",
103    "safwk:system_ability_fwk",
104    "samgr:samgr_proxy",
105  ]
106
107  if (datamgr_service_power) {
108    external_deps += [
109      "battery_manager:batterysrv_client",
110      "power_manager:powermgr_client",
111    ]
112  }
113
114  cflags = [
115    "-Dprivate=public",
116    "-Dprotected=public",
117  ]
118
119  deps = [
120    "${data_service_path}/adapter:distributeddata_adapter",
121    "${data_service_path}/adapter/broadcaster:distributeddata_broadcaster_static",
122    "${data_service_path}/adapter/utils:distributeddata_utils_static",
123    "${data_service_path}/app/src/checker:distributeddata_checker_static",
124    "${data_service_path}/app/src/flowctrl_manager:distributeddata_flowctrl_static",
125    "${data_service_path}/app/src/installer:distributeddata_installer_static",
126    "${data_service_path}/framework:distributeddatasvcfwk",
127    "${data_service_path}/service:distributeddatasvc",
128    "${kv_store_path}/frameworks/libs/distributeddb:distributeddb",
129    "${kv_store_path}/interfaces/innerkits/distributeddata:distributeddata_inner",
130    "${kv_store_path}/interfaces/innerkits/distributeddatamgr:distributeddata_mgr",
131    "//third_party/googletest:gtest_main",
132  ]
133  part_name = "datamgr_service"
134}
135
136ohos_unittest("SessionManagerTest") {
137  module_out_path = module_output_path
138
139  sources = [
140    "../src/kvstore_meta_manager.cpp",
141    "../src/session_manager/route_head_handler_impl.cpp",
142    "../src/session_manager/session_manager.cpp",
143    "../src/session_manager/upgrade_manager.cpp",
144    "unittest/session_manager_test.cpp",
145  ]
146
147  sanitize = {
148    cfi = true
149    cfi_cross_dso = true
150    debug = false
151  }
152
153  cflags_cc = [ "-DUT_TEST" ]
154  configs = [ ":module_private_config" ]
155
156  external_deps = [
157    "access_token:libaccesstoken_sdk",
158    "access_token:libnativetoken",
159    "access_token:libtoken_setproc",
160    "c_utils:utils",
161    "dataclassification:data_transit_mgr",
162    "device_auth:deviceauth_sdk",
163    "file_api:securitylabel",
164    "hilog:libhilog",
165    "hisysevent:libhisysevent",
166    "ipc:ipc_core",
167    "safwk:system_ability_fwk",
168    "samgr:samgr_proxy",
169  ]
170
171  if (datamgr_service_power) {
172    external_deps += [
173      "battery_manager:batterysrv_client",
174      "power_manager:powermgr_client",
175    ]
176  }
177
178  deps = [
179    "${kv_store_path}/interfaces/innerkits/distributeddatamgr:distributeddata_mgr",
180    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/adapter:distributeddata_adapter",
181    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/adapter/broadcaster:distributeddata_broadcaster_static",
182    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/adapter/utils:distributeddata_utils_static",
183    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/app/src/checker:distributeddata_checker_static",
184    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/framework:distributeddatasvcfwk",
185    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/service:distributeddatasvc",
186    "//foundation/distributeddatamgr/kv_store/frameworks/libs/distributeddb:distributeddb",
187    "//foundation/distributeddatamgr/kv_store/interfaces/innerkits/distributeddata:distributeddata_inner",
188    "//third_party/googletest:gtest_main",
189  ]
190
191  part_name = "datamgr_service"
192}
193
194ohos_unittest("KvStoreFlowCtrlManagerTest") {
195  module_out_path = module_output_path
196  sources = [ "unittest/kvstore_flowctrl_manager_test.cpp" ]
197
198  configs = [ ":module_private_config" ]
199
200  external_deps = [
201    "access_token:libaccesstoken_sdk",
202    "c_utils:utils",
203    "dataclassification:data_transit_mgr",
204    "device_auth:deviceauth_sdk",
205    "file_api:securitylabel",
206    "hilog:libhilog",
207    "hisysevent:libhisysevent",
208    "ipc:ipc_core",
209    "safwk:system_ability_fwk",
210    "samgr:samgr_proxy",
211  ]
212
213  if (datamgr_service_power) {
214    external_deps += [
215      "battery_manager:batterysrv_client",
216      "power_manager:powermgr_client",
217    ]
218  }
219
220  deps = [
221    "${kv_store_path}/interfaces/innerkits/distributeddatamgr:distributeddata_mgr",
222    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/adapter:distributeddata_adapter",
223    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/app/src/flowctrl_manager:distributeddata_flowctrl_static",
224    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/framework:distributeddatasvcfwk",
225    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/service:distributeddatasvc",
226    "//foundation/distributeddatamgr/kv_store/interfaces/innerkits/distributeddata:distributeddata_inner",
227    "//third_party/googletest:gtest_main",
228  ]
229  part_name = "datamgr_service"
230}
231
232ohos_unittest("KvStoreDataServiceClearTest") {
233  module_out_path = module_output_path
234  sources = [
235    "${data_service_path}/app/src/db_info_handle_impl.cpp",
236    "${data_service_path}/app/src/feature_stub_impl.cpp",
237    "${data_service_path}/app/src/kvstore_account_observer.cpp",
238    "${data_service_path}/app/src/kvstore_data_service.cpp",
239    "${data_service_path}/app/src/kvstore_data_service_stub.cpp",
240    "${data_service_path}/app/src/kvstore_device_listener.cpp",
241    "${data_service_path}/app/src/kvstore_meta_manager.cpp",
242    "${data_service_path}/app/src/security/security.cpp",
243    "${data_service_path}/app/src/security/sensitive.cpp",
244    "${data_service_path}/app/src/session_manager/route_head_handler_impl.cpp",
245    "${data_service_path}/app/src/session_manager/session_manager.cpp",
246    "${data_service_path}/app/src/session_manager/upgrade_manager.cpp",
247    "${data_service_path}/app/src/task_manager.cpp",
248    "${data_service_path}/service/common/xcollie.cpp",
249    "unittest/kvstore_data_service_clear_test.cpp",
250  ]
251
252  sanitize = {
253    cfi = true
254    cfi_cross_dso = true
255    debug = false
256  }
257
258  configs = [ ":module_private_config" ]
259
260  external_deps = [
261    "access_token:libaccesstoken_sdk",
262    "access_token:libnativetoken",
263    "access_token:libtoken_setproc",
264    "access_token:libtokenid_sdk",
265    "c_utils:utils",
266    "dataclassification:data_transit_mgr",
267    "device_auth:deviceauth_sdk",
268    "file_api:securitylabel",
269    "hicollie:libhicollie",
270    "hilog:libhilog",
271    "hisysevent:libhisysevent",
272    "hitrace:hitrace_meter",
273    "hitrace:libhitracechain",
274    "ipc:ipc_core",
275    "kv_store:distributeddata_inner",
276    "kv_store:distributeddata_mgr",
277    "kv_store:distributeddb",
278    "memmgr:memmgrclient",
279    "safwk:system_ability_fwk",
280    "samgr:samgr_proxy",
281  ]
282
283  if (datamgr_service_power) {
284    external_deps += [
285      "battery_manager:batterysrv_client",
286      "power_manager:powermgr_client",
287    ]
288  }
289
290  deps = [
291    "${data_service_path}/adapter:distributeddata_adapter",
292    "${data_service_path}/adapter/broadcaster:distributeddata_broadcaster_static",
293    "${data_service_path}/adapter/utils:distributeddata_utils_static",
294    "${data_service_path}/app/src/checker:distributeddata_checker_static",
295    "${data_service_path}/app/src/flowctrl_manager:distributeddata_flowctrl_static",
296    "${data_service_path}/app/src/installer:distributeddata_installer_static",
297    "${data_service_path}/framework:distributeddatasvcfwk",
298    "${data_service_path}/service:distributeddatasvc",
299    "//third_party/googletest:gtest_main",
300  ]
301
302  part_name = "datamgr_service"
303}
304
305###############################################################################
306
307group("unittest") {
308  testonly = true
309  deps = []
310
311  deps += [
312    ":KvStoreDataServiceClearTest",
313    ":KvStoreDataServiceTest",
314    ":KvStoreFlowCtrlManagerTest",
315    ":SessionManagerTest",
316  ]
317}
318
319###############################################################################
320group("moduletest") {
321  testonly = true
322  deps = [
323    "//third_party/googletest:gmock",
324    "//third_party/googletest:gtest_main",
325    "//third_party/sqlite:sqlite",
326  ]
327
328  deps += [
329    #":DistributedDataAccountEventModuleTest",
330    #":DistributedDataFlowCtrlManagerTest",
331  ]
332}
333###############################################################################
334