From 183dea0ac791d107c26d3dccbcf183e1a9e9918d Mon Sep 17 00:00:00 2001 From: "binji@chromium.org" Date: Wed, 17 Jul 2013 19:15:19 +0000 Subject: 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 --- ppapi/PRESUBMIT.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'ppapi/PRESUBMIT.py') 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 = [] -- cgit v1.1