# Copyright (C) 2019 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/fuzzer.gni") import("../../../gn/perfetto.gni") import("../../../gn/test.gni") perfetto_unittest_source_set("test_support") { testonly = true public_deps = [ "../../../include/perfetto/test:test_support", "../core:test_support", ] deps = [ "../../../gn:default_deps", "../../../gn:gtest_and_gmock", "../../../protos/perfetto/trace:cpp", "../../../protos/perfetto/trace:lite", "../../../protos/perfetto/trace:zero", "../../../protos/perfetto/trace/ftrace:cpp", "../../../protos/perfetto/trace/track_event:lite", "../../base", "../../base:test_support", "../core", "../core:service", "../core:test_support", ] sources = [ "aligned_buffer_test.cc", "aligned_buffer_test.h", "fake_packet.cc", "fake_packet.h", "test_shared_memory.cc", "test_shared_memory.h", "traced_value_test_support.cc", ] # These tests rely on test_task_runner.h which # has no implementation for Windows or NaCL. if (!is_win && !is_nacl) { sources += [ "fake_producer_endpoint.h", "mock_consumer.cc", "mock_consumer.h", "mock_producer.cc", "mock_producer.h", ] } } if (enable_perfetto_ipc) { perfetto_unittest_source_set("tracing_integration_test") { testonly = true deps = [ ":test_support", "../../../gn:default_deps", "../../../gn:gtest_and_gmock", "../../base", "../../base:test_support", "../core:service", "../ipc/consumer", "../ipc/producer", "../ipc/service", ] sources = [ "tracing_integration_test.cc" ] # TODO(primiano): remove the build_with_chromium conditional once the root # //BUILD.gn:libperfetto (in chromium) stops adding tracing:platform_fake. # The problem is the following: in chrome builds we end up with duplicate # symbol definitions in the test because both platorm (impl and fake) are # present: impl added here and fake coming from chromium's base (full path: # perfetto_unittests -> //(chromium)base:test_support -> //(chromium)base # -> libperfetto -> platform_fake. if (!build_with_chromium) { deps += [ "..:client_api_without_backends", "..:platform_impl", ] sources += [ "platform_unittest.cc" ] } } } if (enable_perfetto_integration_tests) { source_set("client_api_integrationtests") { testonly = true deps = [ ":api_test_support", "../:client_api", "../:platform_impl", "../../../:libperfetto_client_experimental", "../../../gn:default_deps", "../../../gn:gtest_and_gmock", "../../../include/perfetto/tracing/core", "../../../protos/perfetto/common:cpp", "../../../protos/perfetto/common:zero", "../../../protos/perfetto/config/track_event:cpp", "../../../protos/perfetto/trace:cpp", "../../../protos/perfetto/trace:zero", "../../../protos/perfetto/trace/gpu:cpp", "../../../protos/perfetto/trace/gpu:zero", "../../../protos/perfetto/trace/interned_data:cpp", "../../../protos/perfetto/trace/interned_data:zero", "../../../protos/perfetto/trace/profiling:cpp", "../../../protos/perfetto/trace/track_event:cpp", "../../base", ] sources = [ "api_integrationtest.cc", "tracing_module.cc", "tracing_module.h", "tracing_module2.cc", "tracing_module_categories.h", ] } # api_test_support needs to be self-contained and not leak any other perfetto # deps. See comment in api_test_support.h source_set("api_test_support") { testonly = true deps = [ "../../..:libperfetto_client_experimental", "../../../gn:default_deps", "../../base", "../../tracing:client_api_without_backends", ] # The system tracing backend requires IPC support. if (enable_perfetto_ipc) { deps += [ "../../../test:test_helper" ] } sources = [ "api_test_support.cc", "api_test_support.h", ] } }