summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/android/PRESUBMIT.py24
-rw-r--r--build/android/devil/PRESUBMIT.py87
-rw-r--r--build/android/devil/pylintrc15
3 files changed, 104 insertions, 22 deletions
diff --git a/build/android/PRESUBMIT.py b/build/android/PRESUBMIT.py
index ad8ca1f..8cfe59c 100644
--- a/build/android/PRESUBMIT.py
+++ b/build/android/PRESUBMIT.py
@@ -27,8 +27,8 @@ def CommonChecks(input_api, output_api):
input_api,
output_api,
pylintrc='pylintrc',
- # symbols has its own PRESUBMIT.py
- black_list=build_pys + [r'pylib/symbols/.*\.py$'],
+ # devil and symbols have their own PRESUBMIT.py
+ black_list=build_pys + [r'devil/.*\.py$', r'pylib/symbols/.*\.py$'],
extra_paths_list=[J(), J('buildbot')]))
output.extend(input_api.canned_checks.RunPylint(
input_api,
@@ -60,26 +60,6 @@ def CommonChecks(input_api, output_api):
],
env=pylib_test_env))
-
- devil_test_env = dict(pylib_test_env)
- devil_test_env.update({
- 'DEVIL_ENV_CONFIG':
- input_api.os_path.join(build_android_dir, 'devil_chromium.json')
- })
- output.extend(input_api.canned_checks.RunUnitTests(
- input_api,
- output_api,
- unit_tests=[
- J('devil', 'devil_env_test.py'),
- J('devil', 'android', 'battery_utils_test.py'),
- J('devil', 'android', 'device_utils_test.py'),
- J('devil', 'android', 'fastboot_utils_test.py'),
- J('devil', 'android', 'md5sum_test.py'),
- J('devil', 'android', 'logcat_monitor_test.py'),
- J('devil', 'utils', 'cmd_helper_test.py'),
- J('devil', 'utils', 'timeout_retry_unittest.py'),
- ],
- env=devil_test_env))
return output
diff --git a/build/android/devil/PRESUBMIT.py b/build/android/devil/PRESUBMIT.py
new file mode 100644
index 0000000..e2c3dfe
--- /dev/null
+++ b/build/android/devil/PRESUBMIT.py
@@ -0,0 +1,87 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Presubmit script for devil.
+
+See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for
+details on the presubmit API built into depot_tools.
+"""
+
+
+def _RunPylint(input_api, output_api):
+ return input_api.canned_checks.RunPylint(
+ input_api,
+ output_api,
+ pylintrc='pylintrc',
+ extra_paths_list=[
+ input_api.os_path.join(input_api.PresubmitLocalPath(), '..'),
+ ])
+
+
+def _RunUnitTests(input_api, output_api):
+ def J(*dirs):
+ """Returns a path relative to presubmit directory."""
+ return input_api.os_path.join(input_api.PresubmitLocalPath(), *dirs)
+
+ test_env = dict(input_api.environ)
+ test_env.update({
+ 'PYTHONDONTWRITEBYTECODE': '1',
+ 'PYTHONPATH': ':'.join([J(), J('..')]),
+ })
+
+ return input_api.canned_checks.RunUnitTests(
+ input_api,
+ output_api,
+ unit_tests=[
+ J('devil_env_test.py'),
+ J('android', 'battery_utils_test.py'),
+ J('android', 'device_utils_test.py'),
+ J('android', 'fastboot_utils_test.py'),
+ J('android', 'md5sum_test.py'),
+ J('android', 'logcat_monitor_test.py'),
+ J('utils', 'cmd_helper_test.py'),
+ J('utils', 'timeout_retry_unittest.py'),
+ ],
+ env=test_env)
+
+
+def _EnsureNoPylibUse(input_api, output_api):
+ def other_python_files(f):
+ this_presubmit_file = input_api.os_path.join(
+ input_api.PresubmitLocalPath(), 'PRESUBMIT.py')
+ return (f.LocalPath().endswith('.py')
+ and not f.AbsoluteLocalPath() == this_presubmit_file)
+
+ changed_files = input_api.AffectedSourceFiles(other_python_files)
+ import_error_re = input_api.re.compile(
+ r'(from pylib.* import)|(import pylib)')
+
+ errors = []
+ for f in changed_files:
+ errors.extend(
+ '%s:%d' % (f.LocalPath(), line_number)
+ for line_number, line_text in f.ChangedContents()
+ if import_error_re.search(line_text))
+
+ if errors:
+ return [output_api.PresubmitError(
+ 'pylib modules should not be imported from devil modules.',
+ items=errors)]
+ return []
+
+
+def CommonChecks(input_api, output_api):
+ output = []
+ output += _RunPylint(input_api, output_api)
+ output += _RunUnitTests(input_api, output_api)
+ output += _EnsureNoPylibUse(input_api, output_api)
+ return output
+
+
+def CheckChangeOnUpload(input_api, output_api):
+ return CommonChecks(input_api, output_api)
+
+
+def CheckChangeOnCommit(input_api, output_api):
+ return CommonChecks(input_api, output_api)
diff --git a/build/android/devil/pylintrc b/build/android/devil/pylintrc
new file mode 100644
index 0000000..8005a5d
--- /dev/null
+++ b/build/android/devil/pylintrc
@@ -0,0 +1,15 @@
+[FORMAT]
+
+max-line-length=80
+
+[MESSAGES CONTROL]
+
+disable=abstract-class-not-used,bad-continuation,bad-indentation,duplicate-code,fixme,invalid-name,locally-disabled,locally-enabled,missing-docstring,star-args,too-few-public-methods,too-many-arguments,too-many-branches,too-many-instance-attributes,too-many-lines,too-many-locals,too-many-public-methods,too-many-statements,
+
+[REPORTS]
+
+reports=no
+
+[VARIABLES]
+
+dummy-variables-rgx=^_.*$|dummy