1f7a47986Sopenharmony_ci# Copyright (c) 2022-2024 Huawei Device Co., Ltd.
2f7a47986Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3f7a47986Sopenharmony_ci# you may not use this file except in compliance with the License.
4f7a47986Sopenharmony_ci# You may obtain a copy of the License at
5f7a47986Sopenharmony_ci#
6f7a47986Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7f7a47986Sopenharmony_ci#
8f7a47986Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9f7a47986Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10f7a47986Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11f7a47986Sopenharmony_ci# See the License for the specific language governing permissions and
12f7a47986Sopenharmony_ci# limitations under the License.
13f7a47986Sopenharmony_ci
14f7a47986Sopenharmony_ciimport("//build/test.gni")
15f7a47986Sopenharmony_ciimport("../../../../common/config/common.gni")
16f7a47986Sopenharmony_ci
17f7a47986Sopenharmony_cimodule_output_path = "enterprise_device_management/enterprise_device_management"
18f7a47986Sopenharmony_ci
19f7a47986Sopenharmony_ciconfig("module_private_config") {
20f7a47986Sopenharmony_ci  visibility = [ ":*" ]
21f7a47986Sopenharmony_ci  include_dirs = [ "../" ]
22f7a47986Sopenharmony_ci}
23f7a47986Sopenharmony_ci
24f7a47986Sopenharmony_ciconfig("edm_config") {
25f7a47986Sopenharmony_ci  visibility = [ ":*" ]
26f7a47986Sopenharmony_ci  include_dirs = [
27f7a47986Sopenharmony_ci    "../../../../services/edm/include",
28f7a47986Sopenharmony_ci    "../../../../services/edm/include/connection",
29f7a47986Sopenharmony_ci    "../../../../services/edm/include/database",
30f7a47986Sopenharmony_ci    "../../../../services/edm/include/strategy",
31f7a47986Sopenharmony_ci    "../../../../services/edm_plugin/include",
32f7a47986Sopenharmony_ci    "../../../../services/edm_plugin/include/utils",
33f7a47986Sopenharmony_ci    "../../../../framework/extension/include",
34f7a47986Sopenharmony_ci  ]
35f7a47986Sopenharmony_ci}
36f7a47986Sopenharmony_ci
37f7a47986Sopenharmony_ciohos_static_library("edmservice_static") {
38f7a47986Sopenharmony_ci  testonly = true
39f7a47986Sopenharmony_ci  sources = [
40f7a47986Sopenharmony_ci    "../../../../services/edm/src/admin.cpp",
41f7a47986Sopenharmony_ci    "../../../../services/edm/src/admin_manager.cpp",
42f7a47986Sopenharmony_ci    "../../../../services/edm/src/admin_policies_storage_rdb.cpp",
43f7a47986Sopenharmony_ci    "../../../../services/edm/src/application_state_observer.cpp",
44f7a47986Sopenharmony_ci    "../../../../services/edm/src/connection/enterprise_admin_connection.cpp",
45f7a47986Sopenharmony_ci    "../../../../services/edm/src/connection/enterprise_admin_proxy.cpp",
46f7a47986Sopenharmony_ci    "../../../../services/edm/src/connection/enterprise_bundle_connection.cpp",
47f7a47986Sopenharmony_ci    "../../../../services/edm/src/connection/enterprise_conn_manager.cpp",
48f7a47986Sopenharmony_ci    "../../../../services/edm/src/connection/enterprise_update_connection.cpp",
49f7a47986Sopenharmony_ci    "../../../../services/edm/src/database/edm_rdb_data_manager.cpp",
50f7a47986Sopenharmony_ci    "../../../../services/edm/src/database/edm_rdb_open_callback.cpp",
51f7a47986Sopenharmony_ci    "../../../../services/edm/src/device_policies_storage_rdb.cpp",
52f7a47986Sopenharmony_ci    "../../../../services/edm/src/enterprise_device_mgr_ability.cpp",
53f7a47986Sopenharmony_ci    "../../../../services/edm/src/enterprise_device_mgr_stub.cpp",
54f7a47986Sopenharmony_ci    "../../../../services/edm/src/permission_manager.cpp",
55f7a47986Sopenharmony_ci    "../../../../services/edm/src/plugin_manager.cpp",
56f7a47986Sopenharmony_ci    "../../../../services/edm/src/policy_manager.cpp",
57f7a47986Sopenharmony_ci    "../../../../services/edm/src/strategy/enhance_execute_strategy.cpp",
58f7a47986Sopenharmony_ci    "../../../../services/edm/src/strategy/replace_execute_strategy.cpp",
59f7a47986Sopenharmony_ci    "../../../../services/edm/src/strategy/single_execute_strategy.cpp",
60f7a47986Sopenharmony_ci    "../../../../services/edm/src/super_admin.cpp",
61f7a47986Sopenharmony_ci    "../../../../services/edm/src/user_policy_manager.cpp",
62f7a47986Sopenharmony_ci    "../../../../services/edm_plugin/src/utils/clipboard_policy_serializer.cpp",
63f7a47986Sopenharmony_ci    "../../../../services/edm_plugin/src/utils/clipboard_utils.cpp",
64f7a47986Sopenharmony_ci    "../../../../services/edm_plugin/src/utils/fingerprint_policy_serializer.cpp",
65f7a47986Sopenharmony_ci    "../../../../services/edm_plugin/src/utils/password_policy_serializer.cpp",
66f7a47986Sopenharmony_ci  ]
67f7a47986Sopenharmony_ci
68f7a47986Sopenharmony_ci  public_configs = [
69f7a47986Sopenharmony_ci    ":edm_config",
70f7a47986Sopenharmony_ci    "../../../../common/config:coverage_flags",
71f7a47986Sopenharmony_ci  ]
72f7a47986Sopenharmony_ci
73f7a47986Sopenharmony_ci  defines = []
74f7a47986Sopenharmony_ci
75f7a47986Sopenharmony_ci  if (target_cpu == "arm64") {
76f7a47986Sopenharmony_ci    defines += [ "_ARM64_" ]
77f7a47986Sopenharmony_ci    print("defines _ARM64_")
78f7a47986Sopenharmony_ci  }
79f7a47986Sopenharmony_ci
80f7a47986Sopenharmony_ci  if (target_cpu == "x86_64") {
81f7a47986Sopenharmony_ci    defines += [ "_X86_64_" ]
82f7a47986Sopenharmony_ci    print("defines _X86_64_")
83f7a47986Sopenharmony_ci  }
84f7a47986Sopenharmony_ci
85f7a47986Sopenharmony_ci  if (common_event_service_edm_enable) {
86f7a47986Sopenharmony_ci    defines += [ "COMMON_EVENT_SERVICE_EDM_ENABLE" ]
87f7a47986Sopenharmony_ci  }
88f7a47986Sopenharmony_ci
89f7a47986Sopenharmony_ci  external_deps = [
90f7a47986Sopenharmony_ci    "ability_base:want",
91f7a47986Sopenharmony_ci    "ability_runtime:app_manager",
92f7a47986Sopenharmony_ci    "ability_runtime:extension_manager",
93f7a47986Sopenharmony_ci    "access_token:libaccesstoken_sdk",
94f7a47986Sopenharmony_ci    "access_token:libtokenid_sdk",
95f7a47986Sopenharmony_ci    "bundle_framework:appexecfwk_base",
96f7a47986Sopenharmony_ci    "cJSON:cjson",
97f7a47986Sopenharmony_ci    "c_utils:utils",
98f7a47986Sopenharmony_ci    "common_event_service:cesfwk_innerkits",
99f7a47986Sopenharmony_ci    "hilog:libhilog",
100f7a47986Sopenharmony_ci    "init:libbegetutil",
101f7a47986Sopenharmony_ci    "ipc:ipc_core",
102f7a47986Sopenharmony_ci    "jsoncpp:jsoncpp",
103f7a47986Sopenharmony_ci    "pasteboard:pasteboard_client",
104f7a47986Sopenharmony_ci    "relational_store:native_rdb",
105f7a47986Sopenharmony_ci    "safwk:system_ability_fwk",
106f7a47986Sopenharmony_ci    "window_manager:sms",
107f7a47986Sopenharmony_ci  ]
108f7a47986Sopenharmony_ci
109f7a47986Sopenharmony_ci  if (os_account_edm_enable) {
110f7a47986Sopenharmony_ci    external_deps += [
111f7a47986Sopenharmony_ci      "os_account:libaccountkits",
112f7a47986Sopenharmony_ci      "os_account:os_account_innerkits",
113f7a47986Sopenharmony_ci    ]
114f7a47986Sopenharmony_ci  }
115f7a47986Sopenharmony_ci
116f7a47986Sopenharmony_ci  deps = [
117f7a47986Sopenharmony_ci    "../../../../common/external:edm_external_adapters",
118f7a47986Sopenharmony_ci    "../../../../common/native:edm_commom",
119f7a47986Sopenharmony_ci    "../../../../interfaces/inner_api:edmservice_kits",
120f7a47986Sopenharmony_ci    "../../../../interfaces/inner_api/plugin_kits:plugin_kits",
121f7a47986Sopenharmony_ci  ]
122f7a47986Sopenharmony_ci
123f7a47986Sopenharmony_ci  sanitize = {
124f7a47986Sopenharmony_ci    boundary_sanitize = true
125f7a47986Sopenharmony_ci    cfi = true
126f7a47986Sopenharmony_ci    cfi_cross_dso = true
127f7a47986Sopenharmony_ci    debug = false
128f7a47986Sopenharmony_ci    integer_overflow = true
129f7a47986Sopenharmony_ci    ubsan = true
130f7a47986Sopenharmony_ci  }
131f7a47986Sopenharmony_ci  branch_protector_ret = "pac_ret"
132f7a47986Sopenharmony_ci  subsystem_name = "customization"
133f7a47986Sopenharmony_ci  part_name = "enterprise_device_management"
134f7a47986Sopenharmony_ci}
135f7a47986Sopenharmony_ci
136f7a47986Sopenharmony_ciohos_unittest("EdmServicesUnitTest") {
137f7a47986Sopenharmony_ci  module_out_path = module_output_path
138f7a47986Sopenharmony_ci
139f7a47986Sopenharmony_ci  include_dirs = [
140f7a47986Sopenharmony_ci    "./include",
141f7a47986Sopenharmony_ci    "./include/mock",
142f7a47986Sopenharmony_ci    "../../common/mock/include",
143f7a47986Sopenharmony_ci    "../../external_mock/include",
144f7a47986Sopenharmony_ci    "../../../../interfaces/inner_api/plugin_kits/include/utils",
145f7a47986Sopenharmony_ci  ]
146f7a47986Sopenharmony_ci
147f7a47986Sopenharmony_ci  sources = [
148f7a47986Sopenharmony_ci    "./src/admin_manager_test.cpp",
149f7a47986Sopenharmony_ci    "./src/admin_test.cpp",
150f7a47986Sopenharmony_ci    "./src/device_policies_storage_rdb_test.cpp",
151f7a47986Sopenharmony_ci    "./src/enhance_execute_strategy_test.cpp",
152f7a47986Sopenharmony_ci    "./src/enterprise_admin_connection_test.cpp",
153f7a47986Sopenharmony_ci    "./src/enterprise_bundle_connection_test.cpp",
154f7a47986Sopenharmony_ci    "./src/enterprise_conn_manager_test.cpp",
155f7a47986Sopenharmony_ci    "./src/enterprise_device_mgr_ability_test.cpp",
156f7a47986Sopenharmony_ci    "./src/enterprise_update_connection_test.cpp",
157f7a47986Sopenharmony_ci    "./src/iplugin_template_test.cpp",
158f7a47986Sopenharmony_ci    "./src/permission_manager_test.cpp",
159f7a47986Sopenharmony_ci    "./src/plugin_manager_test.cpp",
160f7a47986Sopenharmony_ci    "./src/policy_manager_test.cpp",
161f7a47986Sopenharmony_ci    "./src/replace_execute_strategy_test.cpp",
162f7a47986Sopenharmony_ci    "./src/single_execute_strategy_test.cpp",
163f7a47986Sopenharmony_ci    "./src/user_policy_manager_test.cpp",
164f7a47986Sopenharmony_ci  ]
165f7a47986Sopenharmony_ci
166f7a47986Sopenharmony_ci  defines = []
167f7a47986Sopenharmony_ci  if (common_event_service_edm_enable) {
168f7a47986Sopenharmony_ci    defines += [ "COMMON_EVENT_SERVICE_EDM_ENABLE" ]
169f7a47986Sopenharmony_ci  }
170f7a47986Sopenharmony_ci
171f7a47986Sopenharmony_ci  configs = [
172f7a47986Sopenharmony_ci    ":module_private_config",
173f7a47986Sopenharmony_ci    "../../../../common/config:coverage_flags",
174f7a47986Sopenharmony_ci  ]
175f7a47986Sopenharmony_ci
176f7a47986Sopenharmony_ci  deps = [
177f7a47986Sopenharmony_ci    ":edmservice_static",
178f7a47986Sopenharmony_ci    "../../../../common/external:edm_external_adapters",
179f7a47986Sopenharmony_ci    "../../../../common/native:edm_commom",
180f7a47986Sopenharmony_ci    "../../../../interfaces/inner_api:edmservice_kits",
181f7a47986Sopenharmony_ci    "../../../../interfaces/inner_api/plugin_kits:plugin_kits",
182f7a47986Sopenharmony_ci    "../../utils:edm_unittest_utils",
183f7a47986Sopenharmony_ci    "//third_party/googletest:gmock_main",
184f7a47986Sopenharmony_ci  ]
185f7a47986Sopenharmony_ci
186f7a47986Sopenharmony_ci  external_deps = [
187f7a47986Sopenharmony_ci    "ability_base:want",
188f7a47986Sopenharmony_ci    "ability_runtime:ability_manager",
189f7a47986Sopenharmony_ci    "access_token:libaccesstoken_sdk",
190f7a47986Sopenharmony_ci    "access_token:libnativetoken",
191f7a47986Sopenharmony_ci    "access_token:libtoken_setproc",
192f7a47986Sopenharmony_ci    "bundle_framework:appexecfwk_core",
193f7a47986Sopenharmony_ci    "cJSON:cjson",
194f7a47986Sopenharmony_ci    "c_utils:utils",
195f7a47986Sopenharmony_ci    "common_event_service:cesfwk_innerkits",
196f7a47986Sopenharmony_ci    "hilog:libhilog",
197f7a47986Sopenharmony_ci    "ipc:ipc_core",
198f7a47986Sopenharmony_ci    "jsoncpp:jsoncpp",
199f7a47986Sopenharmony_ci    "safwk:system_ability_fwk",
200f7a47986Sopenharmony_ci    "samgr:samgr_proxy",
201f7a47986Sopenharmony_ci    "window_manager:sms",
202f7a47986Sopenharmony_ci  ]
203f7a47986Sopenharmony_ci
204f7a47986Sopenharmony_ci  if (os_account_edm_enable) {
205f7a47986Sopenharmony_ci    external_deps += [
206f7a47986Sopenharmony_ci      "os_account:libaccountkits",
207f7a47986Sopenharmony_ci      "os_account:os_account_innerkits",
208f7a47986Sopenharmony_ci    ]
209f7a47986Sopenharmony_ci    defines += [ "OS_ACCOUNT_EDM_ENABLE" ]
210f7a47986Sopenharmony_ci  }
211f7a47986Sopenharmony_ci
212f7a47986Sopenharmony_ci  sanitize = {
213f7a47986Sopenharmony_ci    boundary_sanitize = true
214f7a47986Sopenharmony_ci    cfi = true
215f7a47986Sopenharmony_ci    cfi_cross_dso = true
216f7a47986Sopenharmony_ci    debug = false
217f7a47986Sopenharmony_ci    integer_overflow = true
218f7a47986Sopenharmony_ci    ubsan = true
219f7a47986Sopenharmony_ci    blocklist = "../../cfi_blocklist.txt"
220f7a47986Sopenharmony_ci  }
221f7a47986Sopenharmony_ci  branch_protector_ret = "pac_ret"
222f7a47986Sopenharmony_ci  subsystem_name = "customization"
223f7a47986Sopenharmony_ci  part_name = "enterprise_device_management"
224f7a47986Sopenharmony_ci}
225f7a47986Sopenharmony_ci
226f7a47986Sopenharmony_cigroup("unittest") {
227f7a47986Sopenharmony_ci  testonly = true
228f7a47986Sopenharmony_ci
229f7a47986Sopenharmony_ci  deps = [
230f7a47986Sopenharmony_ci    # deps file
231f7a47986Sopenharmony_ci    ":EdmServicesUnitTest",
232f7a47986Sopenharmony_ci  ]
233f7a47986Sopenharmony_ci}
234