From 38a0e3c7681bdc6bd74d8b80a0aea68c264f418f Mon Sep 17 00:00:00 2001 From: "thestig@chromium.org" Date: Tue, 24 Aug 2010 01:29:09 +0000 Subject: 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 --- tools/heapcheck/PRESUBMIT.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 tools/heapcheck/PRESUBMIT.py (limited to 'tools/heapcheck/PRESUBMIT.py') 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) -- cgit v1.1