diff options
author | iannucci@chromium.org <iannucci@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-24 08:25:25 +0000 |
---|---|---|
committer | iannucci@chromium.org <iannucci@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-24 08:25:25 +0000 |
commit | a5244782d68b667b00bdca3c8c4caf40b4149085 (patch) | |
tree | b734dc01d880da9b047c2095df992853fd349d5d /PRESUBMIT.py | |
parent | ebb701b750310132ec3a28fbf23bfa60b6bf29ad (diff) | |
download | chromium_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.py | 15 |
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( |