Index: ppapi/PRESUBMIT.py |
diff --git a/ppapi/PRESUBMIT.py b/ppapi/PRESUBMIT.py |
index 90b809c728d92b42ac17bc055e978b74a53b8b10..227cc41f41cf7e41ac5007a8764aef58810d55e9 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) |
- |