1# Copyright (c) 2022 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("../../../../../os_account.gni")
16
17module_output_path = "os_account/services/account_iam"
18
19config("account_iam_native_config_unittest") {
20  visibility = [ ":*" ]
21
22  include_dirs = [
23    "include",
24    "${services_path}/accountmgr/include/account_iam",
25  ]
26
27  cflags = []
28  if (target_cpu == "arm") {
29    cflags += [ "-DBINDER_IPC_32BIT" ]
30  }
31
32  defines = [
33    "ACCOUNT_LOG_TAG = \"AccountIAMUTestFwk\"",
34    "LOG_DOMAIN = 0xD001B00",
35  ]
36}
37
38ohos_unittest("account_iam_service_test") {
39  branch_protector_ret = "pac_ret"
40
41  sanitize = {
42    cfi = true
43    cfi_cross_dso = true
44    debug = false
45  }
46
47  module_out_path = module_output_path
48
49  sources = [ "account_iam_service_test.cpp" ]
50
51  configs = [ ":account_iam_native_config_unittest" ]
52
53  deps = [
54    "${account_iam_framework_path}:account_iam_innerkits",
55    "${common_path}:libaccount_common",
56    "${services_path}/accountmgr:accountmgr",
57    "//third_party/googletest:gmock_main",
58    "//third_party/googletest:gtest_main",
59  ]
60
61  external_deps = [
62    "access_token:libaccesstoken_sdk",
63    "access_token:libtokensetproc_shared",
64    "c_utils:utils",
65    "hilog:libhilog",
66    "ipc:ipc_single",
67    "os_account:os_account_innerkits",
68  ]
69
70  cflags_cc = []
71  if (has_pin_auth_part) {
72    cflags_cc += [ "-DHAS_PIN_AUTH_PART" ]
73    external_deps += [ "pin_auth:pinauth_framework" ]
74  }
75
76  if (has_user_auth_part) {
77    cflags_cc += [ "-DHAS_USER_AUTH_PART" ]
78    external_deps += [ "user_auth_framework:userauth_client" ]
79  }
80}
81
82ohos_unittest("account_iam_stub_test") {
83  branch_protector_ret = "pac_ret"
84
85  sanitize = {
86    cfi = true
87    cfi_cross_dso = true
88    debug = false
89  }
90
91  module_out_path = module_output_path
92
93  sources = [
94    "${services_path}/accountmgr/src/account_iam/account_iam_mgr_stub.cpp",
95    "account_iam_stub_test.cpp",
96  ]
97
98  configs = [ ":account_iam_native_config_unittest" ]
99
100  deps = [
101    "${account_iam_framework_path}:account_iam_innerkits",
102    "${common_path}:libaccount_common",
103    "${services_path}/accountmgr:accountmgr",
104    "//third_party/googletest:gmock_main",
105    "//third_party/googletest:gtest_main",
106  ]
107
108  external_deps = [
109    "access_token:libaccesstoken_sdk",
110    "access_token:libtokensetproc_shared",
111    "c_utils:utils",
112    "hilog:libhilog",
113    "ipc:ipc_single",
114    "os_account:os_account_innerkits",
115  ]
116
117  cflags_cc = []
118  if (has_pin_auth_part) {
119    cflags_cc += [ "-DHAS_PIN_AUTH_PART" ]
120    external_deps += [ "pin_auth:pinauth_framework" ]
121  }
122
123  if (has_user_auth_part) {
124    cflags_cc += [ "-DHAS_USER_AUTH_PART" ]
125    external_deps += [ "user_auth_framework:userauth_client" ]
126  }
127}
128
129ohos_unittest("account_iam_callback_test") {
130  branch_protector_ret = "pac_ret"
131
132  sanitize = {
133    cfi = true
134    cfi_cross_dso = true
135    debug = false
136  }
137
138  module_out_path = module_output_path
139
140  sources = [
141    "${domain_account_framework_path}/test/moduletest/src/mock_domain_plugin.cpp",
142    "account_iam_callback_test.cpp",
143  ]
144
145  configs = [ ":account_iam_native_config_unittest" ]
146
147  deps = [
148    "${account_iam_framework_path}:account_iam_innerkits",
149    "${common_path}:libaccount_common",
150    "${domain_account_framework_path}:domain_account_innerkits",
151    "${os_account_core_path}:os_account_core",
152    "${os_account_innerkits_native_path}:os_account_innerkits",
153    "${services_path}/accountmgr:accountmgr",
154    "//third_party/googletest:gmock_main",
155    "//third_party/googletest:gtest_main",
156  ]
157
158  include_dirs = [
159    "${os_account_path}/frameworks/domain_account/test/moduletest/include/",
160    "${os_account_interfaces_native_path}/include/",
161  ]
162
163  external_deps = [
164    "access_token:libaccesstoken_sdk",
165    "access_token:libtokensetproc_shared",
166    "c_utils:utils",
167    "hilog:libhilog",
168    "ipc:ipc_single",
169  ]
170
171  cflags_cc = []
172  if (has_pin_auth_part) {
173    cflags_cc += [ "-DHAS_PIN_AUTH_PART" ]
174    external_deps += [ "pin_auth:pinauth_framework" ]
175  }
176
177  if (has_user_auth_part) {
178    cflags_cc += [ "-DHAS_USER_AUTH_PART" ]
179    external_deps += [ "user_auth_framework:userauth_client" ]
180  }
181}
182
183ohos_unittest("account_iam_manager_test") {
184  branch_protector_ret = "pac_ret"
185
186  sanitize = {
187    cfi = true
188    cfi_cross_dso = true
189    debug = false
190    blocklist = "${os_account_path}/cfi_blocklist.txt"
191  }
192
193  module_out_path = module_output_path
194
195  sources = [ "account_iam_manager_test.cpp" ]
196
197  configs = [
198    ":account_iam_native_config_unittest",
199    "${services_path}/accountmgr:account_iam_config",
200  ]
201
202  deps = [
203    "${account_iam_framework_path}:account_iam_innerkits",
204    "${common_path}:libaccount_common",
205    "${services_path}/accountmgr:accountmgr",
206    "//third_party/googletest:gmock_main",
207    "//third_party/googletest:gtest_main",
208  ]
209
210  cflags_cc = []
211  if (has_user_auth_part) {
212    cflags_cc += [ "-DHAS_USER_AUTH_PART" ]
213  }
214
215  external_deps = [
216    "access_token:libaccesstoken_sdk",
217    "access_token:libtokensetproc_shared",
218    "c_utils:utils",
219    "hilog:libhilog",
220    "init:libbegetutil",
221    "ipc:ipc_single",
222    "user_auth_framework:userauth_client",
223  ]
224
225  if (has_storage_service_part) {
226    cflags_cc += [ "-DHAS_STORAGE_PART" ]
227    external_deps += [ "storage_service:storage_manager_sa_proxy" ]
228  }
229
230  if (has_pin_auth_part) {
231    cflags_cc += [ "-DHAS_PIN_AUTH_PART" ]
232    external_deps += [ "pin_auth:pinauth_framework" ]
233  }
234}
235
236group("unittest") {
237  testonly = true
238  deps = []
239  if (!use_libfuzzer) {
240    deps += [
241      ":account_iam_callback_test",
242      ":account_iam_manager_test",
243      ":account_iam_service_test",
244      ":account_iam_stub_test",
245    ]
246  }
247}
248