Skip to content

Commit

Permalink
Add presubmit check for #pragma once.
Browse files Browse the repository at this point in the history
BUG=none
TEST=git cl presubmit

Review URL: https://chromiumcodereview.appspot.com/10704150

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146166 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
dcheng@chromium.org committed Jul 11, 2012
1 parent 34ee812 commit 6c063c6
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions PRESUBMIT.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,8 +259,8 @@ def _CheckNoIOStreamInHeaders(input_api, output_api):

if len(files):
return [ output_api.PresubmitError(
'Do not #include <iostream> in header files, since it inserts static ' +
'initialization into every file including the header. Instead, ' +
'Do not #include <iostream> in header files, since it inserts static '
'initialization into every file including the header. Instead, '
'#include <ostream>. See http://crbug.com/94794',
files) ]
return []
Expand Down Expand Up @@ -354,6 +354,25 @@ def _CheckNoBannedFunctions(input_api, output_api):
return result


def _CheckNoPragmaOnce(input_api, output_api):
"""Make sure that banned functions are not used."""
files = []
pattern = input_api.re.compile(r'^#pragma\s+once',
input_api.re.MULTILINE)
for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile):
if not f.LocalPath().endswith('.h'):
continue
contents = input_api.ReadFile(f)
if pattern.search(contents):
files.append(f)

if files:
return [output_api.PresubmitError(
'Do not use #pragma once in header files.\n'
'See http://www.chromium.org/developers/coding-style#TOC-File-headers',
files)]
return []


def _CommonChecks(input_api, output_api):
"""Checks common to both upload and commit."""
Expand All @@ -368,6 +387,7 @@ def _CommonChecks(input_api, output_api):
results.extend(_CheckNoNewWStrings(input_api, output_api))
results.extend(_CheckNoDEPSGIT(input_api, output_api))
results.extend(_CheckNoBannedFunctions(input_api, output_api))
results.extend(_CheckNoPragmaOnce(input_api, output_api))
return results


Expand Down

0 comments on commit 6c063c6

Please sign in to comment.