summaryrefslogtreecommitdiffstats
path: root/ppapi/PRESUBMIT.py
diff options
context:
space:
mode:
authorjvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-30 17:59:14 +0000
committerjvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-30 17:59:14 +0000
commit2978339a797536e720a18ebdde2fd7f1b4e12c34 (patch)
tree0cdc35c2663cd0e6c1715fbb184fe3e623b0e98b /ppapi/PRESUBMIT.py
parent8dc2405798db63428fa62d2affb1cf640783c388 (diff)
downloadchromium_src-2978339a797536e720a18ebdde2fd7f1b4e12c34.zip
chromium_src-2978339a797536e720a18ebdde2fd7f1b4e12c34.tar.gz
chromium_src-2978339a797536e720a18ebdde2fd7f1b4e12c34.tar.bz2
Pnacl ppapi shim generator (from IDL), based on Noel's first cut.
BUG= http://code.google.com/p/nativeclient/issues/detail?id=2413 TEST= python idl_gen_pnacl.py --test --wnone Also ** ./generator.py doesn't change ** ./generator.py --wnone --pnacl --pnaclshim=pnacl_shim.c generates a shim that compiles and works in the NaCl repo. Review URL: http://codereview.chromium.org/8568025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112244 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/PRESUBMIT.py')
-rw-r--r--ppapi/PRESUBMIT.py48
1 files changed, 38 insertions, 10 deletions
diff --git a/ppapi/PRESUBMIT.py b/ppapi/PRESUBMIT.py
index 90b809c..227cc41 100644
--- a/ppapi/PRESUBMIT.py
+++ b/ppapi/PRESUBMIT.py
@@ -6,9 +6,43 @@ import os
import sys
import subprocess
+def RunCmdAndCheck(cmd, ppapi_dir, err_string, output_api):
+ results = []
+ p = subprocess.Popen(cmd, cwd=os.path.join(ppapi_dir, 'generators'),
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ (p_stdout, p_stderr) = p.communicate()
+ if p.returncode:
+ results.append(
+ output_api.PresubmitError(err_string,
+ long_text=p_stderr))
+ return results
+
+
+def RunUnittests(input_api, output_api):
+ # Run some Generator unittests if the generator source was changed.
+ results = []
+ files = input_api.LocalPaths()
+ generator_files = []
+ for filename in files:
+ name_parts = filename.split(os.sep)
+ if name_parts[0:2] == ['ppapi', 'generators']:
+ generator_files.append(filename)
+ if generator_files != []:
+ cmd = [ sys.executable, 'idl_gen_pnacl.py', '--wnone', '--test']
+ ppapi_dir = input_api.PresubmitLocalPath()
+ results.extend(RunCmdAndCheck(cmd,
+ ppapi_dir,
+ 'PPAPI IDL Pnacl unittest failed.',
+ output_api))
+ return results
+
+
def CheckChange(input_api, output_api):
results = []
+ results.extend(RunUnittests(input_api, output_api))
+
# Verify all modified *.idl have a matching *.h
files = input_api.LocalPaths()
h_files = []
@@ -51,15 +85,10 @@ def CheckChange(input_api, output_api):
# Only generate output for IDL files references (as *.h or *.idl) in this CL
cmd.append('--out=' + ','.join([name + '.idl' for name in both]))
-
- p = subprocess.Popen(cmd, cwd=os.path.join(ppapi_dir, 'generators'),
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- (p_stdout, p_stderr) = p.communicate()
- if p.returncode:
- results.append(
- output_api.PresubmitError('PPAPI IDL Diff detected: Run the generator.',
- long_text=p_stderr))
+ results.extend(RunCmdAndCheck(cmd,
+ ppapi_dir,
+ 'PPAPI IDL Diff detected: Run the generator.',
+ output_api))
return results
def CheckChangeOnUpload(input_api, output_api):
@@ -69,4 +98,3 @@ def CheckChangeOnUpload(input_api, output_api):
def CheckChangeOnCommit(input_api, output_api):
# return []
return CheckChange(input_api, output_api)
-