| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # | 2 # |
| 3 # Copyright 2009 the V8 project authors. All rights reserved. | 3 # Copyright 2009 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 | 51 |
| 52 # If valgrind produced an error, we report that to the user. | 52 # If valgrind produced an error, we report that to the user. |
| 53 if code != 0: | 53 if code != 0: |
| 54 sys.stderr.writelines(errors) | 54 sys.stderr.writelines(errors) |
| 55 sys.exit(code) | 55 sys.exit(code) |
| 56 | 56 |
| 57 # Look through the leak details and make sure that we don't | 57 # Look through the leak details and make sure that we don't |
| 58 # have any definitely, indirectly, and possibly lost bytes. | 58 # have any definitely, indirectly, and possibly lost bytes. |
| 59 LEAK_RE = r"(?:definitely|indirectly|possibly) lost: " | 59 LEAK_RE = r"(?:definitely|indirectly|possibly) lost: " |
| 60 LEAK_LINE_MATCHER = re.compile(LEAK_RE) | 60 LEAK_LINE_MATCHER = re.compile(LEAK_RE) |
| 61 LEAK_OKAY_MATCHER = re.compile(r"lost: 0 bytes in 0 blocks.") | 61 LEAK_OKAY_MATCHER = re.compile(r"lost: 0 bytes in 0 blocks") |
| 62 leaks = [] | 62 leaks = [] |
| 63 for line in errors: | 63 for line in errors: |
| 64 if LEAK_LINE_MATCHER.search(line): | 64 if LEAK_LINE_MATCHER.search(line): |
| 65 leaks.append(line) | 65 leaks.append(line) |
| 66 if not LEAK_OKAY_MATCHER.search(line): | 66 if not LEAK_OKAY_MATCHER.search(line): |
| 67 sys.stderr.writelines(errors) | 67 sys.stderr.writelines(errors) |
| 68 sys.exit(1) | 68 sys.exit(1) |
| 69 | 69 |
| 70 # Make sure we found between 2 and 3 leak lines. | 70 # Make sure we found between 2 and 3 leak lines. |
| 71 if len(leaks) < 2 or len(leaks) > 3: | 71 if len(leaks) < 2 or len(leaks) > 3: |
| 72 sys.stderr.writelines(errors) | 72 sys.stderr.writelines(errors) |
| 73 sys.stderr.write('\n\n#### Malformed valgrind output.\n#### Exiting.\n') | 73 sys.stderr.write('\n\n#### Malformed valgrind output.\n#### Exiting.\n') |
| 74 sys.exit(1) | 74 sys.exit(1) |
| 75 | 75 |
| 76 # No leaks found. | 76 # No leaks found. |
| 77 sys.exit(0) | 77 sys.exit(0) |
| OLD | NEW |