# Copyright (C) 2017 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("../../../../gn/perfetto.gni") import("../../../../gn/proto_library.gni") import("../../../../gn/fuzzer.gni") import("../../../../gn/protozero_library.gni") # For use_libfuzzer. if (perfetto_build_standalone || perfetto_build_with_android) { import("//gn/standalone/sanitizers/vars.gni") } else { import("//build/config/sanitizers/sanitizers.gni") } source_set("test_support") { testonly = true deps = [ ":ftrace", "../../../../gn:default_deps", "../../../protozero", ] public_deps = [ "../../../protozero", ] sources = [ "test/cpu_reader_support.cc", "test/cpu_reader_support.h", ] } source_set("unittests") { testonly = true deps = [ ":format_parser", ":ftrace", ":test_messages_lite", ":test_messages_zero", ":test_support", "../../../../gn:default_deps", "../../../../gn:gtest_deps", "../../../../protos/perfetto/trace/ftrace:lite", "../../../base:test_support", "../../../tracing:test_support", ] sources = [ "cpu_reader_unittest.cc", "cpu_stats_parser_unittest.cc", "event_info_unittest.cc", "format_parser_unittest.cc", "ftrace_config_muxer_unittest.cc", "ftrace_config_unittest.cc", "ftrace_controller_unittest.cc", "ftrace_procfs_unittest.cc", "page_pool_unittest.cc", "proto_translation_table_unittest.cc", ] } ftrace_reader_test_proto_sources = [ "test/test_messages.proto" ] protozero_library("test_messages_zero") { sources = ftrace_reader_test_proto_sources proto_in_dir = perfetto_root_path proto_out_dir = perfetto_root_path generator_plugin_options = "wrapper_namespace=pbzero" } proto_library("test_messages_lite") { generate_python = false sources = ftrace_reader_test_proto_sources proto_in_dir = perfetto_root_path proto_out_dir = perfetto_root_path } # These tests require access to a real ftrace implementation and must # run with sudo. source_set("integrationtests") { testonly = true deps = [ ":ftrace", ":test_support", "../../../../gn:default_deps", "../../../../gn:gtest_deps", "../../../../protos/perfetto/trace/ftrace:lite", "../../../base", "../../../tracing", ] sources = [ "ftrace_procfs_integrationtest.cc", ] } source_set("ftrace") { public_deps = [ "../../../../protos/perfetto/trace/ftrace:zero", "../../../tracing", ] libs = [ "dl" ] # for dlopen() deps = [ ":format_parser", "..:data_source", "../../../../gn:default_deps", "../../../../include/perfetto/traced", "../../../android_internal:headers", "../../../base", "../../../protozero", ] sources = [ "atrace_hal_wrapper.cc", "atrace_hal_wrapper.h", "atrace_wrapper.cc", "atrace_wrapper.h", "cpu_reader.cc", "cpu_reader.h", "cpu_stats_parser.cc", "cpu_stats_parser.h", "event_info.cc", "event_info.h", "event_info_constants.cc", "event_info_constants.h", "ftrace_config.cc", "ftrace_config.h", "ftrace_config_muxer.cc", "ftrace_config_muxer.h", "ftrace_controller.cc", "ftrace_controller.h", "ftrace_data_source.cc", "ftrace_data_source.h", "ftrace_metadata.cc", "ftrace_metadata.h", "ftrace_procfs.cc", "ftrace_procfs.h", "ftrace_stats.cc", "ftrace_stats.h", "page_pool.cc", "page_pool.h", "proto_translation_table.cc", "proto_translation_table.h", ] } source_set("format_parser") { deps = [ "../../../../gn:default_deps", "../../../base", ] sources = [ "format_parser.cc", "format_parser.h", ] } if (perfetto_build_standalone) { source_set("benchmarks") { testonly = true deps = [ ":ftrace", ":test_support", "../../../../gn:default_deps", "//buildtools:benchmark", ] sources = [ "cpu_reader_benchmark.cc", ] } } perfetto_fuzzer_test("cpu_reader_fuzzer") { testonly = true sources = [ "cpu_reader_fuzzer.cc", ] deps = [ ":ftrace", ":test_support", "../../../../gn:default_deps", ] }