diff options
author | binji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-17 19:15:19 +0000 |
---|---|---|
committer | binji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-17 19:15:19 +0000 |
commit | 183dea0ac791d107c26d3dccbcf183e1a9e9918d (patch) | |
tree | 72b8b8e79b9ac4053690a1ee84581eb07bfc47f5 /ppapi | |
parent | 81a2a6094b498e6da0218892c8ccd776b660b829 (diff) | |
download | chromium_src-183dea0ac791d107c26d3dccbcf183e1a9e9918d.zip chromium_src-183dea0ac791d107c26d3dccbcf183e1a9e9918d.tar.gz chromium_src-183dea0ac791d107c26d3dccbcf183e1a9e9918d.tar.bz2 |
Add PPAPI presubmit check, to ensure NaCl SDK is updated properly.
When adding or removing a PPAPI interface, a file in the NaCl SDK must be
updated as well.
BUG=254174
R=dmichael@chromium.org, sbc@chromium.org
Review URL: https://codereview.chromium.org/19067002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212107 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi')
-rw-r--r-- | ppapi/PRESUBMIT.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/ppapi/PRESUBMIT.py b/ppapi/PRESUBMIT.py index 72672e9..0ae9b0e 100644 --- a/ppapi/PRESUBMIT.py +++ b/ppapi/PRESUBMIT.py @@ -110,6 +110,40 @@ def CheckUnversionedPPB(input_api, output_api): long_text='\n'.join(todo))] return [] +# Verify that changes to ppapi headers/sources are also made to NaCl SDK. +def CheckUpdatedNaClSDK(input_api, output_api): + files = input_api.LocalPaths() + + # PPAPI files the Native Client SDK cares about. + nacl_sdk_files = [] + + for filename in files: + name, ext = os.path.splitext(filename) + name_parts = name.split(os.sep) + + if len(name_parts) <= 2: + continue + + if name_parts[0] != 'ppapi': + continue + + if ((name_parts[1] == 'c' and ext == '.h') or + (name_parts[1] in ('cpp', 'utility') and ext in ('.h', '.cc'))): + if name_parts[2] in ('documentation', 'trusted'): + continue + nacl_sdk_files.append(filename) + + if not nacl_sdk_files: + return [] + + verify_ppapi_py = os.path.join(input_api.change.RepositoryRoot(), + 'native_client_sdk', 'src', 'build_tools', + 'verify_ppapi.py') + cmd = [sys.executable, verify_ppapi_py] + nacl_sdk_files + return RunCmdAndCheck(cmd, + 'PPAPI Interface modified without updating NaCl SDK.', + output_api) + def CheckChange(input_api, output_api): results = [] @@ -119,6 +153,8 @@ def CheckChange(input_api, output_api): results.extend(CheckUnversionedPPB(input_api, output_api)) + results.extend(CheckUpdatedNaClSDK(input_api, output_api)) + # Verify all modified *.idl have a matching *.h files = input_api.LocalPaths() h_files = [] |