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