diff options
author | jvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 17:59:14 +0000 |
---|---|---|
committer | jvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 17:59:14 +0000 |
commit | 2978339a797536e720a18ebdde2fd7f1b4e12c34 (patch) | |
tree | 0cdc35c2663cd0e6c1715fbb184fe3e623b0e98b /ppapi/PRESUBMIT.py | |
parent | 8dc2405798db63428fa62d2affb1cf640783c388 (diff) | |
download | chromium_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.py | 48 |
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) - |