summaryrefslogtreecommitdiffstats
path: root/PRESUBMIT.py
diff options
context:
space:
mode:
authoriannucci@chromium.org <iannucci@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-24 08:25:25 +0000
committeriannucci@chromium.org <iannucci@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-24 08:25:25 +0000
commita5244782d68b667b00bdca3c8c4caf40b4149085 (patch)
treeb734dc01d880da9b047c2095df992853fd349d5d /PRESUBMIT.py
parentebb701b750310132ec3a28fbf23bfa60b6bf29ad (diff)
downloadchromium_src-a5244782d68b667b00bdca3c8c4caf40b4149085.zip
chromium_src-a5244782d68b667b00bdca3c8c4caf40b4149085.tar.gz
chromium_src-a5244782d68b667b00bdca3c8c4caf40b4149085.tar.bz2
Add simple PRESUBMIT check to ensure that all files ending with .json can
be loaded as json. R=jochen@chromium.org, maruel@chromium.org BUG=366395 Review URL: https://codereview.chromium.org/258473002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265881 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'PRESUBMIT.py')
-rw-r--r--PRESUBMIT.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 67d5578..8a64543 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1062,6 +1062,20 @@ def _CheckUserActionUpdate(input_api, output_api):
return []
+def _CheckJSONParsability(input_api, output_api):
+ results = []
+ file_filter = lambda f: f.LocalPath().endswith('.json')
+ for fpath in input_api.AffectedFiles(file_filter=file_filter):
+ with open(fpath.LocalPath(), 'r') as f:
+ try:
+ input_api.json.load(f)
+ except ValueError:
+ results.append(output_api.PresubmitError(
+ "File %r does not parse as valid JSON" % (fpath.LocalPath())
+ ))
+ return results
+
+
def _CheckJavaStyle(input_api, output_api):
"""Runs checkstyle on changed java files and returns errors if any exist."""
original_sys_path = sys.path
@@ -1112,6 +1126,7 @@ def _CommonChecks(input_api, output_api):
results.extend(_CheckForAnonymousVariables(input_api, output_api))
results.extend(_CheckCygwinShell(input_api, output_api))
results.extend(_CheckUserActionUpdate(input_api, output_api))
+ results.extend(_CheckJSONParsability(input_api, output_api))
if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()):
results.extend(input_api.canned_checks.RunUnitTestsInDirectory(