xref: /aosp_15_r20/external/perfetto/src/traced/probes/ftrace/BUILD.gn (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2017 The Android Open Source Project
2*6dbdd20aSAndroid Build Coastguard Worker#
3*6dbdd20aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*6dbdd20aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*6dbdd20aSAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*6dbdd20aSAndroid Build Coastguard Worker#
7*6dbdd20aSAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
8*6dbdd20aSAndroid Build Coastguard Worker#
9*6dbdd20aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*6dbdd20aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*6dbdd20aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*6dbdd20aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*6dbdd20aSAndroid Build Coastguard Worker# limitations under the License.
14*6dbdd20aSAndroid Build Coastguard Worker
15*6dbdd20aSAndroid Build Coastguard Workerimport("../../../../gn/fuzzer.gni")
16*6dbdd20aSAndroid Build Coastguard Workerimport("../../../../gn/perfetto.gni")
17*6dbdd20aSAndroid Build Coastguard Workerimport("../../../../gn/proto_library.gni")
18*6dbdd20aSAndroid Build Coastguard Workerimport("../../../../gn/test.gni")
19*6dbdd20aSAndroid Build Coastguard Worker
20*6dbdd20aSAndroid Build Coastguard Workerassert(target_os != "win")
21*6dbdd20aSAndroid Build Coastguard Worker
22*6dbdd20aSAndroid Build Coastguard Worker# For use_libfuzzer.
23*6dbdd20aSAndroid Build Coastguard Workerif (perfetto_root_path == "//") {
24*6dbdd20aSAndroid Build Coastguard Worker  import("//gn/standalone/sanitizers/vars.gni")  # nogncheck
25*6dbdd20aSAndroid Build Coastguard Worker} else {
26*6dbdd20aSAndroid Build Coastguard Worker  import("//build/config/sanitizers/sanitizers.gni")  # nogncheck
27*6dbdd20aSAndroid Build Coastguard Worker}
28*6dbdd20aSAndroid Build Coastguard Worker
29*6dbdd20aSAndroid Build Coastguard Workersource_set("test_support") {
30*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
31*6dbdd20aSAndroid Build Coastguard Worker  deps = [
32*6dbdd20aSAndroid Build Coastguard Worker    ":ftrace",
33*6dbdd20aSAndroid Build Coastguard Worker    ":ftrace_procfs",
34*6dbdd20aSAndroid Build Coastguard Worker    "../../../../gn:default_deps",
35*6dbdd20aSAndroid Build Coastguard Worker    "../../../base:test_support",
36*6dbdd20aSAndroid Build Coastguard Worker    "../../../protozero",
37*6dbdd20aSAndroid Build Coastguard Worker  ]
38*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [ "../../../protozero" ]
39*6dbdd20aSAndroid Build Coastguard Worker
40*6dbdd20aSAndroid Build Coastguard Worker  sources = [
41*6dbdd20aSAndroid Build Coastguard Worker    "test/cpu_reader_support.cc",
42*6dbdd20aSAndroid Build Coastguard Worker    "test/cpu_reader_support.h",
43*6dbdd20aSAndroid Build Coastguard Worker  ]
44*6dbdd20aSAndroid Build Coastguard Worker}
45*6dbdd20aSAndroid Build Coastguard Worker
46*6dbdd20aSAndroid Build Coastguard Workerperfetto_unittest_source_set("unittests") {
47*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
48*6dbdd20aSAndroid Build Coastguard Worker  deps = [
49*6dbdd20aSAndroid Build Coastguard Worker    ":ftrace",
50*6dbdd20aSAndroid Build Coastguard Worker    ":ftrace_procfs",
51*6dbdd20aSAndroid Build Coastguard Worker    ":test_messages_cpp",
52*6dbdd20aSAndroid Build Coastguard Worker    ":test_messages_lite",
53*6dbdd20aSAndroid Build Coastguard Worker    ":test_messages_zero",
54*6dbdd20aSAndroid Build Coastguard Worker    ":test_support",
55*6dbdd20aSAndroid Build Coastguard Worker    "../../../../gn:default_deps",
56*6dbdd20aSAndroid Build Coastguard Worker    "../../../../gn:gtest_and_gmock",
57*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/trace:cpp",
58*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/trace/ftrace:cpp",
59*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/trace/ftrace:zero",
60*6dbdd20aSAndroid Build Coastguard Worker    "../../../base:test_support",
61*6dbdd20aSAndroid Build Coastguard Worker    "../../../tracing/test:test_support",
62*6dbdd20aSAndroid Build Coastguard Worker    "format_parser:unittests",
63*6dbdd20aSAndroid Build Coastguard Worker  ]
64*6dbdd20aSAndroid Build Coastguard Worker
65*6dbdd20aSAndroid Build Coastguard Worker  sources = [
66*6dbdd20aSAndroid Build Coastguard Worker    "cpu_reader_unittest.cc",
67*6dbdd20aSAndroid Build Coastguard Worker    "cpu_stats_parser_unittest.cc",
68*6dbdd20aSAndroid Build Coastguard Worker    "event_info_unittest.cc",
69*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_config_muxer_unittest.cc",
70*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_config_unittest.cc",
71*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_controller_unittest.cc",
72*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_print_filter_unittest.cc",
73*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_procfs_unittest.cc",
74*6dbdd20aSAndroid Build Coastguard Worker    "printk_formats_parser_unittest.cc",
75*6dbdd20aSAndroid Build Coastguard Worker    "proto_translation_table_unittest.cc",
76*6dbdd20aSAndroid Build Coastguard Worker    "vendor_tracepoints_unittest.cc",
77*6dbdd20aSAndroid Build Coastguard Worker  ]
78*6dbdd20aSAndroid Build Coastguard Worker}
79*6dbdd20aSAndroid Build Coastguard Worker
80*6dbdd20aSAndroid Build Coastguard Workerperfetto_proto_library("test_messages_@TYPE@") {
81*6dbdd20aSAndroid Build Coastguard Worker  proto_generators = [
82*6dbdd20aSAndroid Build Coastguard Worker    "cpp",
83*6dbdd20aSAndroid Build Coastguard Worker    "lite",
84*6dbdd20aSAndroid Build Coastguard Worker    "zero",
85*6dbdd20aSAndroid Build Coastguard Worker  ]
86*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "test/test_messages.proto" ]
87*6dbdd20aSAndroid Build Coastguard Worker  proto_path = perfetto_root_path
88*6dbdd20aSAndroid Build Coastguard Worker}
89*6dbdd20aSAndroid Build Coastguard Worker
90*6dbdd20aSAndroid Build Coastguard Worker# These tests require access to a real ftrace implementation and must
91*6dbdd20aSAndroid Build Coastguard Worker# run with sudo.
92*6dbdd20aSAndroid Build Coastguard Workersource_set("integrationtests") {
93*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
94*6dbdd20aSAndroid Build Coastguard Worker  deps = [
95*6dbdd20aSAndroid Build Coastguard Worker    ":ftrace",
96*6dbdd20aSAndroid Build Coastguard Worker    ":ftrace_procfs",
97*6dbdd20aSAndroid Build Coastguard Worker    ":test_support",
98*6dbdd20aSAndroid Build Coastguard Worker    "../../../../gn:default_deps",
99*6dbdd20aSAndroid Build Coastguard Worker    "../../../../gn:gtest_and_gmock",
100*6dbdd20aSAndroid Build Coastguard Worker    "../../../base",
101*6dbdd20aSAndroid Build Coastguard Worker    "../../../tracing/core",
102*6dbdd20aSAndroid Build Coastguard Worker  ]
103*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "ftrace_procfs_integrationtest.cc" ]
104*6dbdd20aSAndroid Build Coastguard Worker}
105*6dbdd20aSAndroid Build Coastguard Worker
106*6dbdd20aSAndroid Build Coastguard Workersource_set("ftrace") {
107*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [
108*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/config/ftrace:cpp",
109*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/trace/ftrace:zero",
110*6dbdd20aSAndroid Build Coastguard Worker    "../../../tracing/core",
111*6dbdd20aSAndroid Build Coastguard Worker  ]
112*6dbdd20aSAndroid Build Coastguard Worker  deps = [
113*6dbdd20aSAndroid Build Coastguard Worker    ":ftrace_procfs",
114*6dbdd20aSAndroid Build Coastguard Worker    "..:data_source",
115*6dbdd20aSAndroid Build Coastguard Worker    "../../../../gn:default_deps",
116*6dbdd20aSAndroid Build Coastguard Worker    "../../../../include/perfetto/ext/traced",
117*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/common:zero",
118*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/trace:zero",
119*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/trace/interned_data:zero",
120*6dbdd20aSAndroid Build Coastguard Worker    "../../../../protos/perfetto/trace/profiling:zero",
121*6dbdd20aSAndroid Build Coastguard Worker    "../../../android_internal:lazy_library_loader",
122*6dbdd20aSAndroid Build Coastguard Worker    "../../../base",
123*6dbdd20aSAndroid Build Coastguard Worker    "../../../kallsyms",
124*6dbdd20aSAndroid Build Coastguard Worker    "../../../kernel_utils:syscall_table",
125*6dbdd20aSAndroid Build Coastguard Worker    "../../../protozero",
126*6dbdd20aSAndroid Build Coastguard Worker    "format_parser",
127*6dbdd20aSAndroid Build Coastguard Worker  ]
128*6dbdd20aSAndroid Build Coastguard Worker  sources = [
129*6dbdd20aSAndroid Build Coastguard Worker    "atrace_hal_wrapper.cc",
130*6dbdd20aSAndroid Build Coastguard Worker    "atrace_hal_wrapper.h",
131*6dbdd20aSAndroid Build Coastguard Worker    "atrace_wrapper.cc",
132*6dbdd20aSAndroid Build Coastguard Worker    "atrace_wrapper.h",
133*6dbdd20aSAndroid Build Coastguard Worker    "compact_sched.cc",
134*6dbdd20aSAndroid Build Coastguard Worker    "compact_sched.h",
135*6dbdd20aSAndroid Build Coastguard Worker    "cpu_reader.cc",
136*6dbdd20aSAndroid Build Coastguard Worker    "cpu_reader.h",
137*6dbdd20aSAndroid Build Coastguard Worker    "cpu_stats_parser.cc",
138*6dbdd20aSAndroid Build Coastguard Worker    "cpu_stats_parser.h",
139*6dbdd20aSAndroid Build Coastguard Worker    "event_info.cc",
140*6dbdd20aSAndroid Build Coastguard Worker    "event_info.h",
141*6dbdd20aSAndroid Build Coastguard Worker    "event_info_constants.cc",
142*6dbdd20aSAndroid Build Coastguard Worker    "event_info_constants.h",
143*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_config_muxer.cc",
144*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_config_muxer.h",
145*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_config_utils.cc",
146*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_config_utils.h",
147*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_controller.cc",
148*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_controller.h",
149*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_data_source.cc",
150*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_data_source.h",
151*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_metadata.h",
152*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_print_filter.cc",
153*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_print_filter.h",
154*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_stats.cc",
155*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_stats.h",
156*6dbdd20aSAndroid Build Coastguard Worker    "printk_formats_parser.cc",
157*6dbdd20aSAndroid Build Coastguard Worker    "printk_formats_parser.h",
158*6dbdd20aSAndroid Build Coastguard Worker    "proto_translation_table.cc",
159*6dbdd20aSAndroid Build Coastguard Worker    "proto_translation_table.h",
160*6dbdd20aSAndroid Build Coastguard Worker    "vendor_tracepoints.cc",
161*6dbdd20aSAndroid Build Coastguard Worker    "vendor_tracepoints.h",
162*6dbdd20aSAndroid Build Coastguard Worker  ]
163*6dbdd20aSAndroid Build Coastguard Worker}
164*6dbdd20aSAndroid Build Coastguard Worker
165*6dbdd20aSAndroid Build Coastguard Workersource_set("ftrace_procfs") {
166*6dbdd20aSAndroid Build Coastguard Worker  deps = [
167*6dbdd20aSAndroid Build Coastguard Worker    "../../../../gn:default_deps",
168*6dbdd20aSAndroid Build Coastguard Worker    "../../../base",
169*6dbdd20aSAndroid Build Coastguard Worker  ]
170*6dbdd20aSAndroid Build Coastguard Worker  sources = [
171*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_procfs.cc",
172*6dbdd20aSAndroid Build Coastguard Worker    "ftrace_procfs.h",
173*6dbdd20aSAndroid Build Coastguard Worker  ]
174*6dbdd20aSAndroid Build Coastguard Worker}
175*6dbdd20aSAndroid Build Coastguard Worker
176*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_benchmarks) {
177*6dbdd20aSAndroid Build Coastguard Worker  source_set("benchmarks") {
178*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
179*6dbdd20aSAndroid Build Coastguard Worker    deps = [
180*6dbdd20aSAndroid Build Coastguard Worker      ":ftrace",
181*6dbdd20aSAndroid Build Coastguard Worker      ":test_support",
182*6dbdd20aSAndroid Build Coastguard Worker      "../../../../gn:benchmark",
183*6dbdd20aSAndroid Build Coastguard Worker      "../../../../gn:default_deps",
184*6dbdd20aSAndroid Build Coastguard Worker    ]
185*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "cpu_reader_benchmark.cc" ]
186*6dbdd20aSAndroid Build Coastguard Worker  }
187*6dbdd20aSAndroid Build Coastguard Worker}
188*6dbdd20aSAndroid Build Coastguard Worker
189*6dbdd20aSAndroid Build Coastguard Workerperfetto_fuzzer_test("cpu_reader_fuzzer") {
190*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
191*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "cpu_reader_fuzzer.cc" ]
192*6dbdd20aSAndroid Build Coastguard Worker  deps = [
193*6dbdd20aSAndroid Build Coastguard Worker    ":ftrace",
194*6dbdd20aSAndroid Build Coastguard Worker    ":test_support",
195*6dbdd20aSAndroid Build Coastguard Worker    "../../../../gn:default_deps",
196*6dbdd20aSAndroid Build Coastguard Worker  ]
197*6dbdd20aSAndroid Build Coastguard Worker}
198