Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(382)

Side by Side Diff: PRESUBMIT.py

Issue 1682393002: PRESUBMIT: Add check for JSON parse errors + fix JSON (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | webrtc/build/ios/client.webrtc.fyi/iOS32_Simulator_Debug.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 1 # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
2 # 2 #
3 # Use of this source code is governed by a BSD-style license 3 # Use of this source code is governed by a BSD-style license
4 # that can be found in the LICENSE file in the root of the source 4 # that can be found in the LICENSE file in the root of the source
5 # tree. An additional intellectual property rights grant can be found 5 # tree. An additional intellectual property rights grant can be found
6 # in the file PATENTS. All contributing project authors may 6 # in the file PATENTS. All contributing project authors may
7 # be found in the AUTHORS file in the root of the source tree. 7 # be found in the AUTHORS file in the root of the source tree.
8 8
9 import json 9 import json
10 import os 10 import os
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 error_descriptions)) 332 error_descriptions))
333 if warning_descriptions: 333 if warning_descriptions:
334 results.append(output_api.PresubmitPromptOrNotify( 334 results.append(output_api.PresubmitPromptOrNotify(
335 'You added one or more #includes of files that are temporarily\n' 335 'You added one or more #includes of files that are temporarily\n'
336 'allowed but being removed. Can you avoid introducing the\n' 336 'allowed but being removed. Can you avoid introducing the\n'
337 '#include? See relevant DEPS file(s) for details and contacts.', 337 '#include? See relevant DEPS file(s) for details and contacts.',
338 warning_descriptions)) 338 warning_descriptions))
339 return results 339 return results
340 340
341 341
342 def _GetJSONParseError(input_api, filename):
343 try:
344 contents = input_api.ReadFile(filename)
345 input_api.json.loads(contents)
346 except ValueError as e:
347 return e
348 return None
349
350
351 def _CheckJSONParseErrors(input_api, output_api):
352 """Check that JSON files do not contain syntax errors."""
353 actions = {
phoglund 2016/02/11 08:38:56 Is this a pattern generally followed by all presub
kjellander_webrtc 2016/02/11 09:24:15 Chromium has IDL files as well (https://code.googl
354 '.json': _GetJSONParseError,
355 }
356
357 def get_action(affected_file):
358 filename = affected_file.LocalPath()
359 return actions.get(input_api.os_path.splitext(filename)[1])
360
361 def FilterFile(affected_file):
362 action = get_action(affected_file)
363 if not action:
364 return False
365 return True
366
367 results = []
368 for affected_file in input_api.AffectedFiles(
369 file_filter=FilterFile, include_deletes=False):
370 action = get_action(affected_file)
371 parse_error = action(input_api, affected_file.AbsoluteLocalPath())
372 if parse_error:
373 results.append(output_api.PresubmitError('%s could not be parsed: %s' %
374 (affected_file.LocalPath(), parse_error)))
375 return results
376
377
342 def _RunPythonTests(input_api, output_api): 378 def _RunPythonTests(input_api, output_api):
343 def join(*args): 379 def join(*args):
344 return input_api.os_path.join(input_api.PresubmitLocalPath(), *args) 380 return input_api.os_path.join(input_api.PresubmitLocalPath(), *args)
345 381
346 test_directories = [ 382 test_directories = [
347 join('tools', 'autoroller', 'unittests'), 383 join('tools', 'autoroller', 'unittests'),
348 ] 384 ]
349 385
350 tests = [] 386 tests = []
351 for directory in test_directories: 387 for directory in test_directories:
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 input_api, output_api)) 452 input_api, output_api))
417 results.extend(input_api.canned_checks.CheckChangeHasNoStrayWhitespace( 453 results.extend(input_api.canned_checks.CheckChangeHasNoStrayWhitespace(
418 input_api, output_api)) 454 input_api, output_api))
419 results.extend(input_api.canned_checks.CheckChangeTodoHasOwner( 455 results.extend(input_api.canned_checks.CheckChangeTodoHasOwner(
420 input_api, output_api)) 456 input_api, output_api))
421 results.extend(_CheckNativeApiHeaderChanges(input_api, output_api)) 457 results.extend(_CheckNativeApiHeaderChanges(input_api, output_api))
422 results.extend(_CheckNoIOStreamInHeaders(input_api, output_api)) 458 results.extend(_CheckNoIOStreamInHeaders(input_api, output_api))
423 results.extend(_CheckNoFRIEND_TEST(input_api, output_api)) 459 results.extend(_CheckNoFRIEND_TEST(input_api, output_api))
424 results.extend(_CheckGypChanges(input_api, output_api)) 460 results.extend(_CheckGypChanges(input_api, output_api))
425 results.extend(_CheckUnwantedDependencies(input_api, output_api)) 461 results.extend(_CheckUnwantedDependencies(input_api, output_api))
462 results.extend(_CheckJSONParseErrors(input_api, output_api))
426 results.extend(_RunPythonTests(input_api, output_api)) 463 results.extend(_RunPythonTests(input_api, output_api))
427 return results 464 return results
428 465
429 466
430 def CheckChangeOnUpload(input_api, output_api): 467 def CheckChangeOnUpload(input_api, output_api):
431 results = [] 468 results = []
432 results.extend(_CommonChecks(input_api, output_api)) 469 results.extend(_CommonChecks(input_api, output_api))
433 results.extend( 470 results.extend(
434 input_api.canned_checks.CheckGNFormatted(input_api, output_api)) 471 input_api.canned_checks.CheckGNFormatted(input_api, output_api))
435 return results 472 return results
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 for builder in masters[master]: 507 for builder in masters[master]:
471 if 'presubmit' in builder: 508 if 'presubmit' in builder:
472 # Do not trigger presubmit builders, since they're likely to fail 509 # Do not trigger presubmit builders, since they're likely to fail
473 # (e.g. OWNERS checks before finished code review), and we're running 510 # (e.g. OWNERS checks before finished code review), and we're running
474 # local presubmit anyway. 511 # local presubmit anyway.
475 pass 512 pass
476 else: 513 else:
477 try_config[master][builder] = ['defaulttests'] 514 try_config[master][builder] = ['defaulttests']
478 515
479 return try_config 516 return try_config
OLDNEW
« no previous file with comments | « no previous file | webrtc/build/ios/client.webrtc.fyi/iOS32_Simulator_Debug.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698