1# Copyright (c) 2021-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("//base/hiviewdfx/hitrace/hitrace.gni")
15import("//build/ohos.gni")
16import("//build/test.gni")
17
18module_output_path = "hiviewdfx/hitrace"
19
20config("module_private_config") {
21  visibility = [ ":*" ]
22  include_dirs = [
23    "$hitrace_interfaces_path/native/innerkits/include",
24    "$hitrace_frameworks_path/include",
25    "$hitrace_interfaces_path/native/innerkits/include/hitrace_meter",
26    "$hitrace_interfaces_path/native/innerkits/include/hitrace",
27  ]
28}
29
30ohos_unittest("HitraceCTest") {
31  module_out_path = module_output_path
32
33  sources = [
34    "$hitrace_frameworks_path/native/hitracechain.cpp",
35    "$hitrace_frameworks_path/native/hitracechainc.c",
36    "$hitrace_frameworks_path/native/hitraceid.cpp",
37    "$hitrace_interfaces_path/native/innerkits/src/hitrace_meter.cpp",
38    "$hitrace_interfaces_path/native/innerkits/src/hitrace_meter_c.c",
39    "$hitrace_interfaces_path/native/innerkits/src/hitrace_meter_wrapper.cpp",
40    "unittest/common/native/hitracechainc_test.cpp",
41  ]
42
43  configs = [ ":module_private_config" ]
44
45  external_deps = [
46    "bounds_checking_function:libsec_shared",
47    "googletest:gtest_main",
48    "init:libbegetutil",
49  ]
50  if (defined(ohos_lite)) {
51    external_deps += [ "hilog_lite:hilog_lite" ]
52  } else {
53    external_deps += [ "hilog:libhilog" ]
54  }
55}
56
57ohos_unittest("HitraceCppTest") {
58  module_out_path = module_output_path
59
60  sources = [
61    "$hitrace_frameworks_path/native/hitracechain.cpp",
62    "$hitrace_frameworks_path/native/hitracechainc.c",
63    "$hitrace_frameworks_path/native/hitraceid.cpp",
64    "$hitrace_interfaces_path/native/innerkits/src/hitrace_meter.cpp",
65    "$hitrace_interfaces_path/native/innerkits/src/hitrace_meter_c.c",
66    "$hitrace_interfaces_path/native/innerkits/src/hitrace_meter_wrapper.cpp",
67    "unittest/common/native/hitracechaincpp_test.cpp",
68  ]
69
70  configs = [ ":module_private_config" ]
71
72  external_deps = [
73    "bounds_checking_function:libsec_shared",
74    "googletest:gtest_main",
75    "init:libbegetutil",
76  ]
77  if (defined(ohos_lite)) {
78    external_deps += [ "hilog_lite:hilog_lite" ]
79  } else {
80    external_deps += [ "hilog:libhilog" ]
81  }
82}
83
84config("HitraceNDKTest_config") {
85  visibility = [ ":*" ]
86
87  include_dirs = [
88    "$hitrace_cmd_path/include",
89    "$hitrace_interfaces_path/native/innerkits/include/hitrace_meter",
90  ]
91}
92
93ohos_unittest("HitraceNDKTest") {
94  module_out_path = module_output_path
95
96  sources = [
97    "$hitrace_interfaces_path/native/innerkits/src/hitrace_meter.cpp",
98    "unittest/hitrace_meter/hitrace_ndk_test.cpp",
99  ]
100
101  configs = [ ":HitraceNDKTest_config" ]
102
103  cflags = [ "-DHITRACE_UNITTEST" ]
104
105  deps = [
106    "$hitrace_cmd_path:hitrace_osal_inner",
107    "$hitrace_interfaces_path/native/innerkits:hitrace_meter",
108    "$hitrace_interfaces_path/native/innerkits:libhitracechain",
109  ]
110
111  external_deps = [
112    "bounds_checking_function:libsec_shared",
113    "googletest:gtest_main",
114    "init:libbegetutil",
115  ]
116  if (defined(ohos_lite)) {
117    external_deps += [ "hilog_lite:hilog_lite" ]
118  } else {
119    external_deps += [ "hilog:libhilog" ]
120  }
121}
122
123ohos_unittest("HitraceDumpTest") {
124  module_out_path = module_output_path
125
126  sources = [
127    "$hitrace_cmd_path/src/hitrace_osal.cpp",
128    "$hitrace_frameworks_path/native/common_utils.cpp",
129    "$hitrace_frameworks_path/native/dynamic_buffer.cpp",
130    "$hitrace_interfaces_path/native/innerkits/src/hitrace_dump.cpp",
131    "unittest/hitrace_dump/hitrace_dump_test.cpp",
132  ]
133
134  cflags = [ "-DHITRACE_UNITTEST" ]
135
136  include_dirs = [
137    "$hitrace_cmd_path/include",
138    "$hitrace_frameworks_path/include",
139    "$hitrace_interfaces_path/native/innerkits/include",
140  ]
141
142  external_deps = [
143    "bounds_checking_function:libsec_shared",
144    "cJSON:cjson",
145    "googletest:gtest_main",
146    "init:libbegetutil",
147  ]
148  if (defined(ohos_lite)) {
149    external_deps += [ "hilog_lite:hilog_lite" ]
150  } else {
151    external_deps += [ "hilog:libhilog" ]
152  }
153}
154
155group("hitrace_unittest") {
156  testonly = true
157  deps = [
158    ":HitraceCTest",
159    ":HitraceCppTest",
160    ":HitraceDumpTest",
161    ":HitraceNDKTest",
162  ]
163  if (support_jsapi) {
164    deps += [ "unittest/common/napi:unittest" ]
165  }
166  if (!use_clang_coverage) {
167    deps += [ "unittest/rust/hitracechain:rust_hitracechain_test" ]
168  }
169}
170