Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(753)

Unified Diff: ppapi/PRESUBMIT.py

Issue 8568025: Pnacl ppapi shim generator (from IDL), based on Noel's first cut. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | ppapi/generators/generator.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
-
« no previous file with comments | « no previous file | ppapi/generators/generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698