| 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 -build/include_what_you_use | 62 -build/include_what_you_use |
| 63 -build/namespaces | 63 -build/namespaces |
| 64 -readability/check | 64 -readability/check |
| 65 -readability/fn_size | 65 -readability/fn_size |
| 66 +readability/streams | 66 +readability/streams |
| 67 -runtime/references | 67 -runtime/references |
| 68 """.split() | 68 """.split() |
| 69 | 69 |
| 70 LINT_OUTPUT_PATTERN = re.compile(r'^.+[:(]\d+[:)]|^Done processing') | 70 LINT_OUTPUT_PATTERN = re.compile(r'^.+[:(]\d+[:)]|^Done processing') |
| 71 FLAGS_LINE = re.compile("//\s*Flags:.*--([A-z0-9-])+_[A-z0-9].*\n") | 71 FLAGS_LINE = re.compile("//\s*Flags:.*--([A-z0-9-])+_[A-z0-9].*\n") |
| 72 ASSERT_OPTIMIZED_PATTERN = re.compile("assertOptimized") |
| 73 FLAGS_ENABLE_OPT = re.compile("//\s*Flags:.*--(crankshaft|turbo)[^-].*\n") |
| 74 ASSERT_UNOPTIMIZED_PATTERN = re.compile("assertUnoptimized") |
| 75 FLAGS_NO_ALWAYS_OPT = re.compile("//\s*Flags:.*--no-?always-opt.*\n") |
| 72 | 76 |
| 73 TOOLS_PATH = dirname(abspath(__file__)) | 77 TOOLS_PATH = dirname(abspath(__file__)) |
| 74 | 78 |
| 75 def CppLintWorker(command): | 79 def CppLintWorker(command): |
| 76 try: | 80 try: |
| 77 process = subprocess.Popen(command, stderr=subprocess.PIPE) | 81 process = subprocess.Popen(command, stderr=subprocess.PIPE) |
| 78 process.wait() | 82 process.wait() |
| 79 out_lines = "" | 83 out_lines = "" |
| 80 error_count = -1 | 84 error_count = -1 |
| 81 while True: | 85 while True: |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 linenumbers = ', '.join(lines) | 398 linenumbers = ', '.join(lines) |
| 395 if len(lines) > 1: | 399 if len(lines) > 1: |
| 396 print "%s has trailing whitespaces in lines %s." % (name, linenumbers) | 400 print "%s has trailing whitespaces in lines %s." % (name, linenumbers) |
| 397 else: | 401 else: |
| 398 print "%s has trailing whitespaces in line %s." % (name, linenumbers) | 402 print "%s has trailing whitespaces in line %s." % (name, linenumbers) |
| 399 result = False | 403 result = False |
| 400 if not contents.endswith('\n') or contents.endswith('\n\n'): | 404 if not contents.endswith('\n') or contents.endswith('\n\n'): |
| 401 print "%s does not end with a single new line." % name | 405 print "%s does not end with a single new line." % name |
| 402 result = False | 406 result = False |
| 403 # Sanitize flags for fuzzer. | 407 # Sanitize flags for fuzzer. |
| 404 if "mjsunit" in name: | 408 if "mjsunit" in name or "debugger" in name: |
| 405 match = FLAGS_LINE.search(contents) | 409 match = FLAGS_LINE.search(contents) |
| 406 if match: | 410 if match: |
| 407 print "%s Flags should use '-' (not '_')" % name | 411 print "%s Flags should use '-' (not '_')" % name |
| 408 result = False | 412 result = False |
| 413 if not "mjsunit/mjsunit.js" in name: |
| 414 if ASSERT_OPTIMIZED_PATTERN.search(contents) and \ |
| 415 not FLAGS_ENABLE_OPT.search(contents): |
| 416 print "%s Flag --crankshaft or --turbo should be set " \ |
| 417 "if assertOptimized() is used" % name |
| 418 result = False |
| 419 if ASSERT_UNOPTIMIZED_PATTERN.search(contents) and \ |
| 420 not FLAGS_NO_ALWAYS_OPT.search(contents): |
| 421 print "%s Flag --no-always-opt should be set if " \ |
| 422 "assertUnoptimized() is used" % name |
| 423 result = False |
| 409 return result | 424 return result |
| 410 | 425 |
| 411 def ProcessFiles(self, files): | 426 def ProcessFiles(self, files): |
| 412 success = True | 427 success = True |
| 413 violations = 0 | 428 violations = 0 |
| 414 for file in files: | 429 for file in files: |
| 415 try: | 430 try: |
| 416 handle = open(file) | 431 handle = open(file) |
| 417 contents = handle.read() | 432 contents = handle.read() |
| 418 if not self.ProcessContents(file, contents): | 433 if not self.ProcessContents(file, contents): |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 print "Running status-files check..." | 519 print "Running status-files check..." |
| 505 success &= StatusFilesProcessor().RunOnPath(workspace) | 520 success &= StatusFilesProcessor().RunOnPath(workspace) |
| 506 if success: | 521 if success: |
| 507 return 0 | 522 return 0 |
| 508 else: | 523 else: |
| 509 return 1 | 524 return 1 |
| 510 | 525 |
| 511 | 526 |
| 512 if __name__ == '__main__': | 527 if __name__ == '__main__': |
| 513 sys.exit(Main()) | 528 sys.exit(Main()) |
| OLD | NEW |