xref: /aosp_15_r20/external/perfetto/test/BUILD.gn (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2018 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 Worker
18*6dbdd20aSAndroid Build Coastguard Workerif (!build_with_chromium && enable_perfetto_integration_tests) {
19*6dbdd20aSAndroid Build Coastguard Worker  source_set("perfetto_end_to_end_integrationtests") {
20*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
21*6dbdd20aSAndroid Build Coastguard Worker    deps = [
22*6dbdd20aSAndroid Build Coastguard Worker      ":test_helper",
23*6dbdd20aSAndroid Build Coastguard Worker      "../gn:default_deps",
24*6dbdd20aSAndroid Build Coastguard Worker      "../gn:gtest_and_gmock",
25*6dbdd20aSAndroid Build Coastguard Worker      "../include/perfetto/ext/ipc",
26*6dbdd20aSAndroid Build Coastguard Worker      "../include/perfetto/ext/traced",
27*6dbdd20aSAndroid Build Coastguard Worker      "../include/perfetto/ext/tracing/core:test_support",
28*6dbdd20aSAndroid Build Coastguard Worker      "../include/perfetto/protozero",
29*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/config:cpp",
30*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/config:zero",
31*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/config/power:zero",
32*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/config/sys_stats:cpp",
33*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace:cpp",
34*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace:zero",
35*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace/ftrace:cpp",
36*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace/perfetto:cpp",
37*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace/power:cpp",
38*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace/sys_stats:cpp",
39*6dbdd20aSAndroid Build Coastguard Worker      "../src/base:base",
40*6dbdd20aSAndroid Build Coastguard Worker      "../src/base:test_support",
41*6dbdd20aSAndroid Build Coastguard Worker      "../src/perfetto_cmd:bugreport_path",
42*6dbdd20aSAndroid Build Coastguard Worker      "../src/protozero/filtering:bytecode_generator",
43*6dbdd20aSAndroid Build Coastguard Worker    ]
44*6dbdd20aSAndroid Build Coastguard Worker    if (enable_perfetto_traced_probes) {
45*6dbdd20aSAndroid Build Coastguard Worker      deps += [
46*6dbdd20aSAndroid Build Coastguard Worker        "../src/traced/probes/ftrace",
47*6dbdd20aSAndroid Build Coastguard Worker        "../src/traced/probes/ftrace:ftrace_procfs",
48*6dbdd20aSAndroid Build Coastguard Worker      ]
49*6dbdd20aSAndroid Build Coastguard Worker    }
50*6dbdd20aSAndroid Build Coastguard Worker
51*6dbdd20aSAndroid Build Coastguard Worker    # These binaries are requires by the cmdline tests, which invoke perfetto
52*6dbdd20aSAndroid Build Coastguard Worker    # and trigger_perfetto via Subprocess.
53*6dbdd20aSAndroid Build Coastguard Worker    data_deps = [
54*6dbdd20aSAndroid Build Coastguard Worker      "../src/perfetto_cmd:perfetto",
55*6dbdd20aSAndroid Build Coastguard Worker      "../src/perfetto_cmd:trigger_perfetto",
56*6dbdd20aSAndroid Build Coastguard Worker    ]
57*6dbdd20aSAndroid Build Coastguard Worker
58*6dbdd20aSAndroid Build Coastguard Worker    sources = [
59*6dbdd20aSAndroid Build Coastguard Worker      "android_integrationtest.cc",
60*6dbdd20aSAndroid Build Coastguard Worker      "cmdline_integrationtest.cc",
61*6dbdd20aSAndroid Build Coastguard Worker      "ftrace_integrationtest.cc",
62*6dbdd20aSAndroid Build Coastguard Worker      "traced_integrationtest.cc",
63*6dbdd20aSAndroid Build Coastguard Worker    ]
64*6dbdd20aSAndroid Build Coastguard Worker    if (start_daemons_for_testing) {
65*6dbdd20aSAndroid Build Coastguard Worker      # In CTS mode we use /syste/bin/perfetto for the cmdline tests and the
66*6dbdd20aSAndroid Build Coastguard Worker      # perfetto_cmd is not required. Outside of CTS mode, instead, we need to
67*6dbdd20aSAndroid Build Coastguard Worker      # build the cmdline code as part of the test executable.
68*6dbdd20aSAndroid Build Coastguard Worker      deps += [
69*6dbdd20aSAndroid Build Coastguard Worker        "../src/perfetto_cmd",
70*6dbdd20aSAndroid Build Coastguard Worker        "../src/perfetto_cmd:trigger_perfetto_cmd",
71*6dbdd20aSAndroid Build Coastguard Worker      ]
72*6dbdd20aSAndroid Build Coastguard Worker    }
73*6dbdd20aSAndroid Build Coastguard Worker
74*6dbdd20aSAndroid Build Coastguard Worker    if (enable_perfetto_trace_processor &&
75*6dbdd20aSAndroid Build Coastguard Worker        enable_perfetto_trace_processor_sqlite &&
76*6dbdd20aSAndroid Build Coastguard Worker        !perfetto_build_with_android && !is_android) {
77*6dbdd20aSAndroid Build Coastguard Worker      sources += [ "trace_processor_shell_integrationtest.cc" ]
78*6dbdd20aSAndroid Build Coastguard Worker      data_deps += [ "../src/trace_processor:trace_processor_shell" ]
79*6dbdd20aSAndroid Build Coastguard Worker      deps += [ "../protos/perfetto/trace_processor:cpp" ]
80*6dbdd20aSAndroid Build Coastguard Worker    }
81*6dbdd20aSAndroid Build Coastguard Worker  }
82*6dbdd20aSAndroid Build Coastguard Worker
83*6dbdd20aSAndroid Build Coastguard Worker  executable("client_api_example") {
84*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "client_api_example.cc" ]
85*6dbdd20aSAndroid Build Coastguard Worker    deps = [
86*6dbdd20aSAndroid Build Coastguard Worker      "..:libperfetto_client_experimental",
87*6dbdd20aSAndroid Build Coastguard Worker      "../gn:default_deps",
88*6dbdd20aSAndroid Build Coastguard Worker      "../include/perfetto/tracing",
89*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/config/gpu:zero",
90*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace:zero",
91*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace/gpu:zero",
92*6dbdd20aSAndroid Build Coastguard Worker    ]
93*6dbdd20aSAndroid Build Coastguard Worker  }
94*6dbdd20aSAndroid Build Coastguard Worker}  # if (!build_with_chromium && enable_perfetto_integration_tests)
95*6dbdd20aSAndroid Build Coastguard Worker
96*6dbdd20aSAndroid Build Coastguard Workerperfetto_fuzzer_test("end_to_end_shared_memory_fuzzer") {
97*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "end_to_end_shared_memory_fuzzer.cc" ]
98*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
99*6dbdd20aSAndroid Build Coastguard Worker  deps = [
100*6dbdd20aSAndroid Build Coastguard Worker    ":test_helper",
101*6dbdd20aSAndroid Build Coastguard Worker    "../gn:default_deps",
102*6dbdd20aSAndroid Build Coastguard Worker    "../protos/perfetto/trace:zero",
103*6dbdd20aSAndroid Build Coastguard Worker    "../src/base:test_support",
104*6dbdd20aSAndroid Build Coastguard Worker    "../src/protozero",
105*6dbdd20aSAndroid Build Coastguard Worker    "../src/tracing/core",
106*6dbdd20aSAndroid Build Coastguard Worker    "../src/tracing/ipc/producer",
107*6dbdd20aSAndroid Build Coastguard Worker    "../src/tracing/ipc/service",
108*6dbdd20aSAndroid Build Coastguard Worker  ]
109*6dbdd20aSAndroid Build Coastguard Worker}
110*6dbdd20aSAndroid Build Coastguard Worker
111*6dbdd20aSAndroid Build Coastguard Workerperfetto_fuzzer_test("producer_socket_fuzzer") {
112*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "producer_socket_fuzzer.cc" ]
113*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
114*6dbdd20aSAndroid Build Coastguard Worker  deps = [
115*6dbdd20aSAndroid Build Coastguard Worker    ":test_helper",
116*6dbdd20aSAndroid Build Coastguard Worker    "../gn:default_deps",
117*6dbdd20aSAndroid Build Coastguard Worker    "../protos/perfetto/trace:zero",
118*6dbdd20aSAndroid Build Coastguard Worker    "../src/base:test_support",
119*6dbdd20aSAndroid Build Coastguard Worker  ]
120*6dbdd20aSAndroid Build Coastguard Worker}
121*6dbdd20aSAndroid Build Coastguard Worker
122*6dbdd20aSAndroid Build Coastguard Worker# perfetto_fuzzer_test() targets are no-ops if is_fuzzer = false.
123*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_benchmarks || is_fuzzer ||
124*6dbdd20aSAndroid Build Coastguard Worker    enable_perfetto_integration_tests) {
125*6dbdd20aSAndroid Build Coastguard Worker  source_set("test_helper") {
126*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
127*6dbdd20aSAndroid Build Coastguard Worker    public_deps = [
128*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace:cpp",
129*6dbdd20aSAndroid Build Coastguard Worker      "../src/tracing/ipc/consumer",
130*6dbdd20aSAndroid Build Coastguard Worker      "../src/tracing/ipc/producer",
131*6dbdd20aSAndroid Build Coastguard Worker      "../src/tracing/ipc/service",
132*6dbdd20aSAndroid Build Coastguard Worker    ]
133*6dbdd20aSAndroid Build Coastguard Worker    deps = [
134*6dbdd20aSAndroid Build Coastguard Worker      "../gn:default_deps",
135*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/config:cpp",
136*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace:zero",
137*6dbdd20aSAndroid Build Coastguard Worker      "../src/base:test_support",
138*6dbdd20aSAndroid Build Coastguard Worker      "../src/ipc:perfetto_ipc",
139*6dbdd20aSAndroid Build Coastguard Worker      "../src/tracing/ipc:common",
140*6dbdd20aSAndroid Build Coastguard Worker    ]
141*6dbdd20aSAndroid Build Coastguard Worker    sources = [
142*6dbdd20aSAndroid Build Coastguard Worker      "fake_producer.cc",
143*6dbdd20aSAndroid Build Coastguard Worker      "fake_producer.h",
144*6dbdd20aSAndroid Build Coastguard Worker      "test_helper.cc",
145*6dbdd20aSAndroid Build Coastguard Worker      "test_helper.h",
146*6dbdd20aSAndroid Build Coastguard Worker    ]
147*6dbdd20aSAndroid Build Coastguard Worker    if (is_android) {
148*6dbdd20aSAndroid Build Coastguard Worker      sources += [
149*6dbdd20aSAndroid Build Coastguard Worker        "android_test_utils.cc",
150*6dbdd20aSAndroid Build Coastguard Worker        "android_test_utils.h",
151*6dbdd20aSAndroid Build Coastguard Worker      ]
152*6dbdd20aSAndroid Build Coastguard Worker    }
153*6dbdd20aSAndroid Build Coastguard Worker    if (!build_with_chromium && enable_perfetto_traced_probes) {
154*6dbdd20aSAndroid Build Coastguard Worker      deps += [
155*6dbdd20aSAndroid Build Coastguard Worker        "../include/perfetto/ext/traced",
156*6dbdd20aSAndroid Build Coastguard Worker        "../src/traced/probes:probes_src",
157*6dbdd20aSAndroid Build Coastguard Worker      ]
158*6dbdd20aSAndroid Build Coastguard Worker    }
159*6dbdd20aSAndroid Build Coastguard Worker  }
160*6dbdd20aSAndroid Build Coastguard Worker}
161*6dbdd20aSAndroid Build Coastguard Worker
162*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_integration_tests) {
163*6dbdd20aSAndroid Build Coastguard Worker  source_set("integrationtest_initializer") {
164*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
165*6dbdd20aSAndroid Build Coastguard Worker    deps = [ "../gn:default_deps" ]
166*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "integrationtest_initializer.h" ]
167*6dbdd20aSAndroid Build Coastguard Worker  }
168*6dbdd20aSAndroid Build Coastguard Worker  source_set("integrationtest_main") {
169*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
170*6dbdd20aSAndroid Build Coastguard Worker    deps = [
171*6dbdd20aSAndroid Build Coastguard Worker      ":integrationtest_initializer",
172*6dbdd20aSAndroid Build Coastguard Worker      "../src/base",
173*6dbdd20aSAndroid Build Coastguard Worker      "../gn:default_deps",
174*6dbdd20aSAndroid Build Coastguard Worker      "../gn:gtest_and_gmock",
175*6dbdd20aSAndroid Build Coastguard Worker    ]
176*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "integrationtest_main.cc" ]
177*6dbdd20aSAndroid Build Coastguard Worker  }
178*6dbdd20aSAndroid Build Coastguard Worker}
179*6dbdd20aSAndroid Build Coastguard Worker
180*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_benchmarks) {
181*6dbdd20aSAndroid Build Coastguard Worker  source_set("end_to_end_benchmarks") {
182*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
183*6dbdd20aSAndroid Build Coastguard Worker    deps = [
184*6dbdd20aSAndroid Build Coastguard Worker      ":test_helper",
185*6dbdd20aSAndroid Build Coastguard Worker      "../gn:benchmark",
186*6dbdd20aSAndroid Build Coastguard Worker      "../gn:default_deps",
187*6dbdd20aSAndroid Build Coastguard Worker      "../gn:gtest_and_gmock",
188*6dbdd20aSAndroid Build Coastguard Worker      "../include/perfetto/ext/traced",
189*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/config:cpp",
190*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace:cpp",
191*6dbdd20aSAndroid Build Coastguard Worker      "../protos/perfetto/trace:zero",
192*6dbdd20aSAndroid Build Coastguard Worker      "../src/base:test_support",
193*6dbdd20aSAndroid Build Coastguard Worker    ]
194*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "end_to_end_benchmark.cc" ]
195*6dbdd20aSAndroid Build Coastguard Worker  }
196*6dbdd20aSAndroid Build Coastguard Worker
197*6dbdd20aSAndroid Build Coastguard Worker  source_set("benchmark_main") {
198*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
199*6dbdd20aSAndroid Build Coastguard Worker    deps = [
200*6dbdd20aSAndroid Build Coastguard Worker      "../gn:benchmark",
201*6dbdd20aSAndroid Build Coastguard Worker      "../gn:default_deps",
202*6dbdd20aSAndroid Build Coastguard Worker    ]
203*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "benchmark_main.cc" ]
204*6dbdd20aSAndroid Build Coastguard Worker  }
205*6dbdd20aSAndroid Build Coastguard Worker}  # if (enable_perfetto_benchmarks)
206*6dbdd20aSAndroid Build Coastguard Worker
207*6dbdd20aSAndroid Build Coastguard Workerif (perfetto_build_with_android || (is_android && perfetto_build_standalone)) {
208*6dbdd20aSAndroid Build Coastguard Worker  # This is used only in-tree builds. It's built in standalone builds just to
209*6dbdd20aSAndroid Build Coastguard Worker  # get build coverage.
210*6dbdd20aSAndroid Build Coastguard Worker  static_library("perfetto_gtest_logcat_printer") {
211*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
212*6dbdd20aSAndroid Build Coastguard Worker    complete_static_lib = true
213*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "gtest_logcat_printer.cc" ]
214*6dbdd20aSAndroid Build Coastguard Worker    deps = [
215*6dbdd20aSAndroid Build Coastguard Worker      "../gn:default_deps",
216*6dbdd20aSAndroid Build Coastguard Worker      "../gn:gtest_and_gmock",
217*6dbdd20aSAndroid Build Coastguard Worker    ]
218*6dbdd20aSAndroid Build Coastguard Worker  }
219*6dbdd20aSAndroid Build Coastguard Worker}
220