xref: /aosp_15_r20/external/perfetto/src/tracing/test/BUILD.gn (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
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