• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022-2023 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("//base/hiviewdfx/faultloggerd/faultloggerd.gni")
15import("//build/config/features.gni")
16import("//build/test.gni")
17module_output_path = "faultloggerd/faultloggerd/unwind"
18
19ohos_unittest("test_unwind") {
20  module_out_path = module_output_path
21  visibility = [ "*:*" ]
22  include_dirs = [
23    "$faultloggerd_interfaces_path/common",
24    "$faultloggerd_interfaces_path/nonlinux",
25    "$faultloggerd_path/test/unittest/unwind/include",
26    "$faultloggerd_path/test/utils",
27  ]
28  configs = [ "$faultloggerd_common_path/build:coverage_flags" ]
29  defines = [
30    "DFX_LOG_UNWIND",
31    "is_emulator=${is_emulator}",
32  ]
33  sources = [
34    "ark_test.cpp",
35    "elf_factory_test.cpp",
36    "elf_imitate.cpp",
37    "elf_test.cpp",
38    "fp_unwinder_test.cpp",
39    "instr_statistic_test.cpp",
40    "jsvm_test.cpp",
41    "maps_test.cpp",
42    "memory_test.cpp",
43    "regs_test.cpp",
44    "signal_test.cpp",
45    "symbols_test.cpp",
46    "unwind_entry_parser_test.cpp",
47    "unwinder_test.cpp",
48  ]
49  cflags_cc = [ "-Dprivate=public" ]
50  cflags_cc += [ "-Dprotected=public" ]
51  deps = [
52    "$faultloggerd_common_path/dfxlog:dfx_hilog",
53    "$faultloggerd_common_path/dfxutil:dfx_util",
54    "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo",
55    "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder_src",
56    "$faultloggerd_path/test/utils:dfx_test_util",
57  ]
58  resource_config_file = "$faultloggerd_path/test/resource/ohos_test.xml"
59  external_deps = [
60    "bounds_checking_function:libsec_shared",
61    "c_utils:utils",
62    "googletest:gtest_main",
63    "hilog:libhilog",
64  ]
65}
66
67ohos_unittest("test_unwind_pac") {
68  module_out_path = module_output_path
69  visibility = [ "*:*" ]
70  include_dirs = [
71    "$faultloggerd_interfaces_path/common",
72    "$faultloggerd_path/test/unittest/unwind/include",
73    "$faultloggerd_path/test/utils",
74  ]
75  configs = [ "$faultloggerd_common_path/build:coverage_flags" ]
76  defines = [ "DFX_LOG_UNWIND" ]
77  sources = [ "unwinder_pac_test.cpp" ]
78  deps = [
79    "$faultloggerd_common_path/dfxlog:dfx_hilog",
80    "$faultloggerd_common_path/dfxutil:dfx_util",
81    "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder_src",
82    "$faultloggerd_path/test/utils:dfx_test_util",
83  ]
84  branch_protector_ret = "pac_ret"
85  external_deps = [
86    "bounds_checking_function:libsec_shared",
87    "c_utils:utils",
88    "googletest:gtest_main",
89    "hilog:libhilog",
90  ]
91}
92
93ohos_unittest("test_unwind_separate_code") {
94  module_out_path = module_output_path
95  visibility = [ "*:*" ]
96  include_dirs = [
97    "$faultloggerd_interfaces_path/common",
98    "$faultloggerd_path/test/unittest/unwind/include",
99    "$faultloggerd_path/test/utils",
100  ]
101  configs = [ "$faultloggerd_common_path/build:coverage_flags" ]
102  defines = [ "DFX_LOG_UNWIND" ]
103  ldflags = [ "-Wl,-z,separate-code" ]
104  sources = [ "unwinder_pac_test.cpp" ]
105  deps = [
106    "$faultloggerd_common_path/dfxlog:dfx_hilog",
107    "$faultloggerd_common_path/dfxutil:dfx_util",
108    "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder_src",
109    "$faultloggerd_path/test/utils:dfx_test_util",
110  ]
111  external_deps = [
112    "bounds_checking_function:libsec_shared",
113    "c_utils:utils",
114    "googletest:gtest_main",
115    "hilog:libhilog",
116  ]
117}
118
119ohos_unittest("test_exidx") {
120  module_out_path = module_output_path
121  visibility = [ "*:*" ]
122  include_dirs = [
123    "$faultloggerd_interfaces_path/common",
124    "$faultloggerd_interfaces_path/innerkits/unwinder/include",
125  ]
126  configs = [ "$faultloggerd_common_path/build:coverage_flags" ]
127  defines = [
128    "DFX_LOG_UNWIND",
129    "is_ohos=${is_ohos}",
130    "is_emulator=${is_emulator}",
131    "TEST_ARM_EXIDX",
132  ]
133  sources = [
134    "$faultloggerd_interfaces_path/innerkits/unwinder/src/ark/dfx_ark.cpp",
135    "$faultloggerd_interfaces_path/innerkits/unwinder/src/elf/dfx_elf.cpp",
136    "$faultloggerd_interfaces_path/innerkits/unwinder/src/elf/dfx_elf_parser.cpp",
137    "$faultloggerd_interfaces_path/innerkits/unwinder/src/elf/dfx_mmap.cpp",
138    "$faultloggerd_interfaces_path/innerkits/unwinder/src/elf/dfx_symbols.cpp",
139    "$faultloggerd_interfaces_path/innerkits/unwinder/src/elf/elf_factory.cpp",
140    "$faultloggerd_interfaces_path/innerkits/unwinder/src/elf/elf_factory_selector.cpp",
141    "$faultloggerd_interfaces_path/innerkits/unwinder/src/maps/dfx_map.cpp",
142    "$faultloggerd_interfaces_path/innerkits/unwinder/src/maps/dfx_maps.cpp",
143    "$faultloggerd_interfaces_path/innerkits/unwinder/src/memory/dfx_accessors.cpp",
144    "$faultloggerd_interfaces_path/innerkits/unwinder/src/memory/dfx_memory.cpp",
145    "$faultloggerd_interfaces_path/innerkits/unwinder/src/registers/dfx_regs.cpp",
146    "$faultloggerd_interfaces_path/innerkits/unwinder/src/registers/dfx_regs_arm.cpp",
147    "$faultloggerd_interfaces_path/innerkits/unwinder/src/unwind_entry_parser/exidx_entry_parser.cpp",
148    "$faultloggerd_interfaces_path/innerkits/unwinder/src/utils/dfx_frame_formatter.cpp",
149    "$faultloggerd_interfaces_path/innerkits/unwinder/src/utils/dfx_instructions.cpp",
150    "$faultloggerd_interfaces_path/innerkits/unwinder/src/utils/dfx_ptrace.cpp",
151    "arm_exidx_test.cpp",
152  ]
153  cflags_cc = [ "-Dprivate=public" ]
154  deps = [
155    "$faultloggerd_common_path/dfxlog:dfx_hilog",
156    "$faultloggerd_common_path/dfxutil:dfx_util",
157    "$faultloggerd_common_path/trace:dfx_trace_dlsym",
158  ]
159  external_deps = [
160    "bounds_checking_function:libsec_shared",
161    "c_utils:utils",
162    "googletest:gtest_main",
163    "hilog:libhilog",
164  ]
165}
166
167ohos_unittest("test_dwarf") {
168  module_out_path = module_output_path
169  visibility = [ "*:*" ]
170  defines = [
171    "ALLOW_TO_STDERR",
172    "DFX_LOG_UNWIND",
173    "DFX_LOG_HILOG_BASE",
174  ]
175  include_dirs = [
176    "$faultloggerd_interfaces_path/common",
177    "$faultloggerd_interfaces_path/innerkits/unwinder/include",
178  ]
179  configs = [ "$faultloggerd_path/common/build:coverage_flags" ]
180  sources = [
181    "$faultloggerd_interfaces_path/innerkits/unwinder/src/unwind_entry_parser/dwarf_cfa_instructions.cpp",
182    "dwarf_test.cpp",
183  ]
184  cflags_cc = [ "-Dprivate=public" ]
185
186  deps = [
187    "$faultloggerd_common_path/dfxlog:dfx_hilog_base",
188    "$faultloggerd_common_path/dfxutil:dfx_util",
189    "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder_base",
190  ]
191
192  resource_config_file = "$faultloggerd_path/test/resource/ohos_test.xml"
193  external_deps = [
194    "bounds_checking_function:libsec_shared",
195    "c_utils:utils",
196    "googletest:gtest_main",
197    "hilog:libhilog_base",
198  ]
199}
200
201ohos_unittest("test_unwind_supporting") {
202  module_out_path = module_output_path
203  visibility = [ "*:*" ]
204  include_dirs = [
205    "$faultloggerd_interfaces_path/common",
206    "$faultloggerd_interfaces_path/innerkits/unwinder/include",
207  ]
208  defines = [ "is_ohos=${is_ohos}" ]
209  sources = [
210    "$faultloggerd_interfaces_path/innerkits/unwinder/src/ark/dfx_ark.cpp",
211    "$faultloggerd_interfaces_path/innerkits/unwinder/src/ark/dfx_hap.cpp",
212    "$faultloggerd_interfaces_path/innerkits/unwinder/src/maps/dfx_maps.cpp",
213    "$faultloggerd_interfaces_path/innerkits/unwinder/src/memory/dfx_memory.cpp",
214    "dfx_hap_test.cpp",
215  ]
216  deps = [
217    "$faultloggerd_common_path/dfxlog:dfx_hilog",
218    "$faultloggerd_common_path/dfxutil:dfx_util",
219    "$faultloggerd_common_path/trace:dfx_trace_dlsym",
220  ]
221  external_deps = [
222    "c_utils:utils",
223    "hilog:libhilog",
224  ]
225}
226
227ohos_unittest("test_reader") {
228  module_out_path = module_output_path
229  include_dirs = [
230    "$faultloggerd_interfaces_path/common",
231    "$faultloggerd_interfaces_path/innerkits/unwinder/include",
232  ]
233  sources = [ "safe_reader_test.cpp" ]
234  cflags_cc = [ "-Dprivate=public" ]
235
236  deps =
237      [ "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder_static" ]
238  external_deps = [
239    "c_utils:utils",
240    "googletest:gmock_main",
241    "googletest:gtest_main",
242    "hilog:libhilog",
243  ]
244}
245
246group("unittest") {
247  testonly = true
248  deps = [
249    ":test_reader",
250    ":test_unwind",
251    ":test_unwind_pac",
252    ":test_unwind_separate_code",
253    ":test_unwind_supporting",
254  ]
255  if (target_cpu == "arm") {
256    deps += [ ":test_exidx" ]
257  }
258  if (target_cpu == "arm64") {
259    deps += [ ":test_dwarf" ]
260  }
261}
262