Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: tracing/PRESUBMIT.py

Issue 2914163002: Check that Diagnostic subclasses are registered in presubmit. (Closed)
Patch Set: comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tracing/bin/validate_all_diagnostics » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import sys 5 import sys
6 6
7 def _RunArgs(args, input_api): 7 def _RunArgs(args, input_api):
8 p = input_api.subprocess.Popen(args, stdout=input_api.subprocess.PIPE, 8 p = input_api.subprocess.Popen(args, stdout=input_api.subprocess.PIPE,
9 stderr=input_api.subprocess.STDOUT) 9 stderr=input_api.subprocess.STDOUT)
10 out, _ = p.communicate() 10 out, _ = p.communicate()
11 return (out, p.returncode) 11 return (out, p.returncode)
12 12
13 13
14 def _CheckRegisteredMetrics(input_api, output_api): 14 def _CheckRegisteredMetrics(input_api, output_api):
15 """ Check that all tracing metrics are imported in all_metrics.html """ 15 """ Check that all tracing metrics are imported in all_metrics.html """
16 results = [] 16 results = []
17 tracing_dir = input_api.PresubmitLocalPath() 17 tracing_dir = input_api.PresubmitLocalPath()
18 out, return_code = _RunArgs( 18 out, return_code = _RunArgs(
19 [input_api.python_executable, 19 [input_api.python_executable,
20 input_api.os_path.join(tracing_dir, 'bin', 'validate_all_metrics')], 20 input_api.os_path.join(tracing_dir, 'bin', 'validate_all_metrics')],
21 input_api) 21 input_api)
22 if return_code: 22 if return_code:
23 results.append(output_api.PresubmitError( 23 results.append(output_api.PresubmitError(
24 'Failed validate_all_metrics: ', long_text=out)) 24 'Failed validate_all_metrics: ', long_text=out))
25 return results 25 return results
26 26
27 27
28 def _CheckRegisteredDiagnostics(input_api, output_api):
29 """Check that all Diagnostic subclasses are registered."""
30 results = []
31 tracing_dir = input_api.PresubmitLocalPath()
32 out, return_code = _RunArgs(
33 [input_api.python_executable,
34 input_api.os_path.join(tracing_dir, 'bin', 'validate_all_diagnostics')],
35 input_api)
36 if return_code:
37 results.append(output_api.PresubmitError(
38 'Failed validate_all_diagnostics: ', long_text=out))
39 return results
40
41
42
28 def CheckChangeOnUpload(input_api, output_api): 43 def CheckChangeOnUpload(input_api, output_api):
29 return _CheckChange(input_api, output_api) 44 return _CheckChange(input_api, output_api)
30 45
31 46
32 def CheckChangeOnCommit(input_api, output_api): 47 def CheckChangeOnCommit(input_api, output_api):
33 return _CheckChange(input_api, output_api) 48 return _CheckChange(input_api, output_api)
34 49
35 50
36 def _CheckChange(input_api, output_api): 51 def _CheckChange(input_api, output_api):
37 results = [] 52 results = []
38 53
39 original_sys_path = sys.path 54 original_sys_path = sys.path
40 try: 55 try:
41 sys.path += [input_api.PresubmitLocalPath()] 56 sys.path += [input_api.PresubmitLocalPath()]
42 from tracing_build import check_gypi 57 from tracing_build import check_gypi
43 error = check_gypi.GypiCheck() 58 error = check_gypi.GypiCheck()
44 if error: 59 if error:
45 results.append(output_api.PresubmitError(error)) 60 results.append(output_api.PresubmitError(error))
46 finally: 61 finally:
47 sys.path = original_sys_path 62 sys.path = original_sys_path
48 63
49 results += input_api.RunTests(input_api.canned_checks.GetPylint( 64 results += input_api.RunTests(input_api.canned_checks.GetPylint(
50 input_api, output_api, extra_paths_list=_GetPathsToPrepend(input_api), 65 input_api, output_api, extra_paths_list=_GetPathsToPrepend(input_api),
51 pylintrc='../pylintrc')) 66 pylintrc='../pylintrc'))
52 67
53 results += _CheckRegisteredMetrics(input_api, output_api) 68 results += _CheckRegisteredMetrics(input_api, output_api)
69 results += _CheckRegisteredDiagnostics(input_api, output_api)
54 70
55 return results 71 return results
56 72
57 73
58 def _GetPathsToPrepend(input_api): 74 def _GetPathsToPrepend(input_api):
59 project_dir = input_api.PresubmitLocalPath() 75 project_dir = input_api.PresubmitLocalPath()
60 catapult_dir = input_api.os_path.join(project_dir, '..') 76 catapult_dir = input_api.os_path.join(project_dir, '..')
61 return [ 77 return [
62 project_dir, 78 project_dir,
63 input_api.os_path.join(catapult_dir, 'third_party', 'mock'), 79 input_api.os_path.join(catapult_dir, 'third_party', 'mock'),
64 ] 80 ]
OLDNEW
« no previous file with comments | « no previous file | tracing/bin/validate_all_diagnostics » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698