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

Side by Side Diff: tools/heapcheck/heapcheck_test.py

Issue 6195003: Compute an error hash for suppressions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/tools/heapcheck
Patch Set: Created 9 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # heapcheck_test.py 6 # heapcheck_test.py
7 7
8 """Wrapper for running the test under heapchecker and analyzing the output.""" 8 """Wrapper for running the test under heapchecker and analyzing the output."""
9 9
10 import datetime 10 import datetime
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 print 'Aborting...' 116 print 'Aborting...'
117 return 3 117 return 3
118 # Print the report and set the return code to 1. 118 # Print the report and set the return code to 1.
119 print ('Leak of %d bytes in %d objects allocated from:' 119 print ('Leak of %d bytes in %d objects allocated from:'
120 % tuple(cur_leak_signature)) 120 % tuple(cur_leak_signature))
121 print '\n'.join(cur_report) 121 print '\n'.join(cur_report)
122 return_code = 1 122 return_code = 1
123 # Generate the suppression iff the stack contains more than one 123 # Generate the suppression iff the stack contains more than one
124 # frame (otherwise it's likely to be broken) 124 # frame (otherwise it's likely to be broken)
125 if len(cur_stack) > 1: 125 if len(cur_stack) > 1:
126 print '\nSuppression:\n{' 126 print '\nSuppression (error hash=#%016X#):\n{' \
127 % (hash("".join(cur_stack)) & 0xffffffffffffffff)
127 print ' <insert_a_suppression_name_here>' 128 print ' <insert_a_suppression_name_here>'
128 print ' Heapcheck:Leak' 129 print ' Heapcheck:Leak'
129 for frame in cur_stack: 130 for frame in cur_stack:
130 print ' fun:' + frame 131 print ' fun:' + frame
131 print '}\n\n\n' 132 print '}\n\n\n'
132 else: 133 else:
133 print ('This stack may be broken due to omitted frame pointers. ' 134 print ('This stack may be broken due to omitted frame pointers. '
134 'It is not recommended to suppress it.') 135 'It is not recommended to suppress it.')
135 else: 136 else:
136 # Update the suppressions histogram. 137 # Update the suppressions histogram.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 'http://dev.chromium.org/developers/how-tos/' 203 'http://dev.chromium.org/developers/how-tos/'
203 'using-the-heap-leak-checker') 204 'using-the-heap-leak-checker')
204 return retcode 205 return retcode
205 206
206 207
207 def RunTool(args, supp_files, module): 208 def RunTool(args, supp_files, module):
208 tool = HeapcheckWrapper(supp_files) 209 tool = HeapcheckWrapper(supp_files)
209 MODULES_TO_SANITY_CHECK = ["base"] 210 MODULES_TO_SANITY_CHECK = ["base"]
210 check_sanity = module in MODULES_TO_SANITY_CHECK 211 check_sanity = module in MODULES_TO_SANITY_CHECK
211 return tool.Main(args[1:], check_sanity) 212 return tool.Main(args[1:], check_sanity)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698