Move git_cl back into depot_tools.
Remove git_cl_hooks.py since it's now unnecessary.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6758001
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79715 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 6232c19..2096425 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1,11 +1,11 @@
-# Copyright (c) 2010 The Chromium Authors. All rights reserved.
+# Copyright (c) 2011 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.
"""Top-level presubmit script for depot tools.
See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for
-details on the presubmit API built into gcl.
+details on the presubmit API built into depot_tools.
"""
UNIT_TESTS = [
@@ -43,14 +43,68 @@
white_list = [r'.*\.py$', r'^git-try$']
black_list = list(input_api.DEFAULT_BLACK_LIST) + [
r'^cpplint\.py$',
- r'^git_cl[\/\\]test[\/\\](local_)?rietveld.*',
- r'^git_cl[\/\\]upload.*',
+ r'^tests[\/\\]\w+?[\/\\].+',
]
output.extend(input_api.canned_checks.RunPylint(
input_api,
output_api,
white_list=white_list,
black_list=black_list))
+ output.extend(RunGitClTests(input_api, output_api))
+ return output
+
+
+def RunGitClTests(input_api, output_api):
+ """Run all the shells scripts in the directory test.
+ """
+ # Not exposed from InputApi.
+ from os import listdir
+
+ # First loads a local Rietveld instance.
+ import sys
+ old_sys_path = sys.path
+ try:
+ sys.path = [input_api.PresubmitLocalPath()] + sys.path
+ from tests import local_rietveld # pylint: disable=W0403
+ server = local_rietveld.LocalRietveld()
+ finally:
+ sys.path = old_sys_path
+
+ # Set to True for testing.
+ verbose = False
+ if verbose:
+ stdout = None
+ stderr = None
+ else:
+ stdout = input_api.subprocess.PIPE
+ stderr = input_api.subprocess.STDOUT
+ output = []
+ try:
+ # Start a local rietveld instance to test against.
+ server.start_server()
+ test_path = input_api.os_path.abspath(
+ input_api.os_path.join(input_api.PresubmitLocalPath(), 'tests'))
+ for test in listdir(test_path):
+ # test-lib.sh is not an actual test so it should not be run. The other
+ # tests are tests known to fail.
+ DISABLED_TESTS = (
+ 'owners.sh', 'push-from-logs.sh', 'rename.sh', 'test-lib.sh')
+ if test in DISABLED_TESTS or not test.endswith('.sh'):
+ continue
+
+ print('Running %s' % test)
+ proc = input_api.subprocess.Popen(
+ [input_api.os_path.join(test_path, test)],
+ cwd=test_path,
+ stdout=stdout,
+ stderr=stderr)
+ proc.communicate()
+ if proc.returncode != 0:
+ output.append(output_api.PresubmitError('%s failed' % test))
+ except local_rietveld.Failure, e:
+ output.append(output_api.PresubmitError('\n'.join(str(i) for i in e.args)))
+ finally:
+ server.stop_server()
return output