xref: /aosp_15_r20/external/cronet/base/tracing/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Copyright 2023 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/util/generate_wrapper.gni")
6import("//build_overrides/build.gni")
7
8if (enable_base_tracing) {
9  generate_wrapper("perfetto_diff_tests") {
10    testonly = true
11
12    _protos_path = "$root_gen_dir/third_party/perfetto/protos"
13    _trace_descriptor = "$_protos_path/perfetto/trace/trace.descriptor"
14    _rebased_trace_descriptor = rebase_path(_trace_descriptor, root_build_dir)
15    _test_extensions_descriptor =
16        "$_protos_path/perfetto/trace/test_extensions.descriptor"
17    _rebased_test_extensions_descriptor =
18        rebase_path(_test_extensions_descriptor, root_build_dir)
19    _metrics_descriptor = "$_protos_path/perfetto/metrics/metrics.descriptor"
20    _rebased_metrics_descriptor =
21        rebase_path(_metrics_descriptor, root_build_dir)
22    _all_chrome_metrics_descriptor =
23        "$_protos_path/perfetto/metrics/chrome/all_chrome_metrics.descriptor"
24    _rebased_all_chrome_metrics_descriptor =
25        rebase_path(_all_chrome_metrics_descriptor, root_build_dir)
26    _chrome_track_event_descriptor =
27        "$root_gen_dir/base/tracing/protos/chrome_track_event.descriptor"
28    _rebased_chrome_track_event_descriptor =
29        rebase_path(_chrome_track_event_descriptor, root_build_dir)
30
31    _perfetto_script =
32        rebase_path("//third_party/perfetto/tools/diff_test_trace_processor.py",
33                    root_build_dir)
34    _chrome_stdlib = rebase_path("//base/tracing/stdlib/chrome", root_build_dir)
35    _test_dir = rebase_path("//base/tracing", root_build_dir)
36
37    executable = "//base/tracing/test/run_perfetto_diff_tests.py"
38    wrapper_script = "$root_build_dir/bin/run_perfetto_diff_tests"
39
40    executable_args = [
41      "--trace-processor-shell",
42      "@WrappedPath(./trace_processor_shell)",
43      "--chrome-stdlib",
44      "@WrappedPath($_chrome_stdlib)",
45      "--test-dir",
46      "@WrappedPath($_test_dir)",
47      "--trace-descriptor",
48      "@WrappedPath($_rebased_trace_descriptor)",
49      "--test-extensions-descriptor",
50      "@WrappedPath($_rebased_test_extensions_descriptor)",
51      "--metrics-descriptor",
52      "@WrappedPath($_rebased_metrics_descriptor)",
53      "--all-chrome-metrics-descriptor",
54      "@WrappedPath($_rebased_all_chrome_metrics_descriptor)",
55      "--chrome-track-event-descriptor",
56      "@WrappedPath($_rebased_chrome_track_event_descriptor)",
57      "--script",
58      "@WrappedPath($_perfetto_script)",
59    ]
60
61    data_deps = [
62      "//base/tracing/protos:chrome_track_event",
63      "//third_party/perfetto/protos/perfetto/metrics:descriptor",
64      "//third_party/perfetto/protos/perfetto/metrics/chrome:descriptor",
65      "//third_party/perfetto/protos/perfetto/trace:descriptor",
66      "//third_party/perfetto/protos/perfetto/trace:test_extensions_descriptor",
67      "//third_party/perfetto/src/trace_processor:trace_processor_shell",
68    ]
69
70    data = [
71      "//third_party/perfetto/tools/diff_test_trace_processor.py",
72      "//third_party/perfetto/python/generators/diff_tests/",
73      "//base/tracing/",
74      _trace_descriptor,
75      _test_extensions_descriptor,
76      _metrics_descriptor,
77      _all_chrome_metrics_descriptor,
78      _chrome_track_event_descriptor,
79    ]
80  }
81}
82