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