Commit eca797ab authored by Paul Jensen's avatar Paul Jensen Committed by Commit Bot

[Cronet] Only run tools unittests when tools have changed

These tests are slow and only relvant to tools changes so there
is no point in running them all the time. These tests fail on
Windows, so this change prevents them from interfereing with
large-scale-refactorings done on Windows that don't affect the
tools.

Bug: 871754
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Iccf6042665a027efb181848508128ef435cdd22b
Reviewed-on: https://chromium-review.googlesource.com/1172918
Commit-Queue: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: default avatarMisha Efimov <mef@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582995}
parent e36e815c
...@@ -72,16 +72,15 @@ def _PackageChecks(input_api, output_api): ...@@ -72,16 +72,15 @@ def _PackageChecks(input_api, output_api):
return [] return []
def _RunUnittests(input_api, output_api): def _RunToolsUnittests(input_api, output_api):
return input_api.canned_checks.RunUnitTestsInDirectory( return input_api.canned_checks.RunUnitTestsInDirectory(
input_api, output_api, '.', [ r'^.+_unittest\.py$']) input_api, output_api, '.', [ r'^tools_unittest\.py$'])
def _ChangeAffectsCronetForAndroid(change): def _ChangeAffectsCronetForAndroid(change):
""" Returns |true| if the change may affect Cronet for Android. """ """ Returns |true| if the change may affect Cronet for Android. """
for affected_file in change.AffectedFiles(): for path in change.LocalPaths():
path = affected_file.LocalPath()
if not path.startswith(os.path.join('components', 'cronet', 'ios')): if not path.startswith(os.path.join('components', 'cronet', 'ios')):
return True return True
return False return False
...@@ -90,23 +89,32 @@ def _ChangeAffectsCronetForAndroid(change): ...@@ -90,23 +89,32 @@ def _ChangeAffectsCronetForAndroid(change):
def _ChangeAffectsCronetForIos(change): def _ChangeAffectsCronetForIos(change):
""" Returns |true| if the change may affect Cronet for iOS. """ """ Returns |true| if the change may affect Cronet for iOS. """
for affected_file in change.AffectedFiles(): for path in change.LocalPaths():
path = affected_file.LocalPath()
if not path.startswith(os.path.join('components', 'cronet', 'android')): if not path.startswith(os.path.join('components', 'cronet', 'android')):
return True return True
return False return False
def _ChangeAffectsCronetTools(change):
""" Returns |true| if the change may affect Cronet tools. """
for path in change.LocalPaths():
if path.startswith(os.path.join('components', 'cronet', 'tools')):
return True
return False
def CheckChangeOnUpload(input_api, output_api): def CheckChangeOnUpload(input_api, output_api):
results = [] results = []
results.extend(_PyLintChecks(input_api, output_api)) results.extend(_PyLintChecks(input_api, output_api))
results.extend(_PackageChecks(input_api, output_api)) results.extend(_PackageChecks(input_api, output_api))
results.extend(_RunUnittests(input_api, output_api)) if _ChangeAffectsCronetTools(input_api.change):
results.extend(_RunToolsUnittests(input_api, output_api))
return results return results
def CheckChangeOnCommit(input_api, output_api): def CheckChangeOnCommit(input_api, output_api):
return _RunUnittests(input_api, output_api) return _RunToolsUnittests(input_api, output_api)
def PostUploadHook(cl, change, output_api): def PostUploadHook(cl, change, output_api):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment