# Copyright (c) 2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//base/hiviewdfx/faultloggerd/faultloggerd.gni") if (!defined(ohos_lite)) { import("//build/config/features.gni") import("//build/test.gni") config("dfx_sighook_config") { visibility = [ "*:*" ] include_dirs = [ ".", "$faultloggerd_path/common", ] } ohos_shared_library("dfxsighook") { public_configs = [ ":dfx_sighook_config" ] install_enable = true cflags = [ "-DDFX_LOG_USE_HILOG_BASE", "-DDFX_LOG_USE_DMESG", ] sources = [ "dfx_signal_hook.c", "dfx_hook_utils.c" ] deps = [ "$faultloggerd_path/common/dfxlog:static_hilog_base_dmesg", "//third_party/libunwind:libunwind", ] external_deps = [ "c_utils:utils", "hilog_native:libhilog_base", ] part_name = "faultloggerd" subsystem_name = "hiviewdfx" } ohos_shared_library("dfxexithook") { public_configs = [ ":dfx_sighook_config" ] install_enable = true cflags = [ "-DDFX_LOG_USE_DMESG" ] sources = [ "dfx_exit_hook.c", "dfx_hook_utils.c" ] deps = [ "$faultloggerd_path/common/dfxlog:static_common_log", "//third_party/libunwind:libunwind", ] external_deps = [ "c_utils:utils", "hilog_native:libhilog", ] part_name = "faultloggerd" subsystem_name = "hiviewdfx" } ohos_unittest("DfxFuncHookUnitTest") { testonly = true module_out_path = "faultloggerd/dfxfunchook" sources = [ "dfx_func_hook_unittest.cpp" ] configs = [ ":dfx_sighook_config" ] deps = [ ":dfxexithook", ":dfxsighook", "//third_party/googletest:gtest_main", ] external_deps = [ "c_utils:utils" ] if (use_musl) { resource_config_file = "//base/hiviewdfx/faultloggerd/test/funchook/ohos_test.xml" } else { resource_config_file = "//base/hiviewdfx/faultloggerd/test/funchook/ohos_bionic_test.xml" } part_name = "faultloggerd" subsystem_name = "hiviewdfx" } } group("dfxfunchook_unittest") { if (!defined(ohos_lite)) { testonly = true deps = [ ":DfxFuncHookUnitTest" ] } }