xref: /aosp_15_r20/external/cronet/base/tracing/PRESUBMIT.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2023 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard WorkerPRESUBMIT_VERSION = '2.0.0'
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerdef CheckStdlib(input_api, output_api):
8*6777b538SAndroid Build Coastguard Worker  stdlib_dir = input_api.PresubmitLocalPath()
9*6777b538SAndroid Build Coastguard Worker  chromium_src_dir = input_api.os_path.abspath(
10*6777b538SAndroid Build Coastguard Worker    input_api.os_path.join(stdlib_dir, '..', '..'))
11*6777b538SAndroid Build Coastguard Worker  tool = input_api.os_path.join(
12*6777b538SAndroid Build Coastguard Worker    chromium_src_dir,
13*6777b538SAndroid Build Coastguard Worker    'tools', 'tracing', 'check_stdlib.py')
14*6777b538SAndroid Build Coastguard Worker  cmd = [ input_api.python3_executable, tool ]
15*6777b538SAndroid Build Coastguard Worker  test_cmd = input_api.Command(
16*6777b538SAndroid Build Coastguard Worker    name='check_stdlib',
17*6777b538SAndroid Build Coastguard Worker    cmd=cmd,
18*6777b538SAndroid Build Coastguard Worker    kwargs={},
19*6777b538SAndroid Build Coastguard Worker    message=output_api.PresubmitError)
20*6777b538SAndroid Build Coastguard Worker  return input_api.RunTests([test_cmd])
21*6777b538SAndroid Build Coastguard Worker
22*6777b538SAndroid Build Coastguard Worker_STDLIB_PATHS = (
23*6777b538SAndroid Build Coastguard Worker  r"^base/tracing/stdlib/",
24*6777b538SAndroid Build Coastguard Worker  r"^base/tracing/test/",
25*6777b538SAndroid Build Coastguard Worker  r"^base/tracing/protos/"
26*6777b538SAndroid Build Coastguard Worker)
27*6777b538SAndroid Build Coastguard Worker
28*6777b538SAndroid Build Coastguard Workerdef CheckPerfettoTestsTag(input_api, output_api):
29*6777b538SAndroid Build Coastguard Worker  """Checks that commits to the trace processor chrome stdlib or the
30*6777b538SAndroid Build Coastguard Worker  Perfetto diff tests contain a PERFETTO_TESTS tag in their commit
31*6777b538SAndroid Build Coastguard Worker  message."""
32*6777b538SAndroid Build Coastguard Worker  def FileFilter(affected_file):
33*6777b538SAndroid Build Coastguard Worker    return input_api.FilterSourceFile(affected_file,
34*6777b538SAndroid Build Coastguard Worker                                      files_to_check=_STDLIB_PATHS)
35*6777b538SAndroid Build Coastguard Worker
36*6777b538SAndroid Build Coastguard Worker  # Only consider changes to chrome stdlib or tests paths
37*6777b538SAndroid Build Coastguard Worker  if not any (input_api.AffectedFiles(file_filter=FileFilter)):
38*6777b538SAndroid Build Coastguard Worker    return []
39*6777b538SAndroid Build Coastguard Worker
40*6777b538SAndroid Build Coastguard Worker  if input_api.change.PERFETTO_TESTS:
41*6777b538SAndroid Build Coastguard Worker    return []
42*6777b538SAndroid Build Coastguard Worker
43*6777b538SAndroid Build Coastguard Worker  message = (
44*6777b538SAndroid Build Coastguard Worker    'Must provide PERFETTO_TESTS='
45*6777b538SAndroid Build Coastguard Worker    '`autoninja -C out/Default perfetto_diff_tests && '
46*6777b538SAndroid Build Coastguard Worker    'out/Default/bin/run_perfetto_diff_tests` line in CL description.'
47*6777b538SAndroid Build Coastguard Worker    '\nPlease ensure the Perfetto diff tests pass before submitting.'
48*6777b538SAndroid Build Coastguard Worker  )
49*6777b538SAndroid Build Coastguard Worker  return [output_api.PresubmitNotifyResult(message)]
50