| OLD | NEW |
| 1 # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 1 # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| 2 # | 2 # |
| 3 # Use of this source code is governed by a BSD-style license | 3 # Use of this source code is governed by a BSD-style license |
| 4 # that can be found in the LICENSE file in the root of the source | 4 # that can be found in the LICENSE file in the root of the source |
| 5 # tree. An additional intellectual property rights grant can be found | 5 # tree. An additional intellectual property rights grant can be found |
| 6 # in the file PATENTS. All contributing project authors may | 6 # in the file PATENTS. All contributing project authors may |
| 7 # be found in the AUTHORS file in the root of the source tree. | 7 # be found in the AUTHORS file in the root of the source tree. |
| 8 | 8 |
| 9 import json | 9 import json |
| 10 import os | 10 import os |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 if not os.path.isdir(path): | 119 if not os.path.isdir(path): |
| 120 non_existing_paths.append(path) | 120 non_existing_paths.append(path) |
| 121 if non_existing_paths: | 121 if non_existing_paths: |
| 122 return [output_api.PresubmitError( | 122 return [output_api.PresubmitError( |
| 123 'Directories to native API headers have changed which has made the ' | 123 'Directories to native API headers have changed which has made the ' |
| 124 'list in PRESUBMIT.py outdated.\nPlease update it to the current ' | 124 'list in PRESUBMIT.py outdated.\nPlease update it to the current ' |
| 125 'location of our native APIs.', | 125 'location of our native APIs.', |
| 126 non_existing_paths)] | 126 non_existing_paths)] |
| 127 return [] | 127 return [] |
| 128 | 128 |
| 129 api_change_msg = """ | 129 API_CHANGE_MSG = """ |
| 130 You seem to be changing native API header files. Please make sure that you: | 130 You seem to be changing native API header files. Please make sure that you: |
| 131 1. Make compatible changes that don't break existing clients. Usually | 131 1. Make compatible changes that don't break existing clients. Usually |
| 132 this is done by keeping the existing method signatures unchanged. | 132 this is done by keeping the existing method signatures unchanged. |
| 133 2. Mark the old stuff as deprecated (see RTC_DEPRECATED macro). | 133 2. Mark the old stuff as deprecated (see RTC_DEPRECATED macro). |
| 134 3. Create a timeline and plan for when the deprecated stuff will be | 134 3. Create a timeline and plan for when the deprecated stuff will be |
| 135 removed. (The amount of time we give users to change their code | 135 removed. (The amount of time we give users to change their code |
| 136 should be informed by how much work it is for them. If they just | 136 should be informed by how much work it is for them. If they just |
| 137 need to replace one name with another or something equally | 137 need to replace one name with another or something equally |
| 138 simple, 1-2 weeks might be good; if they need to do serious work, | 138 simple, 1-2 weeks might be good; if they need to do serious work, |
| 139 up to 3 months may be called for.) | 139 up to 3 months may be called for.) |
| 140 4. Update/inform existing downstream code owners to stop using the | 140 4. Update/inform existing downstream code owners to stop using the |
| 141 deprecated stuff. (Send announcements to | 141 deprecated stuff. (Send announcements to |
| 142 discuss-webrtc@googlegroups.com and webrtc-users@google.com.) | 142 discuss-webrtc@googlegroups.com and webrtc-users@google.com.) |
| 143 5. Remove the deprecated stuff, once the agreed-upon amount of time | 143 5. Remove the deprecated stuff, once the agreed-upon amount of time |
| 144 has passed. | 144 has passed. |
| 145 Related files: | 145 Related files: |
| 146 """ | 146 """ |
| 147 | 147 |
| 148 def _CheckNativeApiHeaderChanges(input_api, output_api): | 148 def _CheckNativeApiHeaderChanges(input_api, output_api): |
| 149 """Checks to remind proper changing of native APIs.""" | 149 """Checks to remind proper changing of native APIs.""" |
| 150 files = [] | 150 files = [] |
| 151 for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile): | 151 for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile): |
| 152 if f.LocalPath().endswith('.h'): | 152 if f.LocalPath().endswith('.h'): |
| 153 for path in API_DIRS: | 153 for path in API_DIRS: |
| 154 if os.path.dirname(f.LocalPath()) == path: | 154 if os.path.dirname(f.LocalPath()) == path: |
| 155 files.append(f) | 155 files.append(f) |
| 156 | 156 |
| 157 if files: | 157 if files: |
| 158 return [output_api.PresubmitNotifyResult(api_change_msg, files)] | 158 return [output_api.PresubmitNotifyResult(API_CHANGE_MSG, files)] |
| 159 return [] | 159 return [] |
| 160 | 160 |
| 161 | 161 |
| 162 def _CheckNoIOStreamInHeaders(input_api, output_api): | 162 def _CheckNoIOStreamInHeaders(input_api, output_api): |
| 163 """Checks to make sure no .h files include <iostream>.""" | 163 """Checks to make sure no .h files include <iostream>.""" |
| 164 files = [] | 164 files = [] |
| 165 pattern = input_api.re.compile(r'^#include\s*<iostream>', | 165 pattern = input_api.re.compile(r'^#include\s*<iostream>', |
| 166 input_api.re.MULTILINE) | 166 input_api.re.MULTILINE) |
| 167 for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile): | 167 for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile): |
| 168 if not f.LocalPath().endswith('.h'): | 168 if not f.LocalPath().endswith('.h'): |
| (...skipping 24 matching lines...) Expand all Loading... |
| 193 files.append(f) | 193 files.append(f) |
| 194 | 194 |
| 195 if files: | 195 if files: |
| 196 return [output_api.PresubmitError( | 196 return [output_api.PresubmitError( |
| 197 'Do not use #pragma once in header files.\n' | 197 'Do not use #pragma once in header files.\n' |
| 198 'See http://www.chromium.org/developers/coding-style#TOC-File-headers', | 198 'See http://www.chromium.org/developers/coding-style#TOC-File-headers', |
| 199 files)] | 199 files)] |
| 200 return [] | 200 return [] |
| 201 | 201 |
| 202 | 202 |
| 203 def _CheckNoFRIEND_TEST(input_api, output_api): | 203 def _CheckNoFRIEND_TEST(input_api, output_api): # pylint: disable=invalid-name |
| 204 """Make sure that gtest's FRIEND_TEST() macro is not used, the | 204 """Make sure that gtest's FRIEND_TEST() macro is not used, the |
| 205 FRIEND_TEST_ALL_PREFIXES() macro from testsupport/gtest_prod_util.h should be | 205 FRIEND_TEST_ALL_PREFIXES() macro from testsupport/gtest_prod_util.h should be |
| 206 used instead since that allows for FLAKY_, FAILS_ and DISABLED_ prefixes.""" | 206 used instead since that allows for FLAKY_, FAILS_ and DISABLED_ prefixes.""" |
| 207 problems = [] | 207 problems = [] |
| 208 | 208 |
| 209 file_filter = lambda f: f.LocalPath().endswith(('.cc', '.h')) | 209 file_filter = lambda f: f.LocalPath().endswith(('.cc', '.h')) |
| 210 for f in input_api.AffectedFiles(file_filter=file_filter): | 210 for f in input_api.AffectedFiles(file_filter=file_filter): |
| 211 for line_num, line in f.ChangedContents(): | 211 for line_num, line in f.ChangedContents(): |
| 212 if 'FRIEND_TEST(' in line: | 212 if 'FRIEND_TEST(' in line: |
| 213 problems.append(' %s:%d' % (f.LocalPath(), line_num)) | 213 problems.append(' %s:%d' % (f.LocalPath(), line_num)) |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 file_filter=FilterFile, include_deletes=False): | 459 file_filter=FilterFile, include_deletes=False): |
| 460 parse_error = GetJSONParseError(input_api, | 460 parse_error = GetJSONParseError(input_api, |
| 461 affected_file.AbsoluteLocalPath()) | 461 affected_file.AbsoluteLocalPath()) |
| 462 if parse_error: | 462 if parse_error: |
| 463 results.append(output_api.PresubmitError('%s could not be parsed: %s' % | 463 results.append(output_api.PresubmitError('%s could not be parsed: %s' % |
| 464 (affected_file.LocalPath(), parse_error))) | 464 (affected_file.LocalPath(), parse_error))) |
| 465 return results | 465 return results |
| 466 | 466 |
| 467 | 467 |
| 468 def _RunPythonTests(input_api, output_api): | 468 def _RunPythonTests(input_api, output_api): |
| 469 def join(*args): | 469 def Join(*args): |
| 470 return input_api.os_path.join(input_api.PresubmitLocalPath(), *args) | 470 return input_api.os_path.join(input_api.PresubmitLocalPath(), *args) |
| 471 | 471 |
| 472 test_directories = [ | 472 test_directories = [ |
| 473 join('webrtc', 'tools', 'py_event_log_analyzer') | 473 Join('webrtc', 'tools', 'py_event_log_analyzer') |
| 474 ] + [ | 474 ] + [ |
| 475 root for root, _, files in os.walk(join('tools-webrtc')) | 475 root for root, _, files in os.walk(Join('tools-webrtc')) |
| 476 if any(f.endswith('_test.py') for f in files) | 476 if any(f.endswith('_test.py') for f in files) |
| 477 ] | 477 ] |
| 478 | 478 |
| 479 tests = [] | 479 tests = [] |
| 480 for directory in test_directories: | 480 for directory in test_directories: |
| 481 tests.extend( | 481 tests.extend( |
| 482 input_api.canned_checks.GetUnitTestsInDirectory( | 482 input_api.canned_checks.GetUnitTestsInDirectory( |
| 483 input_api, | 483 input_api, |
| 484 output_api, | 484 output_api, |
| 485 directory, | 485 directory, |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 input_api, output_api)) | 575 input_api, output_api)) |
| 576 results.extend(input_api.canned_checks.CheckChangeHasDescription( | 576 results.extend(input_api.canned_checks.CheckChangeHasDescription( |
| 577 input_api, output_api)) | 577 input_api, output_api)) |
| 578 results.extend(_CheckChangeHasBugField(input_api, output_api)) | 578 results.extend(_CheckChangeHasBugField(input_api, output_api)) |
| 579 results.extend(input_api.canned_checks.CheckChangeHasTestField( | 579 results.extend(input_api.canned_checks.CheckChangeHasTestField( |
| 580 input_api, output_api)) | 580 input_api, output_api)) |
| 581 results.extend(input_api.canned_checks.CheckTreeIsOpen( | 581 results.extend(input_api.canned_checks.CheckTreeIsOpen( |
| 582 input_api, output_api, | 582 input_api, output_api, |
| 583 json_url='http://webrtc-status.appspot.com/current?format=json')) | 583 json_url='http://webrtc-status.appspot.com/current?format=json')) |
| 584 return results | 584 return results |
| OLD | NEW |