summaryrefslogtreecommitdiffstats
path: root/ppapi
diff options
context:
space:
mode:
authorbinji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-17 19:15:19 +0000
committerbinji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-17 19:15:19 +0000
commit183dea0ac791d107c26d3dccbcf183e1a9e9918d (patch)
tree72b8b8e79b9ac4053690a1ee84581eb07bfc47f5 /ppapi
parent81a2a6094b498e6da0218892c8ccd776b660b829 (diff)
downloadchromium_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.py36
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 = []