1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2019 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/test.gni") 18*6dbdd20aSAndroid Build Coastguard Worker 19*6dbdd20aSAndroid Build Coastguard Workerperfetto_unittest_source_set("test_support") { 20*6dbdd20aSAndroid Build Coastguard Worker testonly = true 21*6dbdd20aSAndroid Build Coastguard Worker public_deps = [ 22*6dbdd20aSAndroid Build Coastguard Worker "../../../include/perfetto/test:test_support", 23*6dbdd20aSAndroid Build Coastguard Worker "../core:test_support", 24*6dbdd20aSAndroid Build Coastguard Worker ] 25*6dbdd20aSAndroid Build Coastguard Worker deps = [ 26*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 27*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:gtest_and_gmock", 28*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace:cpp", 29*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace:lite", 30*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace:zero", 31*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/ftrace:cpp", 32*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/track_event:lite", 33*6dbdd20aSAndroid Build Coastguard Worker "../../base", 34*6dbdd20aSAndroid Build Coastguard Worker "../../base:test_support", 35*6dbdd20aSAndroid Build Coastguard Worker "../core", 36*6dbdd20aSAndroid Build Coastguard Worker "../core:test_support", 37*6dbdd20aSAndroid Build Coastguard Worker "../service", 38*6dbdd20aSAndroid Build Coastguard Worker ] 39*6dbdd20aSAndroid Build Coastguard Worker sources = [ 40*6dbdd20aSAndroid Build Coastguard Worker "aligned_buffer_test.cc", 41*6dbdd20aSAndroid Build Coastguard Worker "aligned_buffer_test.h", 42*6dbdd20aSAndroid Build Coastguard Worker "fake_packet.cc", 43*6dbdd20aSAndroid Build Coastguard Worker "fake_packet.h", 44*6dbdd20aSAndroid Build Coastguard Worker "test_shared_memory.cc", 45*6dbdd20aSAndroid Build Coastguard Worker "test_shared_memory.h", 46*6dbdd20aSAndroid Build Coastguard Worker "traced_value_test_support.cc", 47*6dbdd20aSAndroid Build Coastguard Worker ] 48*6dbdd20aSAndroid Build Coastguard Worker 49*6dbdd20aSAndroid Build Coastguard Worker # These tests rely on test_task_runner.h which 50*6dbdd20aSAndroid Build Coastguard Worker # has no implementation for Windows or NaCL. 51*6dbdd20aSAndroid Build Coastguard Worker if (!is_win && !is_nacl) { 52*6dbdd20aSAndroid Build Coastguard Worker sources += [ 53*6dbdd20aSAndroid Build Coastguard Worker "mock_consumer.cc", 54*6dbdd20aSAndroid Build Coastguard Worker "mock_consumer.h", 55*6dbdd20aSAndroid Build Coastguard Worker "mock_producer.cc", 56*6dbdd20aSAndroid Build Coastguard Worker "mock_producer.h", 57*6dbdd20aSAndroid Build Coastguard Worker "mock_producer_endpoint.h", 58*6dbdd20aSAndroid Build Coastguard Worker "proxy_producer_endpoint.cc", 59*6dbdd20aSAndroid Build Coastguard Worker "proxy_producer_endpoint.h", 60*6dbdd20aSAndroid Build Coastguard Worker ] 61*6dbdd20aSAndroid Build Coastguard Worker } 62*6dbdd20aSAndroid Build Coastguard Worker} 63*6dbdd20aSAndroid Build Coastguard Worker 64*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_ipc && enable_perfetto_system_consumer) { 65*6dbdd20aSAndroid Build Coastguard Worker perfetto_unittest_source_set("tracing_integration_test") { 66*6dbdd20aSAndroid Build Coastguard Worker testonly = true 67*6dbdd20aSAndroid Build Coastguard Worker deps = [ 68*6dbdd20aSAndroid Build Coastguard Worker ":test_support", 69*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 70*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:gtest_and_gmock", 71*6dbdd20aSAndroid Build Coastguard Worker "../../base", 72*6dbdd20aSAndroid Build Coastguard Worker "../../base:test_support", 73*6dbdd20aSAndroid Build Coastguard Worker "../ipc/consumer", 74*6dbdd20aSAndroid Build Coastguard Worker "../ipc/producer", 75*6dbdd20aSAndroid Build Coastguard Worker "../ipc/service", 76*6dbdd20aSAndroid Build Coastguard Worker "../service", 77*6dbdd20aSAndroid Build Coastguard Worker ] 78*6dbdd20aSAndroid Build Coastguard Worker sources = [ "tracing_integration_test.cc" ] 79*6dbdd20aSAndroid Build Coastguard Worker 80*6dbdd20aSAndroid Build Coastguard Worker # TODO(primiano): remove the build_with_chromium conditional once the root 81*6dbdd20aSAndroid Build Coastguard Worker # //BUILD.gn:libperfetto (in chromium) stops adding tracing:platform_fake. 82*6dbdd20aSAndroid Build Coastguard Worker # The problem is the following: in chrome builds we end up with duplicate 83*6dbdd20aSAndroid Build Coastguard Worker # symbol definitions in the test because both platorm (impl and fake) are 84*6dbdd20aSAndroid Build Coastguard Worker # present: impl added here and fake coming from chromium's base (full path: 85*6dbdd20aSAndroid Build Coastguard Worker # perfetto_unittests -> //(chromium)base:test_support -> //(chromium)base 86*6dbdd20aSAndroid Build Coastguard Worker # -> libperfetto -> platform_fake. 87*6dbdd20aSAndroid Build Coastguard Worker if (!build_with_chromium) { 88*6dbdd20aSAndroid Build Coastguard Worker deps += [ 89*6dbdd20aSAndroid Build Coastguard Worker "..:client_api_without_backends", 90*6dbdd20aSAndroid Build Coastguard Worker "..:platform_impl", 91*6dbdd20aSAndroid Build Coastguard Worker ] 92*6dbdd20aSAndroid Build Coastguard Worker sources += [ "platform_unittest.cc" ] 93*6dbdd20aSAndroid Build Coastguard Worker } 94*6dbdd20aSAndroid Build Coastguard Worker } 95*6dbdd20aSAndroid Build Coastguard Worker} 96*6dbdd20aSAndroid Build Coastguard Worker 97*6dbdd20aSAndroid Build Coastguard Workerif (enable_perfetto_integration_tests) { 98*6dbdd20aSAndroid Build Coastguard Worker source_set("client_api_integrationtests") { 99*6dbdd20aSAndroid Build Coastguard Worker testonly = true 100*6dbdd20aSAndroid Build Coastguard Worker deps = [ 101*6dbdd20aSAndroid Build Coastguard Worker ":api_test_support", 102*6dbdd20aSAndroid Build Coastguard Worker "../:client_api", 103*6dbdd20aSAndroid Build Coastguard Worker "../:platform_impl", 104*6dbdd20aSAndroid Build Coastguard Worker "../../../:libperfetto_client_experimental", 105*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 106*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:gtest_and_gmock", 107*6dbdd20aSAndroid Build Coastguard Worker "../../../include/perfetto/tracing/core", 108*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/common:cpp", 109*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/common:zero", 110*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/config/track_event:cpp", 111*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace:cpp", 112*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace:zero", 113*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/gpu:cpp", 114*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/gpu:zero", 115*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/interned_data:cpp", 116*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/interned_data:zero", 117*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/profiling:cpp", 118*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/track_event:cpp", 119*6dbdd20aSAndroid Build Coastguard Worker "../../../test:integrationtest_initializer", 120*6dbdd20aSAndroid Build Coastguard Worker "../../base", 121*6dbdd20aSAndroid Build Coastguard Worker ] 122*6dbdd20aSAndroid Build Coastguard Worker sources = [ 123*6dbdd20aSAndroid Build Coastguard Worker "api_integrationtest.cc", 124*6dbdd20aSAndroid Build Coastguard Worker "tracing_module.cc", 125*6dbdd20aSAndroid Build Coastguard Worker "tracing_module.h", 126*6dbdd20aSAndroid Build Coastguard Worker "tracing_module2.cc", 127*6dbdd20aSAndroid Build Coastguard Worker "tracing_module3.cc", 128*6dbdd20aSAndroid Build Coastguard Worker "tracing_module_categories.h", 129*6dbdd20aSAndroid Build Coastguard Worker ] 130*6dbdd20aSAndroid Build Coastguard Worker } 131*6dbdd20aSAndroid Build Coastguard Worker 132*6dbdd20aSAndroid Build Coastguard Worker # api_test_support needs to be self-contained and not leak any other perfetto 133*6dbdd20aSAndroid Build Coastguard Worker # deps. See comment in api_test_support.h 134*6dbdd20aSAndroid Build Coastguard Worker source_set("api_test_support") { 135*6dbdd20aSAndroid Build Coastguard Worker testonly = true 136*6dbdd20aSAndroid Build Coastguard Worker deps = [ 137*6dbdd20aSAndroid Build Coastguard Worker "../../..:libperfetto_client_experimental", 138*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 139*6dbdd20aSAndroid Build Coastguard Worker "../../base", 140*6dbdd20aSAndroid Build Coastguard Worker "../../tracing:client_api_without_backends", 141*6dbdd20aSAndroid Build Coastguard Worker ] 142*6dbdd20aSAndroid Build Coastguard Worker 143*6dbdd20aSAndroid Build Coastguard Worker # The system tracing backend requires IPC support. 144*6dbdd20aSAndroid Build Coastguard Worker if (enable_perfetto_ipc) { 145*6dbdd20aSAndroid Build Coastguard Worker deps += [ "../../../test:test_helper" ] 146*6dbdd20aSAndroid Build Coastguard Worker } 147*6dbdd20aSAndroid Build Coastguard Worker sources = [ 148*6dbdd20aSAndroid Build Coastguard Worker "api_test_support.cc", 149*6dbdd20aSAndroid Build Coastguard Worker "api_test_support.h", 150*6dbdd20aSAndroid Build Coastguard Worker ] 151*6dbdd20aSAndroid Build Coastguard Worker } 152*6dbdd20aSAndroid Build Coastguard Worker} 153