diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-24 01:29:09 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-24 01:29:09 +0000 |
commit | 38a0e3c7681bdc6bd74d8b80a0aea68c264f418f (patch) | |
tree | d03a734c6d89d89ce9aa007766a64c4ffe2be98e /tools | |
parent | 8fc6448e485d7702b7c21ca1dfc285cf868711a7 (diff) | |
download | chromium_src-38a0e3c7681bdc6bd74d8b80a0aea68c264f418f.zip chromium_src-38a0e3c7681bdc6bd74d8b80a0aea68c264f418f.tar.gz chromium_src-38a0e3c7681bdc6bd74d8b80a0aea68c264f418f.tar.bz2 |
Heapchecker: Add presubmit checks for suppressions.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3197014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57132 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/heapcheck/PRESUBMIT.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/heapcheck/PRESUBMIT.py b/tools/heapcheck/PRESUBMIT.py new file mode 100755 index 0000000..415400c --- /dev/null +++ b/tools/heapcheck/PRESUBMIT.py @@ -0,0 +1,43 @@ +# Copyright (c) 2010 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts +for more details on the presubmit API built into gcl. +""" + +def CheckChange(input_api, output_api): + """Checks the memcheck suppressions files for bad data.""" + errors = [] + skip_next_line = False + func_re = input_api.re.compile('[a-z_.]+\(.+\)$') + for f, line_num, line in input_api.RightHandSideLines(lambda x: + x.LocalPath().endswith('.txt')): + line = line.lstrip() + if line.startswith('#') or not line: + continue + + if skip_next_line: + skip_next_line = False + continue + if line == '{': + skip_next_line = True + continue + if (line.startswith('fun:') or line.startswith('obj:') or + line == 'Heapcheck:Leak' or line == '}' or + line == '...'): + continue + if func_re.match(line): + continue + errors.append('"%s" is probably wrong: %s line %s' % (line, f.LocalPath(), + line_num)) + if errors: + return [output_api.PresubmitError('\n'.join(errors))] + return [] + +def CheckChangeOnUpload(input_api, output_api): + return CheckChange(input_api, output_api) + +def CheckChangeOnCommit(input_api, output_api): + return CheckChange(input_api, output_api) |