| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright 2012 the V8 project authors. All rights reserved. | 3 # Copyright 2012 the V8 project authors. All rights reserved. |
| 4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
| 5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
| 6 # met: | 6 # met: |
| 7 # | 7 # |
| 8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
| 9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
| 10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 454 keys = {} | 454 keys = {} |
| 455 for key, value in pairs: | 455 for key, value in pairs: |
| 456 if key in keys: | 456 if key in keys: |
| 457 print("%s: Error: duplicate key %s" % (filepath, key)) | 457 print("%s: Error: duplicate key %s" % (filepath, key)) |
| 458 status["success"] = False | 458 status["success"] = False |
| 459 keys[key] = True | 459 keys[key] = True |
| 460 | 460 |
| 461 json.loads(contents, object_pairs_hook=check_pairs) | 461 json.loads(contents, object_pairs_hook=check_pairs) |
| 462 return status["success"] | 462 return status["success"] |
| 463 | 463 |
| 464 def CheckStatusFiles(workspace): | 464 |
| 465 success = True | 465 class StatusFilesProcessor(SourceFileProcessor): |
| 466 suite_paths = utils.GetSuitePaths(join(workspace, "test")) | 466 """Checks status files for incorrect syntax and duplicate keys.""" |
| 467 for root in suite_paths: | 467 |
| 468 suite_path = join(workspace, "test", root) | 468 def IsRelevant(self, name): |
| 469 status_file_path = join(suite_path, root + ".status") | 469 return name.endswith('.status') |
| 470 suite = testsuite.TestSuite.LoadTestSuite(suite_path) | 470 |
| 471 if suite and exists(status_file_path): | 471 def GetPathsToSearch(self): |
| 472 return ['test'] |
| 473 |
| 474 def ProcessFiles(self, files): |
| 475 success = True |
| 476 for status_file_path in files: |
| 472 success &= statusfile.PresubmitCheck(status_file_path) | 477 success &= statusfile.PresubmitCheck(status_file_path) |
| 473 success &= _CheckStatusFileForDuplicateKeys(status_file_path) | 478 success &= _CheckStatusFileForDuplicateKeys(status_file_path) |
| 474 return success | 479 return success |
| 480 |
| 475 | 481 |
| 476 def GetOptions(): | 482 def GetOptions(): |
| 477 result = optparse.OptionParser() | 483 result = optparse.OptionParser() |
| 478 result.add_option('--no-lint', help="Do not run cpplint", default=False, | 484 result.add_option('--no-lint', help="Do not run cpplint", default=False, |
| 479 action="store_true") | 485 action="store_true") |
| 480 return result | 486 return result |
| 481 | 487 |
| 482 | 488 |
| 483 def Main(): | 489 def Main(): |
| 484 workspace = abspath(join(dirname(sys.argv[0]), '..')) | 490 workspace = abspath(join(dirname(sys.argv[0]), '..')) |
| 485 parser = GetOptions() | 491 parser = GetOptions() |
| 486 (options, args) = parser.parse_args() | 492 (options, args) = parser.parse_args() |
| 487 success = True | 493 success = True |
| 488 print "Running C++ lint check..." | 494 print "Running C++ lint check..." |
| 489 if not options.no_lint: | 495 if not options.no_lint: |
| 490 success &= CppLintProcessor().RunOnPath(workspace) | 496 success &= CppLintProcessor().RunOnPath(workspace) |
| 491 print "Running copyright header, trailing whitespaces and " \ | 497 print "Running copyright header, trailing whitespaces and " \ |
| 492 "two empty lines between declarations check..." | 498 "two empty lines between declarations check..." |
| 493 success &= SourceProcessor().RunOnPath(workspace) | 499 success &= SourceProcessor().RunOnPath(workspace) |
| 494 success &= CheckStatusFiles(workspace) | 500 print "Running status-files check..." |
| 501 success &= StatusFilesProcessor().RunOnPath(workspace) |
| 495 if success: | 502 if success: |
| 496 return 0 | 503 return 0 |
| 497 else: | 504 else: |
| 498 return 1 | 505 return 1 |
| 499 | 506 |
| 500 | 507 |
| 501 if __name__ == '__main__': | 508 if __name__ == '__main__': |
| 502 sys.exit(Main()) | 509 sys.exit(Main()) |
| OLD | NEW |