summaryrefslogtreecommitdiffstats
path: root/ppapi/PRESUBMIT.py
diff options
context:
space:
mode:
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)
-