• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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("//base/startup/init/begetd.gni")
14import("//build/test.gni")
15
16config("utest_config") {
17  visibility = [ ":*" ]
18
19  cflags = [
20    "-Wno-implicit-fallthrough",
21    "-Wno-unused-function",
22  ]
23  cflags_cc = [
24    "-Wno-implicit-fallthrough",
25    "-fexceptions",
26  ]
27}
28
29FSCRYPT_PATH =
30    "//foundation/filemanagement/storage_service/services/storage_daemon"
31
32ohos_unittest("init_unittest") {
33  module_out_path = "startup/init"
34  sources = [
35    "//base/startup/init/device_info/device_info.cpp",
36    "//base/startup/init/device_info/device_info_stub.cpp",
37    "//base/startup/init/interfaces/innerkits/control_fd/control_fd_client.c",
38    "//base/startup/init/interfaces/innerkits/control_fd/control_fd_service.c",
39    "//base/startup/init/interfaces/innerkits/fd_holder/fd_holder.c",
40    "//base/startup/init/interfaces/innerkits/fd_holder/fd_holder_internal.c",
41    "//base/startup/init/interfaces/innerkits/file/init_file.c",
42    "//base/startup/init/interfaces/innerkits/fs_manager/fstab.c",
43    "//base/startup/init/interfaces/innerkits/fs_manager/fstab_mount.c",
44    "//base/startup/init/interfaces/innerkits/reboot/init_reboot_innerkits.c",
45    "//base/startup/init/interfaces/innerkits/sandbox/sandbox.c",
46    "//base/startup/init/interfaces/innerkits/sandbox/sandbox_namespace.c",
47    "//base/startup/init/interfaces/innerkits/socket/init_socket.c",
48    "//base/startup/init/interfaces/innerkits/syspara/param_comm.c",
49    "//base/startup/init/interfaces/innerkits/syspara/parameter.c",
50    "//base/startup/init/interfaces/innerkits/syspara/sysversion.c",
51    "//base/startup/init/services/begetctl/bootchart_cmd.c",
52    "//base/startup/init/services/begetctl/dump_service.c",
53    "//base/startup/init/services/begetctl/init_cmd_reboot.c",
54    "//base/startup/init/services/begetctl/misc_daemon.cpp",
55    "//base/startup/init/services/begetctl/modulectl.c",
56    "//base/startup/init/services/begetctl/param_cmd.c",
57    "//base/startup/init/services/begetctl/sandbox.cpp",
58    "//base/startup/init/services/begetctl/service_control.c",
59    "//base/startup/init/services/begetctl/setloglevel.c",
60    "//base/startup/init/services/begetctl/shell/shell_bas.c",
61    "//base/startup/init/services/begetctl/shell/shell_main.c",
62    "//base/startup/init/services/init/adapter/init_adapter.c",
63    "//base/startup/init/services/init/init_capability.c",
64    "//base/startup/init/services/init/init_common_cmds.c",
65    "//base/startup/init/services/init/init_common_service.c",
66    "//base/startup/init/services/init/init_config.c",
67    "//base/startup/init/services/init/init_group_manager.c",
68    "//base/startup/init/services/init/init_service_file.c",
69    "//base/startup/init/services/init/init_service_manager.c",
70    "//base/startup/init/services/init/init_service_socket.c",
71    "//base/startup/init/services/init/standard/device.c",
72    "//base/startup/init/services/init/standard/init.c",
73    "//base/startup/init/services/init/standard/init_cmdexecutor.c",
74    "//base/startup/init/services/init/standard/init_cmds.c",
75    "//base/startup/init/services/init/standard/init_control_fd_service.c",
76    "//base/startup/init/services/init/standard/init_jobs.c",
77    "//base/startup/init/services/init/standard/init_mount.c",
78    "//base/startup/init/services/init/standard/init_reboot.c",
79    "//base/startup/init/services/init/standard/init_service.c",
80    "//base/startup/init/services/init/standard/init_signal_handler.c",
81    "//base/startup/init/services/log/init_commlog.c",
82    "//base/startup/init/services/log/init_log.c",
83    "//base/startup/init/services/loopevent/loop/le_epoll.c",
84    "//base/startup/init/services/loopevent/loop/le_loop.c",
85    "//base/startup/init/services/loopevent/signal/le_signal.c",
86    "//base/startup/init/services/loopevent/socket/le_socket.c",
87    "//base/startup/init/services/loopevent/task/le_asynctask.c",
88    "//base/startup/init/services/loopevent/task/le_streamtask.c",
89    "//base/startup/init/services/loopevent/task/le_task.c",
90    "//base/startup/init/services/loopevent/task/le_watchtask.c",
91    "//base/startup/init/services/loopevent/timer/le_timer.c",
92    "//base/startup/init/services/loopevent/utils/le_utils.c",
93    "//base/startup/init/services/modules/bootchart/bootchart.c",
94    "//base/startup/init/services/modules/bootchart/bootchart_static.c",
95    "//base/startup/init/services/modules/bootevent/bootevent.c",
96    "//base/startup/init/services/modules/init_hook/init_hook.c",
97    "//base/startup/init/services/modules/init_hook/param_hook.c",
98    "//base/startup/init/services/modules/reboot/reboot.c",
99    "//base/startup/init/services/modules/reboot/reboot_misc.c",
100    "//base/startup/init/services/modules/reboot/reboot_static.c",
101    "//base/startup/init/services/param/adapter/param_dac.c",
102    "//base/startup/init/services/param/adapter/param_persistadp.c",
103    "//base/startup/init/services/param/base/param_base.c",
104    "//base/startup/init/services/param/base/param_comm.c",
105    "//base/startup/init/services/param/base/param_trie.c",
106    "//base/startup/init/services/param/linux/param_message.c",
107    "//base/startup/init/services/param/linux/param_msgadp.c",
108    "//base/startup/init/services/param/linux/param_osadp.c",
109    "//base/startup/init/services/param/linux/param_request.c",
110    "//base/startup/init/services/param/linux/param_service.c",
111    "//base/startup/init/services/param/manager/param_manager.c",
112    "//base/startup/init/services/param/manager/param_persist.c",
113    "//base/startup/init/services/param/manager/param_server.c",
114    "//base/startup/init/services/param/trigger/trigger_checker.c",
115    "//base/startup/init/services/param/trigger/trigger_manager.c",
116    "//base/startup/init/services/param/trigger/trigger_processor.c",
117    "//base/startup/init/services/utils/init_hashmap.c",
118    "//base/startup/init/services/utils/init_utils.c",
119    "//base/startup/init/services/utils/list.c",
120    "//base/startup/init/ueventd/standard/ueventd_parameter.c",
121    "//base/startup/init/ueventd/ueventd.c",
122    "//base/startup/init/ueventd/ueventd_device_handler.c",
123    "//base/startup/init/ueventd/ueventd_firmware_handler.c",
124    "//base/startup/init/ueventd/ueventd_read_cfg.c",
125    "//base/startup/init/ueventd/ueventd_socket.c",
126  ]
127
128  sources += [
129    "${FSCRYPT_PATH}/libfscrypt/src/fscrypt_control.c",
130    "${FSCRYPT_PATH}/libfscrypt/src/fscrypt_utils.c",
131    "${FSCRYPT_PATH}/libfscrypt/src/key_control.c",
132    "${FSCRYPT_PATH}/libfscrypt/src/sysparam_static.c",
133  ]
134
135  if (defined(build_selinux) && build_selinux) {
136    sources += [ "//base/startup/init/services/param/adapter/param_selinux.c" ]
137  }
138
139  if (enable_ohos_startup_init_feature_watcher) {
140    sources += [
141      "//base/startup/init/services/param/watcher/agent/watcher.cpp",
142      "//base/startup/init/services/param/watcher/agent/watcher_manager_kits.cpp",
143      "//base/startup/init/services/param/watcher/agent/watcher_manager_proxy.cpp",
144      "//base/startup/init/services/param/watcher/agent/watcher_stub.cpp",
145      "//base/startup/init/services/param/watcher/proxy/watcher_manager.cpp",
146      "//base/startup/init/services/param/watcher/proxy/watcher_manager_stub.cpp",
147      "//base/startup/init/services/param/watcher/proxy/watcher_proxy.cpp",
148    ]
149  }
150
151  sources += [
152    "begetctl/begetctl_unittest.cpp",
153    "deviceinfo/DeviceInfoUnittest.cpp",
154    "init/SignalInitUnitTest.cpp",
155    "init/cmds_unittest.cpp",
156    "init/group_unittest.cpp",
157    "init/init_reboot_unittest.cpp",
158    "init/mount_unittest.cpp",
159    "init/sandbox_unittest.cpp",
160    "init/service_file_unittest.cpp",
161    "init/service_socket_unittest.cpp",
162    "init/utils_unittest.cpp",
163    "innerkits/innerkits_unittest.cpp",
164    "modules/modules_unittest.cpp",
165    "param/client_unittest.cpp",
166    "param/dac_unittest.cpp",
167    "param/param_shell_unittest.cpp",
168    "param/param_stub.cpp",
169    "param/param_unittest.cpp",
170    "param/paramservice_unittest.cpp",
171    "param/trigger_unittest.cpp",
172    "syspara/syspara_unittest.cpp",
173    "ueventd/ueventd_config_unittest.cpp",
174    "ueventd/ueventd_event_unittest.cpp",
175  ]
176
177  sources += [
178    "//base/startup/init/interfaces/innerkits/hookmgr/hookmgr.c",
179    "//base/startup/init/interfaces/innerkits/init_module_engine/init_modulemgr.c",
180    "//base/startup/init/interfaces/innerkits/modulemgr/modulemgr.c",
181    "//base/startup/init/interfaces/innerkits/service_control/service_control.c",
182    "//base/startup/init/interfaces/innerkits/service_watcher/service_watcher.c",
183    "//base/startup/init/interfaces/innerkits/syscap/init_syscap.c",
184    "//base/startup/init/interfaces/innerkits/syspara/param_wrapper.cpp",
185    "innerkits/hookmgr_unittest.cpp",
186    "innerkits/modulemgr_unittest.cpp",
187  ]
188
189  configs = [ "//base/startup/init/test/unittest:utest_config" ]
190
191  include_dirs = [
192    "//base/customization/config_policy/interfaces/innerkits/include",
193    "//base/startup/init/device_info",
194    "//base/startup/init/services/init/standard",
195    "//base/startup/init/interfaces/innerkits/include",
196    "//base/startup/init/interfaces/innerkits/include/syspara",
197    "//base/startup/init/interfaces/innerkits/fd_holder",
198    "//base/startup/init/interfaces/innerkits/syspara",
199    "//base/startup/init/interfaces/innerkits/control_fd",
200    "//base/startup/init/services/begetctl",
201    "//base/startup/init/services/begetctl/shell",
202    "//base/startup/init/services/include",
203    "//base/startup/init/services/init/include",
204    "//base/startup/init/services/include/param",
205    "//base/startup/init/services/log",
206    "//base/startup/init/services/loopevent/include",
207    "//base/startup/init/services/loopevent/loop",
208    "//base/startup/init/services/loopevent/socket",
209    "//base/startup/init/services/loopevent/signal",
210    "//base/startup/init/services/loopevent/task",
211    "//base/startup/init/services/loopevent/timer",
212    "//base/startup/init/services/loopevent/utils",
213    "//base/startup/init/services/modules",
214    "//base/startup/init/services/modules/bootchart",
215    "//base/startup/init/services/modules/init_hook",
216    "//base/startup/init/services/modules/selinux",
217    "//base/startup/init/services/modules/reboot",
218    "//base/startup/init/services/loopevent/utils",
219    "//base/startup/init/services/param/adapter",
220    "//base/startup/init/services/param/base",
221    "//base/startup/init/services/param/linux",
222    "//base/startup/init/services/param/include",
223    "//base/startup/init/services/param/watcher/agent",
224    "//base/startup/init/services/param/watcher/include",
225    "//base/startup/init/services/param/watcher/proxy",
226    "//base/startup/init/test/unittest",
227    "//base/startup/init/test/unittest/param",
228    "//foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include",
229    "//foundation/systemabilitymgr/safwk/services/safwk/include",
230    "//foundation/systemabilitymgr/safwk/interfaces/innerkits/safwk",
231    "//foundation/systemabilitymgr/samgr/adapter/interfaces/innerkits/include",
232    "//foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include",
233    "//base/startup/init/ueventd/include",
234    "//utils/system/safwk/native/include",
235    "//third_party/bounds_checking_function/include",
236    "//third_party/cJSON",
237    "//base/security/access_token/interfaces/innerkits/token_setproc/include",
238    "//base/security/access_token/interfaces/innerkits/nativetoken/include",
239    "//base/startup/init/interfaces/innerkits/sandbox/include",
240    "//base/startup/init/interfaces/innerkits/hals",
241    "${FSCRYPT_PATH}/include/libfscrypt",
242  ]
243
244  deps = [
245    "//base/customization/config_policy/frameworks/config_policy:configpolicy_util_for_init_static",
246    "//base/security/access_token/interfaces/innerkits/nativetoken:libnativetoken",
247    "//base/security/access_token/interfaces/innerkits/token_setproc:libtoken_setproc",
248    "//third_party/bounds_checking_function:libsec_static",
249    "//third_party/cJSON:cjson",
250    "//third_party/googletest:gmock",
251    "//third_party/googletest:gtest",
252    "//third_party/mbedtls:mbedtls_shared",
253  ]
254
255  defines = [
256    "READ_CHECK",
257    "INIT_AGENT",
258    "STARTUP_INIT_TEST",
259    "PARAM_SUPPORT_DAC",
260    "_GNU_SOURCE",
261    "PARAM_SUPPORT_TRIGGER",
262    "USE_MBEDTLS",
263    "PARAM_DECODE_GROUPID_FROM_FILE",
264  ]
265  defines += [ "_GNU_SOURCE" ]
266
267  if (target_cpu == "arm64") {
268    defines += [ "SUPPORT_64BIT" ]
269  }
270  if (use_musl) {
271    defines += [ "__MUSL__" ]
272  }
273
274  external_deps = [
275    "c_utils:utils",
276    "hiviewdfx_hilog_native:libhilog",
277    "init:libinit_module_engine",
278  ]
279
280  if (enable_ohos_startup_init_feature_ab_partition) {
281    include_dirs += [ "//drivers/hdf_core/adapter/uhdf2/include" ]
282    sources += [ "//base/startup/init/services/begetctl/partitionslot.cpp" ]
283    external_deps += [
284      "drivers_interface_partitionslot:libpartitionslot_proxy_1.0",
285      "hdf_core:libhdi",
286    ]
287  }
288
289  if (!defined(ohos_lite) && enable_ohos_startup_init_feature_watcher) {
290    sources += [
291      "param/watcher_agent_unittest.cpp",
292      "param/watcher_proxy_unittest.cpp",
293    ]
294    external_deps += [
295      "ipc:ipc_core",
296      "safwk:system_ability_fwk",
297      "samgr:samgr_proxy",
298    ]
299  }
300
301  if (defined(build_seccomp) && build_seccomp) {
302    sources += [ "seccomp/seccomp_unittest.cpp" ]
303    include_dirs +=
304        [ "//base/startup/init/interfaces/innerkits/seccomp/include" ]
305    external_deps += [ "init:seccomp" ]
306  }
307
308  if (defined(build_selinux) && build_selinux) {
309    sources += [ "param/selinux_unittest.cpp" ]
310    include_dirs += [
311      "//third_party/selinux/libselinux/include/",
312      "//base/security/selinux/interfaces/policycoreutils/include/",
313    ]
314    deps += [
315      "//base/security/selinux:libload_policy",
316      "//base/security/selinux:librestorecon",
317      "//third_party/selinux:libselinux",
318    ]
319    defines += [
320      "WITH_SELINUX",
321      "PARAM_SUPPORT_SELINUX",
322    ]
323  }
324  if (enable_ohos_startup_init_feature_deviceinfo) {
325    sources += [
326      "//base/startup/init/device_info/device_info_kits.cpp",
327      "//base/startup/init/device_info/device_info_load.cpp",
328      "//base/startup/init/device_info/device_info_proxy.cpp",
329    ]
330    defines += [ "PARAM_FEATURE_DEVICEINFO" ]
331    external_deps += [ "access_token:libaccesstoken_sdk" ]
332  }
333  cflags_cc = [ "-fexceptions" ]
334  sources += [
335    "init/loopevent_unittest.cpp",
336    "init/service_unittest.cpp",
337  ]
338}
339