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