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