OLD | NEW |
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 ] |
OLD | NEW |