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("../../../../common/config/common.gni")
16
17module_output_path = "enterprise_device_management/enterprise_device_management"
18
19config("module_private_config") {
20  visibility = [ ":*" ]
21  include_dirs = [ "../" ]
22}
23
24config("edm_config") {
25  visibility = [ ":*" ]
26  include_dirs = [
27    "../../../../services/edm/include",
28    "../../../../services/edm/include/connection",
29    "../../../../services/edm/include/database",
30    "../../../../services/edm/include/strategy",
31    "../../../../services/edm_plugin/include",
32    "../../../../services/edm_plugin/include/utils",
33    "../../../../framework/extension/include",
34  ]
35}
36
37ohos_static_library("edmservice_static") {
38  testonly = true
39  sources = [
40    "../../../../services/edm/src/admin.cpp",
41    "../../../../services/edm/src/admin_manager.cpp",
42    "../../../../services/edm/src/admin_policies_storage_rdb.cpp",
43    "../../../../services/edm/src/application_state_observer.cpp",
44    "../../../../services/edm/src/connection/enterprise_admin_connection.cpp",
45    "../../../../services/edm/src/connection/enterprise_admin_proxy.cpp",
46    "../../../../services/edm/src/connection/enterprise_bundle_connection.cpp",
47    "../../../../services/edm/src/connection/enterprise_conn_manager.cpp",
48    "../../../../services/edm/src/connection/enterprise_update_connection.cpp",
49    "../../../../services/edm/src/database/edm_rdb_data_manager.cpp",
50    "../../../../services/edm/src/database/edm_rdb_open_callback.cpp",
51    "../../../../services/edm/src/device_policies_storage_rdb.cpp",
52    "../../../../services/edm/src/enterprise_device_mgr_ability.cpp",
53    "../../../../services/edm/src/enterprise_device_mgr_stub.cpp",
54    "../../../../services/edm/src/permission_manager.cpp",
55    "../../../../services/edm/src/plugin_manager.cpp",
56    "../../../../services/edm/src/policy_manager.cpp",
57    "../../../../services/edm/src/strategy/enhance_execute_strategy.cpp",
58    "../../../../services/edm/src/strategy/replace_execute_strategy.cpp",
59    "../../../../services/edm/src/strategy/single_execute_strategy.cpp",
60    "../../../../services/edm/src/super_admin.cpp",
61    "../../../../services/edm/src/user_policy_manager.cpp",
62    "../../../../services/edm_plugin/src/utils/clipboard_policy_serializer.cpp",
63    "../../../../services/edm_plugin/src/utils/clipboard_utils.cpp",
64    "../../../../services/edm_plugin/src/utils/fingerprint_policy_serializer.cpp",
65    "../../../../services/edm_plugin/src/utils/password_policy_serializer.cpp",
66  ]
67
68  public_configs = [
69    ":edm_config",
70    "../../../../common/config:coverage_flags",
71  ]
72
73  defines = []
74
75  if (target_cpu == "arm64") {
76    defines += [ "_ARM64_" ]
77    print("defines _ARM64_")
78  }
79
80  if (target_cpu == "x86_64") {
81    defines += [ "_X86_64_" ]
82    print("defines _X86_64_")
83  }
84
85  if (common_event_service_edm_enable) {
86    defines += [ "COMMON_EVENT_SERVICE_EDM_ENABLE" ]
87  }
88
89  external_deps = [
90    "ability_base:want",
91    "ability_runtime:app_manager",
92    "ability_runtime:extension_manager",
93    "access_token:libaccesstoken_sdk",
94    "access_token:libtokenid_sdk",
95    "bundle_framework:appexecfwk_base",
96    "cJSON:cjson",
97    "c_utils:utils",
98    "common_event_service:cesfwk_innerkits",
99    "hilog:libhilog",
100    "init:libbegetutil",
101    "ipc:ipc_core",
102    "jsoncpp:jsoncpp",
103    "pasteboard:pasteboard_client",
104    "relational_store:native_rdb",
105    "safwk:system_ability_fwk",
106    "window_manager:sms",
107  ]
108
109  if (os_account_edm_enable) {
110    external_deps += [
111      "os_account:libaccountkits",
112      "os_account:os_account_innerkits",
113    ]
114  }
115
116  deps = [
117    "../../../../common/external:edm_external_adapters",
118    "../../../../common/native:edm_commom",
119    "../../../../interfaces/inner_api:edmservice_kits",
120    "../../../../interfaces/inner_api/plugin_kits:plugin_kits",
121  ]
122
123  sanitize = {
124    boundary_sanitize = true
125    cfi = true
126    cfi_cross_dso = true
127    debug = false
128    integer_overflow = true
129    ubsan = true
130  }
131  branch_protector_ret = "pac_ret"
132  subsystem_name = "customization"
133  part_name = "enterprise_device_management"
134}
135
136ohos_unittest("EdmServicesUnitTest") {
137  module_out_path = module_output_path
138
139  include_dirs = [
140    "./include",
141    "./include/mock",
142    "../../common/mock/include",
143    "../../external_mock/include",
144    "../../../../interfaces/inner_api/plugin_kits/include/utils",
145  ]
146
147  sources = [
148    "./src/admin_manager_test.cpp",
149    "./src/admin_test.cpp",
150    "./src/device_policies_storage_rdb_test.cpp",
151    "./src/enhance_execute_strategy_test.cpp",
152    "./src/enterprise_admin_connection_test.cpp",
153    "./src/enterprise_bundle_connection_test.cpp",
154    "./src/enterprise_conn_manager_test.cpp",
155    "./src/enterprise_device_mgr_ability_test.cpp",
156    "./src/enterprise_update_connection_test.cpp",
157    "./src/iplugin_template_test.cpp",
158    "./src/permission_manager_test.cpp",
159    "./src/plugin_manager_test.cpp",
160    "./src/policy_manager_test.cpp",
161    "./src/replace_execute_strategy_test.cpp",
162    "./src/single_execute_strategy_test.cpp",
163    "./src/user_policy_manager_test.cpp",
164  ]
165
166  defines = []
167  if (common_event_service_edm_enable) {
168    defines += [ "COMMON_EVENT_SERVICE_EDM_ENABLE" ]
169  }
170
171  configs = [
172    ":module_private_config",
173    "../../../../common/config:coverage_flags",
174  ]
175
176  deps = [
177    ":edmservice_static",
178    "../../../../common/external:edm_external_adapters",
179    "../../../../common/native:edm_commom",
180    "../../../../interfaces/inner_api:edmservice_kits",
181    "../../../../interfaces/inner_api/plugin_kits:plugin_kits",
182    "../../utils:edm_unittest_utils",
183    "//third_party/googletest:gmock_main",
184  ]
185
186  external_deps = [
187    "ability_base:want",
188    "ability_runtime:ability_manager",
189    "access_token:libaccesstoken_sdk",
190    "access_token:libnativetoken",
191    "access_token:libtoken_setproc",
192    "bundle_framework:appexecfwk_core",
193    "cJSON:cjson",
194    "c_utils:utils",
195    "common_event_service:cesfwk_innerkits",
196    "hilog:libhilog",
197    "ipc:ipc_core",
198    "jsoncpp:jsoncpp",
199    "safwk:system_ability_fwk",
200    "samgr:samgr_proxy",
201    "window_manager:sms",
202  ]
203
204  if (os_account_edm_enable) {
205    external_deps += [
206      "os_account:libaccountkits",
207      "os_account:os_account_innerkits",
208    ]
209    defines += [ "OS_ACCOUNT_EDM_ENABLE" ]
210  }
211
212  sanitize = {
213    boundary_sanitize = true
214    cfi = true
215    cfi_cross_dso = true
216    debug = false
217    integer_overflow = true
218    ubsan = true
219    blocklist = "../../cfi_blocklist.txt"
220  }
221  branch_protector_ret = "pac_ret"
222  subsystem_name = "customization"
223  part_name = "enterprise_device_management"
224}
225
226group("unittest") {
227  testonly = true
228
229  deps = [
230    # deps file
231    ":EdmServicesUnitTest",
232  ]
233}
234