xref: /aosp_15_r20/external/perfetto/src/trace_processor/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 Workerimport("../../gn/perfetto_cc_proto_descriptor.gni")
18*6dbdd20aSAndroid Build Coastguard Workerimport("../../gn/perfetto_host_executable.gni")
19*6dbdd20aSAndroid Build Coastguard Workerimport("../../gn/test.gni")
20*6dbdd20aSAndroid Build Coastguard Workerimport("../../gn/wasm.gni")
21*6dbdd20aSAndroid Build Coastguard Worker
22*6dbdd20aSAndroid Build Coastguard Worker# Prevent that this file is accidentally included in embedder builds.
23*6dbdd20aSAndroid Build Coastguard Workerassert(enable_perfetto_trace_processor)
24*6dbdd20aSAndroid Build Coastguard Worker
25*6dbdd20aSAndroid Build Coastguard Worker# The library which eases processing of Perfetto traces by exposing reading
26*6dbdd20aSAndroid Build Coastguard Worker# friendly APIs.
27*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_trace_processor_sqlite) {
28*6dbdd20aSAndroid Build Coastguard Worker  static_library("trace_processor") {
29*6dbdd20aSAndroid Build Coastguard Worker    complete_static_lib = true
30*6dbdd20aSAndroid Build Coastguard Worker    public_deps = [ ":lib" ]
31*6dbdd20aSAndroid Build Coastguard Worker  }
32*6dbdd20aSAndroid Build Coastguard Worker}
33*6dbdd20aSAndroid Build Coastguard Worker
34*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_ui) {
35*6dbdd20aSAndroid Build Coastguard Worker  wasm_lib("trace_processor_wasm") {
36*6dbdd20aSAndroid Build Coastguard Worker    name = "trace_processor"
37*6dbdd20aSAndroid Build Coastguard Worker    deps = [
38*6dbdd20aSAndroid Build Coastguard Worker      ":lib",
39*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:default_deps",
40*6dbdd20aSAndroid Build Coastguard Worker      "../base",
41*6dbdd20aSAndroid Build Coastguard Worker      "rpc:wasm_bridge",
42*6dbdd20aSAndroid Build Coastguard Worker    ]
43*6dbdd20aSAndroid Build Coastguard Worker  }
44*6dbdd20aSAndroid Build Coastguard Worker}
45*6dbdd20aSAndroid Build Coastguard Worker
46*6dbdd20aSAndroid Build Coastguard Worker# Depended upon by Chrome to do proto -> JSON conversion of traces.
47*6dbdd20aSAndroid Build Coastguard Worker# Must be small binary size as all code here needs to be shipped in
48*6dbdd20aSAndroid Build Coastguard Worker# Chrome.
49*6dbdd20aSAndroid Build Coastguard Workersource_set("export_json") {
50*6dbdd20aSAndroid Build Coastguard Worker  sources = [
51*6dbdd20aSAndroid Build Coastguard Worker    "export_json.cc",
52*6dbdd20aSAndroid Build Coastguard Worker    "export_json.h",
53*6dbdd20aSAndroid Build Coastguard Worker  ]
54*6dbdd20aSAndroid Build Coastguard Worker  deps = [
55*6dbdd20aSAndroid Build Coastguard Worker    ":storage_minimal",
56*6dbdd20aSAndroid Build Coastguard Worker    "../../gn:default_deps",
57*6dbdd20aSAndroid Build Coastguard Worker    "../../include/perfetto/ext/trace_processor:export_json",
58*6dbdd20aSAndroid Build Coastguard Worker    "../base",
59*6dbdd20aSAndroid Build Coastguard Worker    "containers",
60*6dbdd20aSAndroid Build Coastguard Worker    "importers/common",
61*6dbdd20aSAndroid Build Coastguard Worker    "importers/json:minimal",
62*6dbdd20aSAndroid Build Coastguard Worker    "storage",
63*6dbdd20aSAndroid Build Coastguard Worker    "tables",
64*6dbdd20aSAndroid Build Coastguard Worker    "types",
65*6dbdd20aSAndroid Build Coastguard Worker    "util",
66*6dbdd20aSAndroid Build Coastguard Worker  ]
67*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [ "../../include/perfetto/ext/trace_processor:export_json" ]
68*6dbdd20aSAndroid Build Coastguard Worker}
69*6dbdd20aSAndroid Build Coastguard Worker
70*6dbdd20aSAndroid Build Coastguard Workersource_set("metatrace") {
71*6dbdd20aSAndroid Build Coastguard Worker  sources = [
72*6dbdd20aSAndroid Build Coastguard Worker    "tp_metatrace.cc",
73*6dbdd20aSAndroid Build Coastguard Worker    "tp_metatrace.h",
74*6dbdd20aSAndroid Build Coastguard Worker  ]
75*6dbdd20aSAndroid Build Coastguard Worker  deps = [
76*6dbdd20aSAndroid Build Coastguard Worker    "../../gn:default_deps",
77*6dbdd20aSAndroid Build Coastguard Worker    "../../include/perfetto/ext/base",
78*6dbdd20aSAndroid Build Coastguard Worker    "../../include/perfetto/trace_processor",
79*6dbdd20aSAndroid Build Coastguard Worker    "../../protos/perfetto/trace_processor:zero",
80*6dbdd20aSAndroid Build Coastguard Worker  ]
81*6dbdd20aSAndroid Build Coastguard Worker}
82*6dbdd20aSAndroid Build Coastguard Worker
83*6dbdd20aSAndroid Build Coastguard Worker# In Bazel builds the ":demangle" target (below) should be a static_library so
84*6dbdd20aSAndroid Build Coastguard Worker# it gets mapped to an actual target (rather than being squashed as a filegroup)
85*6dbdd20aSAndroid Build Coastguard Worker# and can be replaced in Google internal builds via perfetto_cfg.bzl.
86*6dbdd20aSAndroid Build Coastguard Worker# Unfortunately, however, static_library targets seem to break Wasm builds on
87*6dbdd20aSAndroid Build Coastguard Worker# Mac. For this reason we just make it a source_set for all other build types.
88*6dbdd20aSAndroid Build Coastguard Workerif (is_perfetto_build_generator) {
89*6dbdd20aSAndroid Build Coastguard Worker  _demangle_target_type = "static_library"
90*6dbdd20aSAndroid Build Coastguard Worker} else {
91*6dbdd20aSAndroid Build Coastguard Worker  _demangle_target_type = "source_set"
92*6dbdd20aSAndroid Build Coastguard Worker}
93*6dbdd20aSAndroid Build Coastguard Worker
94*6dbdd20aSAndroid Build Coastguard Workertarget(_demangle_target_type, "demangle") {
95*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "demangle.cc" ]
96*6dbdd20aSAndroid Build Coastguard Worker  deps = [
97*6dbdd20aSAndroid Build Coastguard Worker    "../../gn:default_deps",
98*6dbdd20aSAndroid Build Coastguard Worker    "../../include/perfetto/base",
99*6dbdd20aSAndroid Build Coastguard Worker    "../../include/perfetto/ext/base",
100*6dbdd20aSAndroid Build Coastguard Worker  ]
101*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [ "../../include/perfetto/ext/trace_processor:demangle" ]
102*6dbdd20aSAndroid Build Coastguard Worker  if (enable_perfetto_llvm_demangle) {
103*6dbdd20aSAndroid Build Coastguard Worker    deps += [ "../../gn:llvm_demangle" ]
104*6dbdd20aSAndroid Build Coastguard Worker  }
105*6dbdd20aSAndroid Build Coastguard Worker}
106*6dbdd20aSAndroid Build Coastguard Worker
107*6dbdd20aSAndroid Build Coastguard Workersource_set("storage_minimal") {
108*6dbdd20aSAndroid Build Coastguard Worker  sources = [
109*6dbdd20aSAndroid Build Coastguard Worker    "forwarding_trace_parser.cc",
110*6dbdd20aSAndroid Build Coastguard Worker    "forwarding_trace_parser.h",
111*6dbdd20aSAndroid Build Coastguard Worker    "trace_blob.cc",
112*6dbdd20aSAndroid Build Coastguard Worker    "trace_processor_context.cc",
113*6dbdd20aSAndroid Build Coastguard Worker    "trace_processor_storage.cc",
114*6dbdd20aSAndroid Build Coastguard Worker    "trace_processor_storage_impl.cc",
115*6dbdd20aSAndroid Build Coastguard Worker    "trace_processor_storage_impl.h",
116*6dbdd20aSAndroid Build Coastguard Worker    "trace_reader_registry.cc",
117*6dbdd20aSAndroid Build Coastguard Worker    "trace_reader_registry.h",
118*6dbdd20aSAndroid Build Coastguard Worker    "virtual_destructors.cc",
119*6dbdd20aSAndroid Build Coastguard Worker  ]
120*6dbdd20aSAndroid Build Coastguard Worker  deps = [
121*6dbdd20aSAndroid Build Coastguard Worker    "../../gn:default_deps",
122*6dbdd20aSAndroid Build Coastguard Worker    "../base",
123*6dbdd20aSAndroid Build Coastguard Worker    "../protozero",
124*6dbdd20aSAndroid Build Coastguard Worker    "containers",
125*6dbdd20aSAndroid Build Coastguard Worker    "importers/common",
126*6dbdd20aSAndroid Build Coastguard Worker    "importers/common:parser_types",
127*6dbdd20aSAndroid Build Coastguard Worker    "importers/ftrace:minimal",
128*6dbdd20aSAndroid Build Coastguard Worker    "importers/fuchsia:fuchsia_record",
129*6dbdd20aSAndroid Build Coastguard Worker    "importers/memory_tracker:graph_processor",
130*6dbdd20aSAndroid Build Coastguard Worker    "importers/proto:gen_cc_android_track_event_descriptor",
131*6dbdd20aSAndroid Build Coastguard Worker    "importers/proto:gen_cc_chrome_track_event_descriptor",
132*6dbdd20aSAndroid Build Coastguard Worker    "importers/proto:gen_cc_track_event_descriptor",
133*6dbdd20aSAndroid Build Coastguard Worker    "importers/proto:minimal",
134*6dbdd20aSAndroid Build Coastguard Worker    "importers/systrace:systrace_line",
135*6dbdd20aSAndroid Build Coastguard Worker    "sorter",
136*6dbdd20aSAndroid Build Coastguard Worker    "storage",
137*6dbdd20aSAndroid Build Coastguard Worker    "tables",
138*6dbdd20aSAndroid Build Coastguard Worker    "types",
139*6dbdd20aSAndroid Build Coastguard Worker    "util:descriptors",
140*6dbdd20aSAndroid Build Coastguard Worker    "util:gzip",
141*6dbdd20aSAndroid Build Coastguard Worker    "util:proto_to_args_parser",
142*6dbdd20aSAndroid Build Coastguard Worker    "util:trace_type",
143*6dbdd20aSAndroid Build Coastguard Worker  ]
144*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [ "../../include/perfetto/trace_processor:storage" ]
145*6dbdd20aSAndroid Build Coastguard Worker}
146*6dbdd20aSAndroid Build Coastguard Worker
147*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_trace_processor_sqlite) {
148*6dbdd20aSAndroid Build Coastguard Worker  source_set("lib") {
149*6dbdd20aSAndroid Build Coastguard Worker    sources = [
150*6dbdd20aSAndroid Build Coastguard Worker      "iterator_impl.cc",
151*6dbdd20aSAndroid Build Coastguard Worker      "iterator_impl.h",
152*6dbdd20aSAndroid Build Coastguard Worker      "read_trace.cc",
153*6dbdd20aSAndroid Build Coastguard Worker      "read_trace_internal.cc",
154*6dbdd20aSAndroid Build Coastguard Worker      "read_trace_internal.h",
155*6dbdd20aSAndroid Build Coastguard Worker      "trace_processor.cc",
156*6dbdd20aSAndroid Build Coastguard Worker      "trace_processor_impl.cc",
157*6dbdd20aSAndroid Build Coastguard Worker      "trace_processor_impl.h",
158*6dbdd20aSAndroid Build Coastguard Worker    ]
159*6dbdd20aSAndroid Build Coastguard Worker    deps = [
160*6dbdd20aSAndroid Build Coastguard Worker      ":metatrace",
161*6dbdd20aSAndroid Build Coastguard Worker      ":storage_minimal",
162*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:default_deps",
163*6dbdd20aSAndroid Build Coastguard Worker      "../../protos/perfetto/common:zero",
164*6dbdd20aSAndroid Build Coastguard Worker      "../../protos/perfetto/trace:zero",
165*6dbdd20aSAndroid Build Coastguard Worker      "../../protos/perfetto/trace/perfetto:zero",
166*6dbdd20aSAndroid Build Coastguard Worker      "../../protos/perfetto/trace_processor:zero",
167*6dbdd20aSAndroid Build Coastguard Worker      "../base",
168*6dbdd20aSAndroid Build Coastguard Worker      "../base:clock_snapshots",
169*6dbdd20aSAndroid Build Coastguard Worker      "../protozero",
170*6dbdd20aSAndroid Build Coastguard Worker      "db",
171*6dbdd20aSAndroid Build Coastguard Worker      "importers/android_bugreport",
172*6dbdd20aSAndroid Build Coastguard Worker      "importers/archive",
173*6dbdd20aSAndroid Build Coastguard Worker      "importers/art_method",
174*6dbdd20aSAndroid Build Coastguard Worker      "importers/common",
175*6dbdd20aSAndroid Build Coastguard Worker      "importers/etw:full",
176*6dbdd20aSAndroid Build Coastguard Worker      "importers/ftrace:full",
177*6dbdd20aSAndroid Build Coastguard Worker      "importers/fuchsia:full",
178*6dbdd20aSAndroid Build Coastguard Worker      "importers/json:minimal",
179*6dbdd20aSAndroid Build Coastguard Worker      "importers/ninja",
180*6dbdd20aSAndroid Build Coastguard Worker      "importers/perf",
181*6dbdd20aSAndroid Build Coastguard Worker      "importers/perf_text",
182*6dbdd20aSAndroid Build Coastguard Worker      "importers/proto:full",
183*6dbdd20aSAndroid Build Coastguard Worker      "importers/proto:minimal",
184*6dbdd20aSAndroid Build Coastguard Worker      "importers/systrace:full",
185*6dbdd20aSAndroid Build Coastguard Worker      "metrics",
186*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/engine",
187*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/intrinsics/functions",
188*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/intrinsics/operators",
189*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/intrinsics/table_functions",
190*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/stdlib",
191*6dbdd20aSAndroid Build Coastguard Worker      "sqlite",
192*6dbdd20aSAndroid Build Coastguard Worker      "storage",
193*6dbdd20aSAndroid Build Coastguard Worker      "tables",
194*6dbdd20aSAndroid Build Coastguard Worker      "types",
195*6dbdd20aSAndroid Build Coastguard Worker      "util",
196*6dbdd20aSAndroid Build Coastguard Worker      "util:gzip",
197*6dbdd20aSAndroid Build Coastguard Worker      "util:protozero_to_json",
198*6dbdd20aSAndroid Build Coastguard Worker      "util:protozero_to_text",
199*6dbdd20aSAndroid Build Coastguard Worker      "util:regex",
200*6dbdd20aSAndroid Build Coastguard Worker      "util:stdlib",
201*6dbdd20aSAndroid Build Coastguard Worker      "util:trace_type",
202*6dbdd20aSAndroid Build Coastguard Worker    ]
203*6dbdd20aSAndroid Build Coastguard Worker
204*6dbdd20aSAndroid Build Coastguard Worker    if (enable_perfetto_etm_importer) {
205*6dbdd20aSAndroid Build Coastguard Worker      deps += [
206*6dbdd20aSAndroid Build Coastguard Worker        "importers/etm",
207*6dbdd20aSAndroid Build Coastguard Worker        "perfetto_sql/intrinsics/operators:etm",
208*6dbdd20aSAndroid Build Coastguard Worker      ]
209*6dbdd20aSAndroid Build Coastguard Worker    }
210*6dbdd20aSAndroid Build Coastguard Worker
211*6dbdd20aSAndroid Build Coastguard Worker    public_deps = [
212*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:sqlite",  # iterator_impl.h includes sqlite3.h.
213*6dbdd20aSAndroid Build Coastguard Worker      "../../include/perfetto/trace_processor",
214*6dbdd20aSAndroid Build Coastguard Worker    ]
215*6dbdd20aSAndroid Build Coastguard Worker    if (enable_perfetto_trace_processor_mac_instruments) {
216*6dbdd20aSAndroid Build Coastguard Worker      deps += [ "importers/instruments" ]
217*6dbdd20aSAndroid Build Coastguard Worker    }
218*6dbdd20aSAndroid Build Coastguard Worker    if (enable_perfetto_trace_processor_json) {
219*6dbdd20aSAndroid Build Coastguard Worker      deps += [
220*6dbdd20aSAndroid Build Coastguard Worker        "importers/gecko",
221*6dbdd20aSAndroid Build Coastguard Worker        "importers/json",
222*6dbdd20aSAndroid Build Coastguard Worker      ]
223*6dbdd20aSAndroid Build Coastguard Worker    }
224*6dbdd20aSAndroid Build Coastguard Worker  }
225*6dbdd20aSAndroid Build Coastguard Worker
226*6dbdd20aSAndroid Build Coastguard Worker  executable("trace_processor_shell") {
227*6dbdd20aSAndroid Build Coastguard Worker    deps = [
228*6dbdd20aSAndroid Build Coastguard Worker      ":lib",
229*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:default_deps",
230*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:protobuf_full",
231*6dbdd20aSAndroid Build Coastguard Worker      "../../protos/perfetto/trace_processor:zero",
232*6dbdd20aSAndroid Build Coastguard Worker      "../../src/profiling:deobfuscator",
233*6dbdd20aSAndroid Build Coastguard Worker      "../../src/profiling/symbolizer",
234*6dbdd20aSAndroid Build Coastguard Worker      "../../src/profiling/symbolizer:symbolize_database",
235*6dbdd20aSAndroid Build Coastguard Worker      "../base",
236*6dbdd20aSAndroid Build Coastguard Worker      "../base:version",
237*6dbdd20aSAndroid Build Coastguard Worker      "metrics",
238*6dbdd20aSAndroid Build Coastguard Worker      "rpc:stdiod",
239*6dbdd20aSAndroid Build Coastguard Worker      "sqlite",
240*6dbdd20aSAndroid Build Coastguard Worker      "util",
241*6dbdd20aSAndroid Build Coastguard Worker      "util:stdlib",
242*6dbdd20aSAndroid Build Coastguard Worker    ]
243*6dbdd20aSAndroid Build Coastguard Worker    if (enable_perfetto_trace_processor_linenoise) {
244*6dbdd20aSAndroid Build Coastguard Worker      deps += [ "../../gn:linenoise" ]
245*6dbdd20aSAndroid Build Coastguard Worker    }
246*6dbdd20aSAndroid Build Coastguard Worker    if (enable_perfetto_trace_processor_httpd) {
247*6dbdd20aSAndroid Build Coastguard Worker      deps += [ "rpc:httpd" ]
248*6dbdd20aSAndroid Build Coastguard Worker    }
249*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "trace_processor_shell.cc" ]
250*6dbdd20aSAndroid Build Coastguard Worker    if ((perfetto_build_standalone || build_with_chromium) &&
251*6dbdd20aSAndroid Build Coastguard Worker        !is_perfetto_build_generator) {
252*6dbdd20aSAndroid Build Coastguard Worker      data_deps = [
253*6dbdd20aSAndroid Build Coastguard Worker        # The diff testing framework depends on these descriptors.
254*6dbdd20aSAndroid Build Coastguard Worker        "../../protos/perfetto/metrics:descriptor",
255*6dbdd20aSAndroid Build Coastguard Worker        "../../protos/perfetto/trace:descriptor",
256*6dbdd20aSAndroid Build Coastguard Worker        "../../protos/perfetto/trace:test_extensions_descriptor",
257*6dbdd20aSAndroid Build Coastguard Worker        "../../protos/perfetto/trace_processor:stack_descriptor",
258*6dbdd20aSAndroid Build Coastguard Worker        "../../protos/third_party/pprof:descriptor",
259*6dbdd20aSAndroid Build Coastguard Worker      ]
260*6dbdd20aSAndroid Build Coastguard Worker    }
261*6dbdd20aSAndroid Build Coastguard Worker  }
262*6dbdd20aSAndroid Build Coastguard Worker
263*6dbdd20aSAndroid Build Coastguard Worker  # Shell target which does not link all the extra libraryes linked by
264*6dbdd20aSAndroid Build Coastguard Worker  # trace processor shell (e.g. httpd, libprotobuf etc.). Use for binary size
265*6dbdd20aSAndroid Build Coastguard Worker  # analysis of the trace processor library.
266*6dbdd20aSAndroid Build Coastguard Worker  executable("trace_processor_minimal_shell") {
267*6dbdd20aSAndroid Build Coastguard Worker    deps = [
268*6dbdd20aSAndroid Build Coastguard Worker      ":lib",
269*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:default_deps",
270*6dbdd20aSAndroid Build Coastguard Worker      "util",
271*6dbdd20aSAndroid Build Coastguard Worker    ]
272*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "minimal_shell.cc" ]
273*6dbdd20aSAndroid Build Coastguard Worker  }
274*6dbdd20aSAndroid Build Coastguard Worker}  # if (enable_perfetto_trace_processor_sqlite)
275*6dbdd20aSAndroid Build Coastguard Worker
276*6dbdd20aSAndroid Build Coastguard Workerperfetto_unittest_source_set("top_level_unittests") {
277*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
278*6dbdd20aSAndroid Build Coastguard Worker
279*6dbdd20aSAndroid Build Coastguard Worker  sources = [
280*6dbdd20aSAndroid Build Coastguard Worker    "forwarding_trace_parser_unittest.cc",
281*6dbdd20aSAndroid Build Coastguard Worker    "ref_counted_unittest.cc",
282*6dbdd20aSAndroid Build Coastguard Worker    "trace_blob_unittest.cc",
283*6dbdd20aSAndroid Build Coastguard Worker  ]
284*6dbdd20aSAndroid Build Coastguard Worker  deps = [
285*6dbdd20aSAndroid Build Coastguard Worker    ":storage_minimal",
286*6dbdd20aSAndroid Build Coastguard Worker    "../../gn:default_deps",
287*6dbdd20aSAndroid Build Coastguard Worker    "../../gn:gtest_and_gmock",
288*6dbdd20aSAndroid Build Coastguard Worker    "../../include/perfetto/trace_processor",
289*6dbdd20aSAndroid Build Coastguard Worker    "util:trace_type",
290*6dbdd20aSAndroid Build Coastguard Worker  ]
291*6dbdd20aSAndroid Build Coastguard Worker
292*6dbdd20aSAndroid Build Coastguard Worker  if (enable_perfetto_trace_processor_json && !is_win) {
293*6dbdd20aSAndroid Build Coastguard Worker    # export_json_unittest.cc uses base::TempFile, which is not supported on
294*6dbdd20aSAndroid Build Coastguard Worker    # windows.
295*6dbdd20aSAndroid Build Coastguard Worker    sources += [ "export_json_unittest.cc" ]
296*6dbdd20aSAndroid Build Coastguard Worker    deps += [
297*6dbdd20aSAndroid Build Coastguard Worker      ":export_json",
298*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:jsoncpp",
299*6dbdd20aSAndroid Build Coastguard Worker      "../../include/perfetto/ext/trace_processor:export_json",
300*6dbdd20aSAndroid Build Coastguard Worker      "containers",
301*6dbdd20aSAndroid Build Coastguard Worker      "importers/common",
302*6dbdd20aSAndroid Build Coastguard Worker      "importers/proto:minimal",
303*6dbdd20aSAndroid Build Coastguard Worker      "storage",
304*6dbdd20aSAndroid Build Coastguard Worker      "tables",
305*6dbdd20aSAndroid Build Coastguard Worker      "types",
306*6dbdd20aSAndroid Build Coastguard Worker    ]
307*6dbdd20aSAndroid Build Coastguard Worker  }
308*6dbdd20aSAndroid Build Coastguard Worker}
309*6dbdd20aSAndroid Build Coastguard Worker
310*6dbdd20aSAndroid Build Coastguard Workerperfetto_unittest_source_set("unittests") {
311*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
312*6dbdd20aSAndroid Build Coastguard Worker
313*6dbdd20aSAndroid Build Coastguard Worker  # Do not add sources to this target: use top_level_unittests
314*6dbdd20aSAndroid Build Coastguard Worker  # instead. This us really just a grouping
315*6dbdd20aSAndroid Build Coastguard Worker  deps = [
316*6dbdd20aSAndroid Build Coastguard Worker    ":top_level_unittests",
317*6dbdd20aSAndroid Build Coastguard Worker    "containers:unittests",
318*6dbdd20aSAndroid Build Coastguard Worker    "db:unittests",
319*6dbdd20aSAndroid Build Coastguard Worker    "db/column:unittests",
320*6dbdd20aSAndroid Build Coastguard Worker    "importers/android_bugreport:unittests",
321*6dbdd20aSAndroid Build Coastguard Worker    "importers/common:unittests",
322*6dbdd20aSAndroid Build Coastguard Worker    "importers/ftrace:unittests",
323*6dbdd20aSAndroid Build Coastguard Worker    "importers/fuchsia:unittests",
324*6dbdd20aSAndroid Build Coastguard Worker    "importers/memory_tracker:unittests",
325*6dbdd20aSAndroid Build Coastguard Worker    "importers/perf:unittests",
326*6dbdd20aSAndroid Build Coastguard Worker    "importers/proto:unittests",
327*6dbdd20aSAndroid Build Coastguard Worker    "importers/syscalls:unittests",
328*6dbdd20aSAndroid Build Coastguard Worker    "importers/systrace:unittests",
329*6dbdd20aSAndroid Build Coastguard Worker    "rpc:unittests",
330*6dbdd20aSAndroid Build Coastguard Worker    "sorter:unittests",
331*6dbdd20aSAndroid Build Coastguard Worker    "tables:unittests",
332*6dbdd20aSAndroid Build Coastguard Worker    "types:unittests",
333*6dbdd20aSAndroid Build Coastguard Worker    "util:unittests",
334*6dbdd20aSAndroid Build Coastguard Worker  ]
335*6dbdd20aSAndroid Build Coastguard Worker  if (enable_perfetto_trace_processor_json) {
336*6dbdd20aSAndroid Build Coastguard Worker    deps += [ "importers/json:unittests" ]
337*6dbdd20aSAndroid Build Coastguard Worker  }
338*6dbdd20aSAndroid Build Coastguard Worker  if (enable_perfetto_trace_processor_sqlite) {
339*6dbdd20aSAndroid Build Coastguard Worker    deps += [
340*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/engine:unittests",
341*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/intrinsics/functions:unittests",
342*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/intrinsics/operators:unittests",
343*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/intrinsics/table_functions:unittests",
344*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/parser:unittests",
345*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/preprocessor:unittests",
346*6dbdd20aSAndroid Build Coastguard Worker      "perfetto_sql/tokenizer:unittests",
347*6dbdd20aSAndroid Build Coastguard Worker      "sqlite:unittests",
348*6dbdd20aSAndroid Build Coastguard Worker    ]
349*6dbdd20aSAndroid Build Coastguard Worker  }
350*6dbdd20aSAndroid Build Coastguard Worker  if (enable_perfetto_etm_importer) {
351*6dbdd20aSAndroid Build Coastguard Worker    deps += [ "importers/etm:unittests" ]
352*6dbdd20aSAndroid Build Coastguard Worker  }
353*6dbdd20aSAndroid Build Coastguard Worker}
354*6dbdd20aSAndroid Build Coastguard Worker
355*6dbdd20aSAndroid Build Coastguard Workerperfetto_cc_proto_descriptor("gen_cc_test_messages_descriptor") {
356*6dbdd20aSAndroid Build Coastguard Worker  descriptor_name = "test_messages.descriptor"
357*6dbdd20aSAndroid Build Coastguard Worker  descriptor_target = "../protozero:testing_messages_descriptor"
358*6dbdd20aSAndroid Build Coastguard Worker}
359*6dbdd20aSAndroid Build Coastguard Worker
360*6dbdd20aSAndroid Build Coastguard Workersource_set("integrationtests") {
361*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
362*6dbdd20aSAndroid Build Coastguard Worker  sources = []
363*6dbdd20aSAndroid Build Coastguard Worker  deps = []
364*6dbdd20aSAndroid Build Coastguard Worker  if (enable_perfetto_trace_processor_sqlite) {
365*6dbdd20aSAndroid Build Coastguard Worker    sources += [
366*6dbdd20aSAndroid Build Coastguard Worker      "read_trace_integrationtest.cc",
367*6dbdd20aSAndroid Build Coastguard Worker      "trace_database_integrationtest.cc",
368*6dbdd20aSAndroid Build Coastguard Worker    ]
369*6dbdd20aSAndroid Build Coastguard Worker    deps += [
370*6dbdd20aSAndroid Build Coastguard Worker      ":lib",
371*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:default_deps",
372*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:gtest_and_gmock",
373*6dbdd20aSAndroid Build Coastguard Worker      "../../protos/perfetto/common:zero",
374*6dbdd20aSAndroid Build Coastguard Worker      "../../protos/perfetto/trace:zero",
375*6dbdd20aSAndroid Build Coastguard Worker      "../../protos/perfetto/trace_processor:zero",
376*6dbdd20aSAndroid Build Coastguard Worker      "../base",
377*6dbdd20aSAndroid Build Coastguard Worker      "../base:test_support",
378*6dbdd20aSAndroid Build Coastguard Worker      "sqlite",
379*6dbdd20aSAndroid Build Coastguard Worker    ]
380*6dbdd20aSAndroid Build Coastguard Worker  }
381*6dbdd20aSAndroid Build Coastguard Worker}
382*6dbdd20aSAndroid Build Coastguard Worker
383*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_trace_processor_json) {
384*6dbdd20aSAndroid Build Coastguard Worker  source_set("storage_minimal_smoke_tests") {
385*6dbdd20aSAndroid Build Coastguard Worker    testonly = true
386*6dbdd20aSAndroid Build Coastguard Worker    sources = [ "storage_minimal_smoke_test.cc" ]
387*6dbdd20aSAndroid Build Coastguard Worker    deps = [
388*6dbdd20aSAndroid Build Coastguard Worker      ":export_json",
389*6dbdd20aSAndroid Build Coastguard Worker      ":storage_minimal",
390*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:default_deps",
391*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:gtest_and_gmock",
392*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:gtest_main",
393*6dbdd20aSAndroid Build Coastguard Worker      "../../gn:jsoncpp",
394*6dbdd20aSAndroid Build Coastguard Worker      "../base:test_support",
395*6dbdd20aSAndroid Build Coastguard Worker    ]
396*6dbdd20aSAndroid Build Coastguard Worker  }
397*6dbdd20aSAndroid Build Coastguard Worker}
398*6dbdd20aSAndroid Build Coastguard Worker
399*6dbdd20aSAndroid Build Coastguard Workerperfetto_fuzzer_test("trace_processor_fuzzer") {
400*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
401*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "trace_parsing_fuzzer.cc" ]
402*6dbdd20aSAndroid Build Coastguard Worker  deps = [
403*6dbdd20aSAndroid Build Coastguard Worker    ":storage_minimal",
404*6dbdd20aSAndroid Build Coastguard Worker    "../../gn:default_deps",
405*6dbdd20aSAndroid Build Coastguard Worker    "../base",
406*6dbdd20aSAndroid Build Coastguard Worker  ]
407*6dbdd20aSAndroid Build Coastguard Worker}
408