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("//foundation/filemanagement/storage_service/storage_service_aafwk.gni")
16
17ROOT_DIR = "${storage_daemon_path}"
18
19ohos_unittest("storage_daemon_test") {
20  branch_protector_ret = "pac_ret"
21  sanitize = {
22    integer_overflow = true
23    cfi = true
24    cfi_cross_dso = true
25    debug = false
26  }
27  module_out_path = "storage_service/storage_daemon"
28
29  defines = [
30    "STORAGE_LOG_TAG = \"StorageDaemon\"",
31    "LOG_DOMAIN = 0xD004301",
32  ]
33
34  if (storage_service_user_crypto_manager) {
35    defines += [ "USER_CRYPTO_MANAGER" ]
36  }
37
38  if (storage_service_external_storage_manager) {
39    defines += [ "EXTERNAL_STORAGE_MANAGER" ]
40  }
41
42  cflags_cc = [ "-Wno-unused-const-variable" ]
43
44  include_dirs = [
45    "$ROOT_DIR/include",
46    "$ROOT_DIR/include/crypto",
47    "$ROOT_DIR/utils",
48    "$ROOT_DIR/../storage_manager/include",
49    "${storage_daemon_path}/include/utils",
50    "${storage_interface_path}/innerkits/storage_manager/native",
51    "${storage_service_common_path}/include",
52  ]
53
54  sources = [
55    "$ROOT_DIR/crypto/src/app_clone_key_manager.cpp",
56    "$ROOT_DIR/crypto/test/key_manager_mock.cpp",
57    "$ROOT_DIR/disk/src/disk_config.cpp",
58    "$ROOT_DIR/disk/src/disk_info.cpp",
59    "$ROOT_DIR/disk/src/disk_manager.cpp",
60    "$ROOT_DIR/ipc/src/storage_daemon.cpp",
61    "$ROOT_DIR/ipc/src/storage_daemon_stub.cpp",
62    "$ROOT_DIR/ipc/src/storage_manager_client.cpp",
63    "$ROOT_DIR/ipc/test/storage_daemon_test.cpp",
64    "$ROOT_DIR/quota/quota_manager.cpp",
65    "$ROOT_DIR/user/src/mount_manager.cpp",
66    "$ROOT_DIR/user/src/user_manager.cpp",
67    "$ROOT_DIR/utils/test/common/help_utils.cpp",
68    "$ROOT_DIR/volume/src/external_volume_info.cpp",
69    "$ROOT_DIR/volume/src/process.cpp",
70    "$ROOT_DIR/volume/src/volume_info.cpp",
71    "$ROOT_DIR/volume/src/volume_manager.cpp",
72  ]
73
74  deps = [
75    "${storage_daemon_path}:storage_common_utils",
76    "//third_party/googletest:gtest_main",
77  ]
78
79  external_deps = [
80    "ability_base:base",
81    "ability_base:want",
82    "ability_base:zuri",
83    "access_token:libaccesstoken_sdk",
84    "app_file_service:fileshare_native",
85    "app_file_service:fileuri_native",
86    "app_file_service:sandbox_helper_native",
87    "bundle_framework:appexecfwk_core",
88    "c_utils:utils",
89    "dfs_service:cloud_daemon_kit_inner",
90    "eventhandler:libeventhandler",
91    "hilog:libhilog",
92    "hisysevent:libhisysevent",
93    "huks:libhukssdk",
94    "init:libbegetutil",
95    "ipc:ipc_single",
96    "ipc:libdbinder",
97    "safwk:system_ability_fwk",
98    "samgr:samgr_proxy",
99  ]
100
101  if (enable_user_auth_framework) {
102    defines += [ "USER_AUTH_FRAMEWORK" ]
103    external_deps += [ "user_auth_framework:userauth_client" ]
104  }
105
106  use_exceptions = true
107}
108
109ohos_unittest("storage_daemon_proxy_test") {
110  branch_protector_ret = "pac_ret"
111  sanitize = {
112    integer_overflow = true
113    cfi = true
114    cfi_cross_dso = true
115    debug = false
116    blocklist = "${storage_service_path}/cfi_blocklist.txt"
117  }
118  module_out_path = "storage_service/storage_daemon"
119
120  defines = [
121    "STORAGE_LOG_TAG = \"StorageDaemon\"",
122    "LOG_DOMAIN = 0xD004301",
123  ]
124
125  include_dirs = [
126    "$ROOT_DIR/include",
127    "${storage_service_common_path}/include",
128  ]
129
130  sources = [
131    "$ROOT_DIR/ipc/src/storage_daemon_proxy.cpp",
132    "$ROOT_DIR/ipc/test/storage_daemon_proxy_test.cpp",
133  ]
134
135  deps = [
136    "//third_party/googletest:gmock_main",
137    "//third_party/googletest:gtest_main",
138  ]
139
140  external_deps = [
141    "c_utils:utils",
142    "hilog:libhilog",
143    "ipc:ipc_single",
144    "ipc:libdbinder",
145    "safwk:system_ability_fwk",
146    "samgr:samgr_proxy",
147  ]
148}
149
150ohos_unittest("storage_daemon_stub_test") {
151  branch_protector_ret = "pac_ret"
152  sanitize = {
153    integer_overflow = true
154    cfi = true
155    cfi_cross_dso = true
156    debug = false
157    blocklist = "${storage_service_path}/cfi_blocklist.txt"
158  }
159  module_out_path = "storage_service/storage_daemon"
160
161  defines = [
162    "STORAGE_LOG_TAG = \"StorageDaemon\"",
163    "LOG_DOMAIN = 0xD004301",
164    "private = public",
165  ]
166
167  if (storage_service_user_crypto_manager) {
168    defines += [ "USER_CRYPTO_MANAGER" ]
169  }
170
171  include_dirs = [
172    "$ROOT_DIR/include",
173    "$ROOT_DIR/ipc/test/",
174    "${storage_service_common_path}/include",
175  ]
176
177  sources = [
178    "$ROOT_DIR/ipc/src/storage_daemon_proxy.cpp",
179    "$ROOT_DIR/ipc/src/storage_daemon_stub.cpp",
180    "$ROOT_DIR/ipc/test/storage_daemon_stub_test.cpp",
181    "$ROOT_DIR/user/src/user_manager.cpp",
182    "$ROOT_DIR/utils/mount_argument_utils.cpp",
183  ]
184
185  deps = [
186    "${storage_daemon_path}:storage_common_utils",
187    "//third_party/googletest:gmock_main",
188    "//third_party/googletest:gtest_main",
189  ]
190
191  external_deps = [
192    "access_token:libaccesstoken_sdk",
193    "bundle_framework:appexecfwk_core",
194    "c_utils:utils",
195    "hilog:libhilog",
196    "huks:libhukssdk",
197    "init:libbegetutil",
198    "ipc:ipc_single",
199    "ipc:libdbinder",
200    "safwk:system_ability_fwk",
201    "samgr:samgr_proxy",
202  ]
203
204  if (enable_user_auth_framework) {
205    defines += [ "USER_AUTH_FRAMEWORK" ]
206    external_deps += [ "user_auth_framework:userauth_client" ]
207  }
208}
209
210ohos_unittest("storage_manager_clt_test") {
211  branch_protector_ret = "pac_ret"
212  sanitize = {
213    integer_overflow = true
214    cfi = true
215    cfi_cross_dso = true
216    debug = false
217    blocklist = "${storage_service_path}/cfi_blocklist.txt"
218  }
219  module_out_path = "storage_service/storage_daemon"
220
221  sources = [
222    "${storage_daemon_path}/disk/src/disk_info.cpp",
223    "${storage_daemon_path}/ipc/src/storage_manager_client.cpp",
224    "${storage_daemon_path}/volume/src/external_volume_info.cpp",
225    "${storage_daemon_path}/volume/src/process.cpp",
226    "${storage_daemon_path}/volume/src/volume_info.cpp",
227    "${storage_manager_path}/innerkits_impl/src/disk.cpp",
228    "${storage_manager_path}/innerkits_impl/src/volume_core.cpp",
229    "${storage_manager_path}/innerkits_impl/src/volume_external.cpp",
230    "${storage_manager_path}/mock/storage_manager_proxy_mock.cpp",
231    "storage_manager_client_test.cpp",
232  ]
233
234  include_dirs = [
235    "${storage_daemon_path}/include",
236    "${storage_interface_path}/innerkits/storage_manager/native",
237    "${storage_manager_path}/include",
238    "${storage_service_common_path}/include",
239  ]
240
241  defines = [
242    "STORAGE_LOG_TAG = \"StorageDaemon\"",
243    "LOG_DOMAIN = 0xD004301",
244    "private = public",
245  ]
246
247  deps = [
248    "${storage_daemon_path}:storage_common_utils",
249    "//third_party/googletest:gtest_main",
250  ]
251
252  external_deps = [
253    "c_utils:utils",
254    "hilog:libhilog",
255    "init:libbegetutil",
256    "ipc:ipc_single",
257    "os_account:os_account_innerkits",
258    "safwk:system_ability_fwk",
259    "samgr:samgr_proxy",
260  ]
261}
262
263group("storage_daemon_ipc_test") {
264  testonly = true
265  deps = [
266    ":storage_daemon_proxy_test",
267    ":storage_daemon_stub_test",
268    ":storage_daemon_test",
269    ":storage_manager_clt_test",
270  ]
271}
272